Assembler, Fortran en Cobol. Enkele oudjes onder de programmeertalen winnen aan populariteit. Ook SQL beleeft een revival. Wat is er aan de hand?
We halen de bevindingen uit de recente editie van de Tiobe Index, een van de lijsten die Computable gebruikt voor zijn eigen index.
Al heeft Tiobe de neiging om te mikken op de eerder klassieke benadering van it (en programmeertalen). C staat daar bijvoorbeeld op de eerste plaats, gevolgd door Python (terwijl die bij veel andere de lijst aanvoert) en Java op plek drie.
Assembler
Opvallend zijn de oudjes in hun index. Zo stijgt Assembler in een jaar tijd van veertien naar negen, en rolt dus de top tien binnen. Dat is opvallend voor een taal die echt teruggaat naar de basics van programmeren. Assembler is nauwelijks meer dan een symbolische weergave van machinetaal. Ze ontstond in 1947, en is dus bijna 75 jaar oud.
Seppe Vanden Broucke, professor aan de UGent en KU Leuven, ziet een aantal redenen voor de comeback van Assembler. ‘Assembler wordt gebruikt voor embedded en internet of things-toestellen met vaak weinig stroomverbruik en geheugen’, stelt hij. ‘En dergelijke toepassingen zitten in de lift.’
Een andere reden is dat het een belangrijke hobby-taal is. ‘Bijvoorbeeld voor Arduino-achtige projecten, vaak gerelateerd aan iot. Ook zogenaamde retro-computing platforms, die de laatste tijd in opmars zijn, maken er gebruik van. Projecten als Mega65‘, stelt Vanden Broucke, ook in security een rol voor Assembler ziet. ‘Zo zijn er toch nog veel exploits die Assembler gebruiken voor de kritieke delen.’
Fortran & Cobol
De grootste stijger in de recente Tiobe-lijst van programmeertalen is Fortran. Die gaat op een jaar tijd maar liefst van 37 naar 17 in hun Index. Ook Fortran is een oude krijger. Het was een programmeertaal die in de jaren vijftig ontstond en door IBM werd aangeboden.
Bij Tiobe zelf wijten ze de opmars van Fortran aan ‘de massale behoefte aan getallen kraken’, vaak voor wetenschappelijke projecten. ‘Fortran heeft één duidelijke gebruikstoepassing in machine learning. Onderliggend is er heel veel Fortran-code die daarbij wordt gebruikt’, beaamt Vanden Broucke, die zelf voor it-gebruikersvereniging SAI onlangs een webinar over trends in programmeertalen en dit aanhaalde.
Verder in de lijst houdt ook Cobol behoorlijk stand op plaats nummer 25. Al is dat niet echt een comeback. Traditionele programmeertalen blijven vaak vrij lang aan, door hun legacy. En ook een taal als Cobol, een taal uit de jaren zestig, gaat maar moeilijk weg. Het is zo dat er het voorbije jaar bij een legacy-vernieuwing wel wat Cobol is gebruikt (of opgefrist). ‘Maar dat zijn geen nieuwe projecten’, nuanceert Vanden Broucke.
SQL
Wie ook mooi standhoudt in de lijst is SQL, een querytaal. ‘We hadden de laatste jaren een beetje het gevoel van dat SQL aan het verdwijnen was’, aldus de professor. ‘Maar SQL is het database lingua franca.’
Voor SQL spreekt de professor wél van een opmars. ‘Met de komst van NewSQL, zoals een MongoDB en dergelijke, zien we vandaag zelfs een revival in SQL’, vindt hij. ‘Het idee leeft toch wel dat die oude databanken nog niet zo slecht waren. Ook met de beweging naar cloud gerichte databanken en dataplatformen zoals Dremio en Snowflake, is men SQL terug volledig gaan omarmen als querytaal’, stelt hij.
Is die revival van SQL niet opmerkelijk? ‘Velen beseffen dat ze die taal niet willen missen, want het alternatief wordt niet altijd als beter aanzien. Het zal waarschijnlijk nog vele jaren duren alvorens SQL dood valt te noemen.’
@Rob
Met WITH (een query als pseudotabel) en window functions kom je al een heel eind. Ik gebruik van de window functions vooral de ranking, maar er kan veel meer mee. Je kunt er min of meer de GROUP BY mee vervangen (niet helemaal, je groepeert niet dus verliest geen regels), maar het kan ook in combinatie met (OVER komt na GROUP BY). Het lukt dan ongetwijfeld zonder programmeertaalstructuren zoals loops, maar vanwege de leesbaarheid zou ik daar waarschijnlijk toch voor kiezen.
@Frank, eens met betrekking tot dit geval (als praktijkgeval, niet als challenge). Het probleem is dat je steeds uit moet sluiten wat je al behandeld hebt bij iedere iteratie en dat alles wat je al behandeld hebt ook nog op andere manieren leidt tot een nieuwe situatie. Dat is typisch wat voor Window Functions omdat die allerlei Clause onderdelen steeds per item in de resultset opnieuw uitvoeren.
Wat denken jullie, komt basic onder dos van microsoft ook weer terug?
@Jan
Nee, die rotte basis-Basic met regelnummers komt niet meer terug, maar wie weet komt GFA Basic ooit wel terug:
https://en.wikipedia.org/wiki/GFA_BASIC
@Frank, bedankt voor de link, leuk. Was bedoeld als grapje . . .
Wellicht krijgen we nog een virtuele S36 met RPG II.
Ik denk dat ze daar in de virtualisatie-omgevingen van IBM nog honderden in Nederland van hebben draaien, Jan. Of inmiddels in allerlei Docker instances, wellicht?
@Jan, Rob:
https://www.rs-online.com/designspark/my-raspberry-pi-thinks-it-s-a-mainframe
Voor een paar euro kun je “mainframpje” spelen!
Rob, Frank, natuurlijk kan met Transact-SQL alles.
De vraag is alleen hoeveel code je nodig hebt voor een bepaald probleem en of deze code door bedrijfsmedewerkers (en niet alleen door ICT-ers) nog te volgen is.
Wat de vraag oproept: is een 4GL, zoals SQL een taal voor de business of voor IT?
Mijn antwoord is eenvoudig:
– als je SQL aanvult met 3GL programmeerconstructies is het een taal voor IT-ers,
– als je SQL aanvult met 5GL beslissingstabellen is het een taal voor de business.
Maar dit onderscheid is er ook als je SQL als een zuivere querytaal (en dus 4GL) gebruikt:
– eenvoudige queries zijn goed te volgen en te maken door bedrijfsmedewerkers
– ingewikkelde queries zijn alleen te maken door IT-ers.
Het goede nieuws is nu dat ook ingewikkelde queries veel eenvoudiger gemaakt kunnen worden in combinatie met beslissingstabellen.
En dus mijn oplossing voor de eerder genoemde challenge:
3 eenvoudige beslissingstabellen die een kind nog kan begrijpen en 5 zeer eenvoudige SQL-queries.
https://dmcommunity.org/challenge/challenge-oct-2016/
Ben natuurlijk wel benieuwd hoe citizen developers dit probleem oplossen met hun lowcode en nocode tools 🙂
PS. een mooi voorbeeld van SQL en beslissingstabellen kun je hier aantreffen:
https://openrules.wordpress.com/2020/11/13/accessing-database-from-business-rules/
Ik ben echter niet gecharmeerd van de wijze waarop SQL-statements hier in tabellen worden opgenomen; persoonlijk kopieer ik ze liever in z’n geheel vanuit de gebruikte databasetool, waar ze eerst ontworpen en getest kunnen worden!
Lang geleden dat ik hier iets gepost heb.
Kwam ineens een quote tegen van een van de mensen die hier regelmatig reageren.
Wat ik van de tiobe index begrijp is dat ie gebaseerd is op resultaten van zoekmachienes.
Deze kijken echter enkel naar explicite vraag, niet naar werkelijke behoefte.
Ik herinner mij nog wel de tijd dat websites enkel werkte met IE6 met als argument al onze klanten hebben IE6.
Ja duhhh al eens in je log gekeken hoeveel klanten je mist ?
Zo zie ik dat dus ook met programeerskills gebeuren, of beter gezegd, skill in het algemeen.
Anyhow, Een jaar geleden nog eens een hobby projectje gedaan waar ik heb besloten de hele boel in assembly te tikken.
Geen idee of links hier toegestaan zijn maar wie het aardig vind om te zien, bij deze:
http://coollabs.nl/TacanSim/TacanSim.html
Niet zeiken over mijn website, hij is nog in opbouw en ik ben een lousy webdesigner.
Interessant Jack, Ik kende OpenRules niet. Ik ga het bestuderen. Bedankt voor de suggestie(s).