Reading time: 5 minutes
Author:
Paul Jansen is oprichter en CEO van Tiobe Software en initiatiefnemer en onderhouder van de Tiobe-index.
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 2011. Mobiel en functioneel zijn in.
Het zal geen verwondering wekken dat het programmeren van applicaties voor de mobiele telefoon de laatste jaren een vlucht heeft genomen. Het begon allemaal met het succes van de Iphone. Aanvankelijk accepteerde Apple alleen in Objective-C geschreven applicaties. Hoewel deze restrictie is losgelaten, is het merendeel van de Iphone-apps nog altijd gebaseerd op deze taal.
Gevolg is dat Objective-C na vele jaren in vergetelheid te hebben verkeerd opeens in de schijnwerpers is komen te staan. De Tiobe-index toont een duidelijke structurele groei van het marktaandeel sinds juni 2009 (Figuur 1). Deze trend heeft er in 2011 toe geleid dat we Objective-C hebben uitgeroepen tot programmeertaal van het jaar.

Er zijn meer programmeertalen die profiteren van de groei in de mobiele markt. Mooi voorbeeld is Java, als basis van het Android-besturingssysteem. Op lagere niveaus spelen ook C en C++ een belangrijke rol in de ontwikkeling van apps voor de mobiele telefoon.
Het marktaandeel van scriptingtalen als Perl, PHP, Python en Ruby is het afgelopen jaar gedaald (Figuur 2). Enerzijds komt dat doordat ze nauwelijks op mobiele telefoons draaien en anderzijds doordat het programmeren van websites amper is toegenomen. Alleen Lua wist aan populariteit te winnen. De reden hiervoor is dat deze taal speciaal is gemaakt voor gebruik in embedded systemen.
De andere winnaars van 2011 zijn C# en Javascript (Figuur 3). De eerste heeft zich door de jaren heen ontpopt als een elegante en moderne enterprisetaal. Het enige nadeel is dat het gebruik eigenlijk beperkt blijft tot Microsofts Visual Studio-omgeving. Javascript is een steeds belangrijker hulpmiddel geworden bij de ontwikkeling van interactieve websites.

R
Zijn er programmeertalen die de potentie hebben om door te stoten naar de top tien? Op basis van historische data is het moeilijk om dat te voorspellen. Kijken we echter naar de specifieke eigenschappen, de effectieve marketing van de community‘s en de marktomstandigheden, dan maken Clojure, Erlang, F#, Groovy, R en Scala een goede kans in 2012 (Figuur 4).
Clojure, Groovy en Scala zijn veelbelovende lichtgewicht talen die op dezelfde virtuele machines draaien als Java. Daarmee zijn ze een goede aanvulling op bestaande Java-code. De positieve geluiden die een aantal jaren geleden nog over Ruby te horen waren, klinken nu voor dit trio.
Januari 2012 | Januari 2011 | Programmeertaal |
---|---|---|
1 | 1 | Java |
2 | 2 | C |
3 | 6 | C# |
4 | 3 | C++ |
5 | 8 | Objective-C |
6 | 4 | PHP |
7 | 7 | (Visual) Basic |
8 | 5 | Python |
9 | 9 | Perl |
10 | 11 | Javascript |
Erlang is een geval apart. Deze taal bestaat al heel lang, maar is recentelijk herontdekt. Belangrijk pluspunt is de eenvoudige manier van parallellisme programmeren. Zeker voor multicore systemen is dat een welkome hulp. Daarnaast profiteert Erlang van de positieve flow waarin functionele programmeertalen zitten. Waar deze vroeger voornamelijk werden gezien als universitair speelgoed vanwege hun slechte performance, kunnen ze zich tegenwoordig aardig meten met andere hoogniveautalen. Dat verklaart ook mede het succes van Clojure, Scala en Microsofts functionele taal F#.

Tot slot R. Deze taal is een hulpmiddel voor statistici. Statistiek speelt een steeds belangrijkere rol en daarmee neemt de vraag naar rekencapaciteit en algoritmes toe. R is op dit moment de duidelijke marktleider, gevolgd door programmeertalen als Mathematica, SAS, S-Plus en SPSS.
Nieuw leven
Bij Tiobe meten we ook de kwaliteit van embedded software bij veel Nederlandse hightechbedrijven. Elke dag inspecteert onze tooling meer dan honderdzeventig miljoen regels code. Dit geeft ons een goed inzicht in de regionale trends op programmeertaalgebied.

De software van deze Nederlandse klanten bestaat meestal uit een aantal lagen die allemaal hun eigen programmeertaal gebruiken. De applicaties en de userinterface zijn op dit moment voor het grootste deel gebaseerd op C# of Java, omdat deze talen expressiever en minder foutgevoelig zijn dan C en C++. De lagen daaronder, bijvoorbeeld de besturingssystemen en de controllers, zijn vooral het domein van C++. Op de laagste niveaus, waar de software interacteert met de hardware, is C nog altijd het populairst. Aan applicaties voor mobiele telefoons schenken de grote partijen nauwelijks aandacht.
Er was een beweging om C# en Java ook te gebruiken voor de middenlaag, maar die trend lijkt te keren. Enkele bedrijven in Nederland hebben ervaren dat de performance van deze talen te wensen overlaat wanneer ze worden ingezet voor de lagere lagen in een embedded-softwaresysteem. C# en Java zijn niet overal voor geschikt; C en C++ blijven belangrijk. Daarbij is Microsoft bezig C++ nieuw leven in te blazen, zelfs ten koste van C#, zodat die taal voorlopig een goede keuze lijkt in de Nederlandse embedded-softwarewereld.