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.’
@Jack:
“is nocode niets anders dan orkestratie”
Ok – maar geldt dat dan ook niet voor alle andere methodes van applicatiebouw? Immers, in de basis zijn applicaties erop gericht om bedrijfsprocessen te orkestreren (“meer-met-minder”)? Zodat het bedrijfsrendement toeneemt?
Inzake je verwijzing naar een artikel van Maurice Verhelst:
Dat gaat over flowcharts gebruiken bij het programmeren. Met de aanname dat Maurice doelt op het documenteren van algoritmes die vervolgens “een-op-een” vertaalt worden naar regels code kan ik me daar wel wat bij voorstellen. Alleen… dat staat los van “processpaghetti/flowchartspaghetti”… 🙂
En nu we het daar toch over hebben: de “persoonlijke situatie van de burger met stroomschema’s” kan prima. De bijborende “processpaghetti/flowchartspaghetti” komt doordat elke processtap meer uitzonderingen dan regels heeft – een 5GL en zijn beslistabellen doet daar niks aan af. Hooguit verplaatst het probleem zich naar een spaghetti aan beslistabellen vanwege het grote aantal onderlinge afhankelijkheden!
Rob, het verbaast mij een beetje dat het eenvoudige voorbeeld
Migrating Simple SQL to OpenRules
al vragen bij je oproept, terwijl het pas interessant wordt met:
Migrating More Complex SQL to OpenRules.
Het is duidelijk dat de eerste eenvoudige query veel meer records op gaat leveren als de conditie
p.amount 80000 AND o.status = ‘In Process’ uit de where clause wordt gehaald; om precies te zijn: 1277.
Inderdaad is er een engine die onder water deze records doorsluist naar een beslissingstabel waarin de verwijderde condities uit de query zijn opgenomen.
Persoonlijk vind ik het onderscheid tussen “technical logic” wat achterblijft in de SQL-query en “business logic” wat overgeheveld wordt naar de beslissingstabel niet handig, maar eerlijk gezegd vervang ik ‘logic’ sowieso liever door ‘functionaliteit’.
Het tweede voorbeeld is veel interessanter, niet omdat de query hier veel complexer is, maar omdat de bedrijfsregels in de beslissingstabellen complexer zijn. Het zou een interessante uitdaging zijn om deze regels alsnog in de SQL-query op te nemen, maar ik begin er niet aan 🙂
En dan vind ik het Oudlid in zijn reactie van 19 augustus 2021 20:35 wel heel sterk als hij stelt:
“dan heeft concept van de online transactionele verwerking van één-voor-één duidelijk een voordeel in het maatwerk waarin de onderdelen van verschillende leveranciers op elkaar afgestemd moeten zijn.”
“… want de massaproductie van een lopende band lijkt me verouderd als we kijken naar de marktveranderingen.”
Ondertussen ben ik dus wel benieuwd naar een oplossing van OpenRules voor de eerder genoemde Rebook-challenge…
@Jack, SQL to Openrules is me wel duidelijk. Maar daarna wil ik nog wat met die Openrules tabellen. Zonder een of andere engine heb ik voor die tabellen geen toepassing. Zag bij het zoeken wel de link van Barbera von Halle die je later gestuurd had. Bedankt.
Rob,
Electronic Data Interchange (EDI) gaat om een elektronische uitwisseling van bepaalde berichten of bevestigingen tussen systemen (machine-2-machine) waarbij de structuur van de berichten strak gedefinieerd is. Dat klinkt als de ‘lopende band’ van een sequentiële verwerking welke in de dagelijkse realiteit al lang is vervangen door een onderlinge data uitwisseling middels Systems of Engagement die zich ondertussen evolueren naar Systems of Collaboration waardoor het winkelen bij verschillende winkels met dezelfde producten een stuk makkelijker is als de onderliggende Systems of Record ‘losjes’ met elkaar verbonden zijn. De flexibiliteit van SOA heeft zich ondertussen geëvolueerd tot een spaghetti aan microservices in de cloud waarbij de gebruiker zich niet druk maakt om wat er onder de motorkap gebeurt maar als code de motor is dan is data de brandstof. OpenRules en Open Source zijn twee kanten van dezelfde medaille want het zijn uiteindelijk niet de algoritmen die schuldig zijn aan vooringenomenheid. En als het om de doel oriëntatie van Sein und Zeit gaat dan is het de vraag tot hoever we terug moeten in de tijd want de sequentiële vraag over de IST en SOLL kent een begin- en een eindpunt waarbij het continuous gepruts van goed naar beter en best een overtreffende trap kent die om een vergelijking gaat.
Will, als je stelt “in de basis zijn applicaties erop gericht om bedrijfsprocessen te orkestreren”, dan heb je daarmee precies de motor van de aanhoudende IT-faalindustrie te pakken (die ook wel bekend staat als ‘digitalisering’).
Die motor wordt namelijk precies gekenmerkt door:
machinedenken, datadenken, procesdenken, systeemdenken, modeldenken, logica, wiskunde
Kortom, denken vanuit een digitale mindset.
Als je stelt dat “het probleem zich naar een spaghetti aan beslistabellen” verplaatst heb je gelijk als beslissingstabellen nog datagedreven worden verwerkt. Een doelgedreven ‘verwerking’ van beslissingstabellen maakt echter een stapsgewijze verfijning van doelen mogelijk, en dat is op geen enkele manier nog spaghetti te noemen!
Zo’n stapsgewijze verfijning van doelen kun je aantreffen op bladzijde 3 in mijn oplossing voor:
https://dmcommunity.org/challenge/challenge-june-2017/
en noem ik: Decision overview.
In DMN wordt dit overzicht een Decision Requirements Diagram (ofwel DRD) genoemd, en de DRD voor de challenge kun je vinden in hoofdstuk 11 van de DMN-specificatie (eerste linkje in de beschrijving). Om precies te zijn in Figure 11-2: DRD of all automated decision-making.
Of hier nog sprake is van spaghetti mag je zelf beoordelen.
Inmiddels ligt het procesdenken bij DMN-adepten flink onder vuur als je op deze website rondklikt:
https://www.decisionautomation.org/dmn-challenges
Op verschillende plaatsen lees ik:
…..the incorrect assumption that decision automation is normally part of a BPMN process.
Workflow tools with BPMN and case tools are seldom used to orchestrate larger decision automation problems.
Decisions without processes?
….
Jack, je voorbeeld (challenge june-2017) bevestigt voor mij niet alleen het procesmatig werken maar ook nog eens de loketgeest (pre/post?) waarbij je de spaghetti opknipt in de matrix van Excel. Heb je ook rode pillen om ons de werkelijkheid buiten je modellen te laten zien?
Oudlid, rode pillen zouden inderdaad een uitkomst zijn voor wetenschappers en politici die het contact met de werkelijkheid helemaal kwijt zijn (en neem er dan zelf ook één).
Maar het idee dat je hiervoor pillen zou kunnen gebruiken bevestigt weer eens je wetenschappelijke, materialistische visie.
In het verleden heb ik je wel eens een reductionist genoemd (als in: https://nl.wikipedia.org/wiki/Reductionisme), maar ondanks dit reductionisme verval je niet in een monisme (waar een reductionisme vaak op uitdraait) maar in een visie waarin nog steeds een dualisme (van lichaam en geest) is terug te vinden. Tot zover dan het goede nieuws, want het lijkt er op dat je het reductionisme vervolgens aan weerszijden van de kloof uitvoert: aan de ene kant de materiële processen (en dat zal wel een vorm van neuronenwerking zijn) en aan de andere kant de geestelijke processen. Dit reductionisme aan weerszijden van de kloof komt ook mooi tot uiting in jouw idee van “digital twins”.
Dat je filosofische inzichten niet uit de weg gaat blijkt wel uit het vermelden van het begrip ‘loketgeest’.
Als ik op deze term zoek krijg ik naast jouw reactie alleen een pdf met een vergeeld document uit 1956 met een herdenkingsrede voor het 10 jarig bestaan van Humanitas. De zin waarin loketgeest voorkomt is veelzeggend: “In de openbare zorg overheerste naar onze smaak nog te veel de loketgeest, de dorre ambtelijke geest die in de hulpbehoevende alleen maar zag een geval en te weinig de mens“. Het lijkt er dus op dat jouw begrip “loketgeest” van eigen makelij is, en dat is een ontwikkeling die ik alleen maar kan toejuichen 🙂
Je visie is die van een wetenschapper/technoloog die zijn materialisme aanvult met filosofische inzichten; een positie die precies is terug te vinden in (jouw waardering voor) het “systemisch” denken en het daaraan gekoppelde onderscheid tussen onderstroom en bovenstroom. Het begrip ‘systemisch’ wordt vooral ingezet door wetenschappers die zich wagen op filosofisch terrein zonder hiervoor over adequate filosofische kennis te beschikken.
Dat je nu vraagt om rode pillen om de werkelijkheid buiten de modellen te kunnen zien is precies waar het systemisch denken tekort schiet: er is een dualisme en parallellisme van bovenstroom en onderstroom, zonder enige mogelijkheid om de wisselwerking tussen beide te kunnen denken. Waarmee het systemisch denken nog altijd gevangen is in het Cartesiaans dualisme tussen lichaam en geest; conform het thema van “the Matrix” en jouw vraag om rode pillen.
Om de kloof te kunnen overbruggen heb je niet een pil nodig maar een begrip: intentionaliteit.
Intentionaliteit is een sleutelbegrip in de fenomenologie zoals ontwikkeld door de Duitse filosoof Edmund Husserl (1859-1938).
Zie bijvoorbeeld:
https://en.wikipedia.org/wiki/Phenomenology_(philosophy)
Intentionaliteit is hier de gerichtheid van het bewustzijn op de dingen; tegenover Descartes’ ‘ik denk’ (dus ‘ik ben’) stelt Husserl dat denken altijd iets denken is en dat bewustzijn altijd bewustzijn van iets is; een losstaand cartesiaans ‘ik denk’ bestaat dus niet.
Maar intentionaliteit kun je ook begrijpen als doelgerichtheid!
Als ik een appeltaart maak ben ik mij ook – enigszins – bewust van het ding dat ik aan het maken ben. Maar als het maken van een appeltaart een gewoonte is, bijvoorbeeld omdat ik elke week zo’n ding maak, komen hier nauwelijks beslissingen aan te pas en handel ik op de ‘automatische piloot’.
Tijdens het maken van de appeltaart kan ik dus aan heel andere zaken denken, zodat hier sprake is van een parallellisme tussen denken en doen (toch weer een dualisme!). Op het moment dat zich een verstoring voordoet bij het maken van de appeltaart, bijvoorbeeld omdat de appels verrot blijken, kom ik – vanuit het denken aan heel andere zaken – terug in de keuken waar ik aan het werk ben en beslis dan – opnieuw denkend – of ik nog snel naar de supermarkt ga om nieuwe appels te halen of dat ik de appeltaart deze keer maar laat zitten.
Beslissingen vereisen dus doeloriëntatie en komen niet tot stand in datagedreven processen.
Ondanks het feit dat jij geen enkele kennis hebt van de filosofen die er werkelijk toe doen – en de grote 3 van de filosofie van de twintigste eeuw kun je precies naast elkaar op de eerder gegeven wikipedia-pagina aantreffen – kunnen we over het voorgaande nog wel even verder filosoferen.
Het parallellisme tussen denken en doen is doorJoke Hermsen al beschreven in haar prachtige, zeer aanbevolen essay Windstilte van de ziel (2010, blz. 37): “Sinds pakweg twintig jaar werk ik de gedachte uit dat de mens op z’n minst met zijn tweeën is – een zichtbare en omschrijfbare identiteit enerzijds en een onbewust en onzegbaar zelf anderzijds – maar aan dat zelf heb ik nooit eerder de naam ‘ziel’ gegeven. Sterker nog, ik geloof niet dat het woord ‘ziel’ ooit bij me opgekomen is in dit verband. “
Maar dan vervolgt zij: “Hoewel ik niet denk dat ziel en zelf hetzelfde zijn, …”
en ben ik het volledig met haar eens.
Zowel ziel als zelf hebben te maken met werkelijkheid en in het zeer leesbare Realisme herwonnen (2016), vertaling van Retrieving realism (2015), zijn filosofen Charles Taylor en Hubert Dreyfus beide op het spoor:
“We verlaten het bemiddelde beeld (en dus ook de modellen – JJ) en gaan uit van een contacttheorie. Ons begrip van de dingen zit niet in ons, los van de werkelijkheid, maar bestaat in de manier waarop we met de wereld in verbinding staan, in ons in-de-wereld-zijn (Heidegger) of ons tot-de-wereld-zijn (Merleau-Ponty). “
Zowel ziel als zelf, en dus ook werkelijkheid, ontbreken volledig in jouw visie.
Maar dat geldt helemaal voor wetenschappers/architecten zonder enig gevoel voor filosofie die gewoon verder blaten over digitale mindsets.
PS. Je toevoeging (pre/post?) achter loketgeest is wat mij betreft ijzersterk.
Want pre is: eerst denken, dan doen. Bijvoorbeeld als ik iets voor het eerst doe.
En post is: eerst doen, dan (eventueel) denken; de eerder genoemde gewoontehandelingen.
In het eerste geval heb ik doelen; in het tweede geval hebben de doelen mij!
In geval van gewoontehandelingen blijft datgene wat je tot stand brengt voorbewust of onderbewust (maar zeker niet onbewust), en komt het denken pas achteraf als iemand vraagt wat je aan het doen bent of als er iets fout gaat. Doe je iets voor het eerst, dan stel je je wel eerst het eindresultaat voor – een nieuw gerecht bijvoorbeeld – en werk je hier meer bewust naar toe. Op dat vlak kun je weer mooi nadenken over mindfulness versus soulfulness (J. Hermsen).
Merk op dat in gewoonte ook wonen zit, en in het nadenken hierover komen we uit bij de ethiek.
Het begrip ‘ethos’ (van het Griekse ethos) duidt oorspronkelijk op de plek van het wonen, in een uitgebreidere betekenis ook op de rol, het karakter, en later ook wel op ‘gewoonte’ of ‘zede’.
Jack,
Je vergeet in je betoog van de doeloriëntatie de pre(setting) van een vertrekpunt, in het dualisme van schipperen en polderen niet onbelangrijk. Verder stelt een Cruyffiaanse wijsheid dat het goede doel het tegenovergestelde doel van je eigen doel is. Als het om de doeloriëntatie van me, myself and I gaat met de Angelsaksische mindfulness gaat dan lijkt de ontdekking van westerse filosofen me een erg eenzijdige visie op de wereld als het om systemisch denken gaat. Oja, de dimensie van een loket is een raamopening zonder uitzicht naar buiten.
In de hedendaagse sociaal politieke mores gaat ethos meer om het imago doordat het Cartesiaans dualisme tussen lichaam en geest van een zichtbare en omschrijfbare digitale identiteit geen direct relatie meer heeft met de fysiologische wereld. De wetenschap gaat hierin om een dogmatisch autoriteitsgeloof welke allesbehalve verlichting geeft, de mens wordt namelijk gedehumaniseerd object en dorre ambtelijke geest heeft hierbij de empathie van een boekhouder. Wat betreft de morele filosofie ben ik benieuwd hoe je een identiteit weet te omschrijven zonder dat je discrimineert.
Het boek van Verena Mayer ‘Edmund Husserl, denken zonder oordelen’ geeft richting d.m.v. Husserls fenomenologische methode in de dagelijkse praktijk.
UIT HET VOORWOORD:
Husserl’s motto ‘Zu den Sachen selbst’ vraagt om een evenwichtige denkgeest. De fenomenologische methode heeft vele sporen achtergelaten: in de filosofie van de geest, de relatie denken-taal-communicatie, pedagogiek enz. Deze herkenning betekent dat leiderschap reflectie en distantie vereist, dat wijsheid voorbij kennis ligt, dat ruimte geven, echt luisteren en samenhangen
Isbn 9789079133253
Daniël,
Gaat westerse filosofie ondertussen niet meer om het lezen van boeken dan het luisteren naar mensen? Deze belezenheid vergeet de taal van het ongeschrevene welke vooral om het lichamelijke zijn gaat. En wat betreft leiderschap is er dan ook een groot verschil tussen managen en leiden, de zelfreflectie van empirische wijsheid levert nu eenmaal kennis op die erg moeilijk vast te leggen is in woorden. In de relatie denken-taal-communicatie kun je een extra dimensies aanbrengen met gevoel hoewel het betreffende de pedagogiek tegenwoordig natuurlijk helemaal fout is om te leren door te voelen. De oude tucht van naar bed zonder te eten omdat je weigerde te bidden voor bruine bonen had naar mijn opinie ook zijn waarde maar dat terzijde. Aangezien beslissingen altijd om een oordeel gaan lijkt het me heel moeilijk om te denken zonder oordelen, ik wees daarom op de discriminerende vooroordelen die het denken al in een bepaalde richting kaderen.