Het gebruik van Python neemt razendsnel toe. Deze taal profiteert enorm van de AI-opmars, ondanks kritiek over tegenvallende prestaties. Ondertussen is Julia, dat ingericht is om met grote datavolumes om te gaan, een stuk sneller. Toch groeit die programmeertaal nauwelijks. Waarom?
Julia bestaat al sinds 2009 en wordt op open-source basis ontwikkeld. De bedenkers beoogden in een blogpost in 2012 de snelheid van C te combineren met het gebruiksgemak van Python en andere positieve kwaliteiten van vooraanstaande programmeertalen. Ze gaven toe dat dat een “gierige” wens was, maar Julia is al een aantal jaar klaar voor gebruik. De syntax is sinds 2018 met versie 1.0 stabiel, waardoor de taal al een tijdje gereed zou moeten zijn om door te breken.
Julia is sterk geparalleliseerd, wat betekent dat het ingericht is om veel berekeningen tegelijkertijd uit te kunnen voeren. Deze gedistribueerde aanpak van compute is cruciaal om tijdig grote hoeveelheden data te kunnen verwerken. De taal speelt daarmee in op de huidige trend binnen CPU’s en GPU’s om steeds meer kernen te leveren. Dit geldt voor zowel producten bedoeld voor particuliere gebruikers als voor High Performance Computing (HPC) en datacenters.
Toepassingen genoeg
Toepassingen zijn er al genoeg. Zo heeft NASA Julia ingezet om de koers van een ruimteschip te berekenen. Ook bij financiële analyses, weersvoorspellingen en simulaties van autocrashes blinkt het prestatiegerichte Julia uit. Dit komt door het feit dat de taal geparalleliseerde workloads uitstekend kan verwerken.
Met andere woorden: wie met veel data veel vergelijkbare berekeningen doet, kan dit veel sneller afronden met Julia dan met Python. Omdat eerstgenoemde taal een “compiled language” is, hebben veel berekeningen al vooraf plaatsgevonden. Het betekent dat Julia aanzienlijk sneller kan draaien dan Python, dat binnen runtime nog de vertaalslag moet maken naar bytecode en via de Python Virtual Machine naar machine code dat een computer kan lezen.
De overstap van Python naar het beter presterende maar complexe C is tijdrovend. Het populaire Rust, geroemd om diens veilige en stabiele aard, blijkt veelal ‘te log‘ voor wetenschappelijke toepassingen omdat het niet in één oogopslag te interpreteren is. Vergeleken met andere programmeertalen is Julia dat wel. Dat klinkt als een uitstekend cv om bredere adoptie onder ontwikkelteams te realiseren, zeker als zij momenteel Python gebruiken. Verschillende factoren hebben echter roet in het eten gegooid.
De kracht en de zwakte van de Julia-community
Het zou een voordeel van Julia moeten zijn dat het ‘echt’ open-source is, zonder betekenisvolle restricties op de verspreiding van software dat op deze taal gebouwd is. Het project kent ruim 1.000 bijdragers en draait op de feedback van ontwikkelaars. Idealiter verhelpt dat hardnekkige problemen, maar dat blijkt lang niet altijd het geval. In een blog onder de naam “Why I no longer recommend Julia” stelt ontwikkelaar Yuri Vishnevsky dat de problemen van de programmeertaal regelmatig ontkend worden door de community.
Elke taal kent bugs. Echter zijn het niet zozeer de bugs zelf, maar een wegkijkcultuur eromheen die Vishnevsky omschrijft. Hij wijst naar vijf eerdere blogs van anderen die problemen aankaartten, maar waarop de Julia-community antwoordde met ontkenningen en bagatalliseringen.
Een probleem hierbij is dat niet iedereen het eens is over wat daadwerkelijk een bug is. In de officiële documentatie geeft het Julia-ontwikkelteam toe dat de compiler onconventioneel is en onintuïtief aan kan voelen. Wie eenmaal doorheeft hoe de taal precies werkt, zou prestaties mogen verwachten die in de buurt van programmeertaal C komen, dat uitblinkt in snelheid. Het is aan ‘Julians’, zoals aanhangers van de taal heten, om anderen van die nieuwe aanpak te overtuigen.
Het populariteitsprobleem
Een centraal probleem is simpelweg dat Julia veel minder gebruikt wordt dan andere talen. De TIOBE Index plaatst de Julia-programmeertaal op plek 37, met nagenoeg alle opties die Julia diende te vervangen erboven. Python staat met stip bovenaan en kent voor specifieke toepassingen momenteel zelfs een meteorische stijging in populariteit. Het betekent dat enkelvoudige Python-packages soms zelfs meer ondersteuning bieden dan de gehele Julia-taal.
Tip: Populariteit Python blijft toenemen tegen achtergrond van AI-race
Dit resulteert in een gebrek aan ondersteuning, zoals menig ontwikkelaar heeft ontdekt. Wie op zoek is naar specifieke informatie om een bepaalde actie uit te voeren, komt er vaak achter dat de gewenste handvaten ontbreken. Een belangrijk voordeel van populaire talen om populair te blijven, is dat de gemeenschap veelvoorkomende taken vereenvoudigt, optimaliseert, voorziet van handleidingen of simpelweg antwoorden op Stack Overflow.
Sommige ‘Julians’ zullen de hoop hebben dat hun favoriete taal op den duur Python vervangt, of in ieder geval er snel op inloopt. Ze zouden hoop kunnen putten uit Kotlin, dat als relatief jonge taal inmiddels de lingua franca is op Android. Het wist Java echter met name te overwinnen omdat Android-bouwer Google er bewust voor koos de nieuwe taal aan te jagen. Zonder deze keuze van Google was Kotlin nooit zo snel gegroeid, weten diens ontwikkelaars. Kan de opkomst van AI voor Julia een vergelijkbare populariteitsexplosie betekenen?
De opkomst van AI
Het grootste probleem voor Julia heeft niets met de taal zelf te maken: Python is simpelweg al de meest voor de hand liggende optie. Hoewel de opkomst van AI nieuwe uitdagingen oplevert voor ontwikkelaars, kunnen zij grijpen naar de voor hen bekende tools. Torsten Grabs, Senior Director of Product Management bij Snowflake, omschreef vorig jaar al uitgebreid op Techzine hoe veelzijdig Python is. “Het vormt bijvoorbeeld de basis van het algoritme van Netflix en de software die zelfrijdende auto’s aanstuurt,” schreef hij destijds. Het uitgebreide ecosysteem aan libraries biedt een veelzijdigheid waar geen enkel alternatief aan kan tippen.
Ondanks die veelzijdigheid is een grote groep Python-ontwikkelaars juist gespecialiseerd in data-analyse (51 procent) en ML (38 procent). Ongeacht de functionele voordelen van Julia is de time-to-market voor AI-applicaties met Python sneller, want alle tools zijn voorhanden en miljoenen programmeurs kunnen er direct mee overweg. Met andere woorden: de niche is al gevuld, en wel door de meest voorkomende programmeertaal ter wereld. Het betekent dat Julia, ondanks al haar positieve kanten, beperkt lijkt te blijven tot een niche.
Lees verder: Hoe de Kotlin-programmeertaal Android heeft veroverd