Paul Jansen is oprichter en CEO van Tiobe Software en initiatiefnemer en onderhouder van de Tiobe-index.

7 February 2014

Op basis van internethits houdt Tiobe maandelijks de populariteit bij van programmeertalen. Paul Jansen, CEO van het Eindhovense bedrijf en geestelijk vader van de gelijknamige index, bespreekt de belangrijkste trends van 2013. Programmeertaal van het afgelopen jaar is Transact-SQL, eigenlijk bij gebrek aan echte uitschieters.

Programmeurs zijn van nature heel nieuwsgierige mensen, altijd hongerig naar nieuwe technologieën. Dat moet ook wel want de IT-wereld is als geen ander vakgebied onderhevig aan verandering. Flashy technologie X is nog niet gearriveerd of een nieuwe veelbelovende, allesomvattende methodologie Y verschijnt alweer aan de horizon.

Ook in programmeertalenland lijkt de evolutie snel te gaan. Als je de diverse fora moet geloven, gaat er weer veel veranderen in 2014: de jongste opvolger van Javascript, Livescript geheten, wordt het helemaal en de nieuwe functionele taal Elixir maakt veel kans, net zoals de numerieke programmeertaal Julia en Red Hats ‘Java-killer’ Ceylon. En wat te denken van de recente aankondiging van Microsofts Joe Duffy dat er een programmeertaal aankomt die de elegantie van C# combineert met de snelheid van C++? Deze ‘best of both worlds’ draagt als voorlopige codenaam M#.

Toch loopt het niet zo’n vaart met programmeertalen. Want hoorden we dit soort enthousiaste verhalen een aantal jaren geleden niet ook over Scala, Clojure, F#, Go, Haskell en Ruby? Op dit moment hebben deze gezamenlijk echter een marktaandeel van minder dan drie procent.

Er zijn goede redenen waarom wijzigingen langzaam verlopen in programmeertalenland. Als een systeem eenmaal in een specifieke taal is geschreven, dan is omschrijven een enorme investering. Daarnaast kost het veel tijd om een taal goed te beheersen en alle uithoeken te kennen. Je stapt dus niet zomaar even over op een andere programmeertaal.

 advertorial 

System engineering @ ASML, practices and challenges

During the first online session of the System Architecting Conference, on 25 January, Frank de Lange and Tom Castenmiller (ASML) will address the role of systems engineering and discuss the essences of the roadmapping process, the holistic system design and the product generation process. Register now for free.

Positie januari 2014 Positie januari 2013 Programmertaal
1 1 C
2 2 Java
3 3 Objective-C
4 4 C++
5 5 C#
6 6 PHP
7 7 (Visual) Basic
8 8 Python
9 10 Javascript
10 22 Transact-SQL

De actuele top tien van de Tiobe-index. De hele lijst telt honderd namen, maar gezien de statistische ruis geven alleen de eerste tien plaatsen een betrouwbaar beeld.

Externe invloeden

Kortom: progammeertrends zijn langzaam. Dit is ook terug te zien in de Tiobe-index van januari 2014. De top acht is namelijk exact gelijk gebleven aan die van vorig jaar (zie tabel).

De moeder van de moderne programmeertalen, C, staat nog altijd bovenaan en heeft deze positie het afgelopen jaar alleen maar verstevigd. Opvallend is dat de objectgeoriënteerde variant C++ procentueel veel terrein heeft prijsgegeven. Een andere grote verliezer in de top tien is Visual Basic. Sinds Microsoft de taal uit zijn portfolio heeft gehaald, is het gebruik ervan structureel tanende. Grootste daler van 2013 is Python, met een verlies van -1,80 procent.

De enige twee positiewijzigingen vinden we onder in de top tien. Javascript is een plaats gestegen en Transact-SQL komt de kopgroep ingestormd. Diens sprong is de grootste in de index. Daarom heeft Tiobe Transact-SQL verkozen tot programmeertaal van 2013.

Deze uitverkiezing is niet zozeer de verdienste van Transact-SQL maar meer het gevolg van het feit dat er nauwelijks uitschieters zijn geweest. De taal wordt gebruikt als programmeerlaag boven op SQLServer- en Sybase-databases. Deze hebben de afgelopen jaren aan populariteit ingeboet, zodat Transact-SQL eerder zou moeten dalen dan klimmen. De opmars moeten we dan waarschijnlijk ook vooral toeschrijven aan statistische ruis.

Lager in de index zijn er wel flinke stijgers. Zo ging F# van 45 naar 16, Ladder Logic van 59 naar 30, Max/MSP van 109 naar 35 en Openedge ABL van 121 naar 38.

Tiobe Figuur 1
Figuur 1: Met het toenemende gebruik van apps groeit ook de populariteit van de talen om deze te programmeren. Op het eerste gezicht lijkt Java een uitzondering, maar de dalende lijn komt door flink terreinverlies in de enterprisewereld; het succes van Android dempt de dreigende vrije val enigszins.

Er zijn ook veranderingen op hoger niveau, maar die zijn veel meer evolutionair (over langere termijn dan een jaar) en meestal ingegeven door externe invloeden. Zo hebben trends in mobiele telefonie een grote weerslag op de populariteit van programmeertalen. Wil je een app voor de Iphone of Ipad ontwikkelen, dan ben je vooral aangewezen op Objective-C, voor Android-gebaseerde telefoons is het Java en het merendeel van de apps voor het opkomende Windows Phone zijn geprogrammeerd in C#. Deze talen winnen daardoor aan populariteit (Figuur 1).

Ook de wereld van de webontwikkeling heeft invloed op de keuze voor een programmeertaal. Met de komst van HTML5 worden Javascript en mogelijke alternatieven alleen maar belangrijker. Vreemd genoeg zien we dit nog niet terug in de Tiobe-index (Figuur 2): Javascript komt nauwelijks van zijn plek, terwijl potentiële opvolgers zoals Dart (plaats 124), Coffeescript (170) en Typescript (205) helemaal geen indruk maken.

Tiobe Figuur 2
Figuur 2: Javascript wordt met de komst van HTML5 alleen maar belangrijker, maar in de Tiobe-index is dat nog niet te zien.

Gevecht

Dichter bij huis, in de Nederlandse hightech, zijn ook enkele trends waarneembaar. Tiobe checkt elke dag meer dan 250 miljoen regels code voor zijn klanten op zoek naar mogelijke programmeerfouten. Dit geeft een goed inzicht in de Nederlandse embedded-softwaremarkt.

De voornaamste trend is dat systemen steeds meer talen aan boord krijgen. Waren vroeger de onderste lagen geschreven in C en/of C++ en de bovenste in C# of Java, tegenwoordig zien we steeds vaker ook scriptingtaal Python en Matlab (in de vorm van gegenereerde C-code). Door de aansluiting met mobiele telefoon en web groeit daarnaast het gebruik van Javascript en Objective-C, en duikt zelfs Scala op.

In de hightech blijft het een gevecht tussen snelheid (C en C++) versus eenvoud (Java en C#). Als Microsoft zijn belofte kan waarmaken dat er een programmeertaal komt die beide werelden combineert, dan zal de embedded-softwarewereld deze met open armen ontvangen. Voorwaarde is waarschijnlijk wel dat de nieuwe taal zich niet beperkt tot het Windows-platform.

Edited by Nieke Roos