Waarom geen C maar wel COBOL (repost)
filed in Coding on Apr.23, 2008
Blijkbaar was er een probleempje met wordpress, waardoor ik bij de originele post geen comments meer kon toevoegen. De opmaak van comments is ook foutief, geen idee hoe dit komt.
Dit thema is bovendien niet perfect leesbaar, misschien moet ik iets anders kiezen…???
Wordpress heeft trouwens wel meer problemen… .
In navolging op één van mijn vorige posts, toch nog even ‘mijn 2 cent’ over “Waarom hebben ze C uit de opleiding(en) toegepaste informatica gehaald?”
Op reddit staat een experiment met Django, dat een website die 5000 records moest binnenhalen met de gebruikte Object-Relational Mapper er maar liefst 93 seconden over doet. Met gebruik van C kon dit teruggebracht worden tot minder dan 1 seconde.
Dit is slechts 1 van de vele voorbeelden. Er wordt gewoon veel te veel geheugen en CPU-kracht verspild. Abstractie mag best handig zijn om vlug software te maken, maar toch loopt nog steeds een heleboel mis… .
Bovendien verlies je veel te veel controle. In het tweede gedeelte van ons project, .NET, ervaar ik dat. In Java heb je nog iets van controle… .
Als je eens ‘iets anders’ wil gebruiken dat niet van M$ komt (in dit geval iBATIS.NET), stuit je al snel op beperkingen. It doesn’t feel right.
Heb je dan leuke dingen zoals LINQ To Entities, dan worden die niet ondersteund door de MySQL Connector voor .NET. Nuja, MySQL mag dan overal geinstalleerd staan, er bestaan betere databasesystemen.
Trouwens, in het boek van iBATIS las ik dat DataSets enkel goed zijn voor ‘Quick and dirty’ development. OMG. Waarom is DataSet dan uitgevonden? Gevolg: DataSet wordt dagelijks ‘misbruikt’.
C mag misschien niet geschikt zijn voor de massa, iederere student informatica (programmeren) zou toch de basis onder zijn neus moeten krijgen.
Lijkt me een stukken betere optie dan COBOL !
April 23rd, 2008 on 5:18 pm
Toegepaste informatica is nogal sterk gericht op “zo snel mogelijk iets te kunnen en op de arbeidsmarkt te komen”. Met alle gevolgen vandien (security wordt bvb nooit besproken in 3 jaar tijd). C is gewoon niet een taal die zich leent om snel applicaties te maken. Applicaties als in zaken “voor de klant” die niet te veel specifieke kennis vereisen. Vraag een student toegepaste informatica (of zelfs de lectoren) bvb nooit een Linux-kernelmodule te schrijven. Op dergelijk niveau werken, hardware aanroepen, geheugen beheren is iets dat men gewoonweg niet kent.
Ik denk dat er dus gewoon geen hoop is voor dergelijke talen. High-end talen als Python geef ik meer kans, maar eerlijk gezegd is de kans nog altijd zeer miniem.
April 24th, 2008 on 11:34 am
Mja datasets is inderdaad alleen maar voor quick en dirty. Het is wel heel gemakkelijk maar imo wordt je er gewoon lui van.
En C in toegepaste informatica zou wel nog intresant zijn. Mss dat ze keuzevakken al vanaf het 2de jaar moeten doen. Of cobol er inderdaad uitgooien, maar dat zal wel binnen 4jaar gebeuren denk ik zo. Cobol programeurs wordt nu eenmaal voorlopig met hopen gevraagd. (Afbouw van systemen, onderhoud van oude system) Je moet je wel eens afvragen waarom het zoveel wordt gevraagd. Ga je nu als cobol programeur werken, lijkt de kans wel groot dat je binnen 5jaar nieuw werk mag zoeken.
Python zou ook wel leuk zijn om te leren. Maar ik denk dat als je java kunt, overstappen op python niet zo moeilijk zal zijn. Eenmaal je 1 oo taal goed kent is derest simpel om aan te leren. Behalve dan C en C++ als je tenminste meer dan de basis wilt leren :p (geheugen management, optimalisatie)
Ik zou ook wel willen dat we meer dan 1 semester algoritmen hadden gehad. Library functies in java gebruiken of enig andere programeertaal is wel gemakkelijk. Maar again je wordt er lui van en soms kan je beter je eigen implementatie maken die gespecialiseerd is voor wat jij wil. Zo kun je veel meer optimaliseren in je code.
April 25th, 2008 on 7:15 pm
Tja, ik vind Java goed voor bepaalde dingen. Die libraries zijn ergens voor bedoeld, namelijk voor het reusen van code. Dit bespaart tijd en geld, tenminste wanneer de library flexibel genoeg is. Java is veelal eigen libraries, in C grijpt men voor veel zaken naar 3rd party-libraries die op één of andere manier de de facto standaard geworden zijn. Een voorbeeld waar ik aan denk is libxml die in feite van GNOME afkomstig is. Enorm veel applicaties gebruiken dit vandaag de dag, niet enkel end-userzaken.
C op de hogeschool in de prof. bac.: ik blijf er bij, dit gaat er nooit komen. C is geen taal die zich leent tot het snel ontwikkelen voor de gewone klant. Men baseert zich nogal sterk op dit laatste, alsof er enkel informatici bestaan die end-user applicaties maken voor “de klanten”. Zuiver technische kennis is er amper, of men begint er wel aan maar komt niet al te ver (vak computerarchitectuur). Dit laatste zie ik enkel als een gefaalde poging om een gat op te vullen (technische kennis op lage niveau). Blijkbaar moet er dan toch iemand zijn geweest die dit zag zitten. Maar al de andere vakken reppen verder geen woord meer over instructiesets of geheugenbeheer e.d. Men heeft reeds geswitcht van C++ naar Java dus ik zie ze nog geen omgekeerde beweging meer maken.
Python zie ikzelf zitten omdat dit een niet al te moeilijke taal is die zich eveneens leent tot het snel ontwikkelen van iets, zij het een web- of desktop-applicatie. Dit kan perfect bestaan naast Java. Maar het is zeker niet zo vergelijkbaar zoals hier gezegd, Python is in de basis niet volledig OO plus de syntax is compleet anders. Het schoentje zal wellicht blijven wringen op het punt dat Python in de industrie niet vaak wordt gebruikt, en dat begrijp ik gezien de eerder vermelde focus die die opleiding heeft. (Paragraaf niet verkeerd verstaan, ik ben zeker niet iemand die enkel met gemakkelijke talen wilt werken, deze hebben hun voordelen maar ook hun nadelen. Ik spreek enkel vanuit het standpunt van de opleiding.)
Maar mijn hoofdstuk op de hogeschool is quasi afgesloten, wat ik op de VUB heb gezien bevalt mij veel beter, je hebt het gevoel dat ze daar tenminste weten waar ze het over hebben, en op de eerste dag dat ik er was als niet-student sprak men al over C++, Ruby, enz. Ik denk dat veel lectoren van de hogeschool niet eens weten dat er een taal “Ruby” bestaat.
April 26th, 2008 on 11:52 am
Dietrich, jij zat toch in Aalst hé?
In Gent zullen er wel een klein aantal zijn die Ruby kennen hoor
Python is misschien nog iets meer…..
Nu, CA vond ik persoonlijk een belangrijk vak en dit zullen ze wel blijven geven. Toch zoals ik “Margot De Donder” bezig hoorde.
Daarop aansluitend zouden ze C kunnen geven.
) een aantal van de datastructuren en algoritmenn die we in de 2e semester van het 1ste jaar zien, implementeren. En daar stopt het dan ook. Dus geen pogingen om grafische toestanden aan te leren, of 3rd party libraries.
Inhoud die ik voor ogen zie: tot pointers. En dan met begeleiding van een goede docent (en dat is mss een probleem
Daarvoor hebben we Java en C#. Maar een oude taal zoals COBOL, dat zou ik een keuzeoptie laten IN programmeren (vb met andere speciale gevallen zoals functioneel programmeren, maar zoek daar maar eens de mankracht voor) of eenvoudiger: bij de keuze mainframe integreren.
Dit zou een enorm grote vooruitgang zijn voor de ‘gewone’ programmeurs. Java zit vol van de pointers bvb. Maar wie heeft dat nu door…
Zoek maar eens op de boeken “Write great code, Understanding the machine (Volume 1)” en “Write great code, Thinking Low-Level, Writing High Level (Volume 2)”.
Die vatten heel men gedachtengang zo een beetje samen….
Nu, waarschijnlijk kies ik toch voor Netwerken
En zelf diep ik dat wel wat uit met Perl en ‘Unix network programming’