« Mailen konstig | Main | Aprilpyssel - lösning, villospår och ledtrådar »
maj 01, 2005
The long tail of programming languages
Charles Simonyis (Intentional Software) skriver i The long tail of programming languages om att användningen av programspråk förhåller sig till varandra som en long tail (cf power laws). Man har använt statistiken från TIOBE Programming Community Index for April 2005 (se kommentar nedan).
Vilka slutsatser drar man så av denna långa svans?
* Generella programspråk tenderar av användas mest eftersom de är generella (vilket ju verkar rimligt)
* Det finns språk som ofta är bättre än generella att lösa problem i en specifik domän (nischen), t.ex. Prolog för logikprogrammering.
* Det är svårt för nya programspråk att lyckas slå igenom ordentligt eftersom det krävs bra miljöer för professionell utveckling.
Här är några reflexioner angående detta.
Förutom dessa mer rationella skäl finns det andra saker som gör att användningen fluktuerar. T.ex. Ruby:s Ruby on rails har gjort att fler har fått upp ögonen för Ruby; Pugs som är en trevlig Perl 6-implementation skriven i Haskell - som redan efter några månaders utveckling fungerar förvånansvärt bra - har gjort att Perl-användare blivit intresserade av Haskell och säkerligen också föranlett ett nyuppväckt intresse för Perl. Hmm, kan det vara detta som är orsaken till Perls ökning?
När det gäller TIOBE-jämförelsen av programspråk bör man notera att man studerar hur ofta ett språk nämns. Från sajten: The popular search engines Google, MSN, and Yahoo! are used to calculate the ratings. Observe that the TPC index is not about the best programming language or the language in which most lines of code have been written.
Med denna stora brasklapp i A4-format på skrivbordet kan man notera att omnämningen (användningen?) av C++ och Java har minskat jämfört med förra året. Lennart Frantzell kommenterade i Är Java-språket på fallrepet?, såvitt jag kan se utan referens till denna undersökning (varken direkt eller indirekt). Så här får han lite mer vatten på sin kvarn.
[Det skulle f.ö. vara intressant med en undersökning som studerar hur förändringar i omnämnande av ett programspråk är kopplat till förändringar av dess användningen. Troligen är det här skillnad i förändringsstruktur mellan "professionellt" användande och "privat" användande där förändringar i "professionellt" användande har dels större tröghet och dels andra krav på ett programspråk än privat utveckling. Gränsen mellan dessa två håller dock på att försvinna mer och mer i och med open source-projekten.]
En sista kommentar. I artikeln står det Many developers who must use Java or C# at work during the day go home to use Ruby or Python on their personal projects at night.
Man kan nu börja hoppas på att programspråksmoneteismen ("jag tror på ett enda programspråk och det är min gud") håller på att försvinna och att vi till slut inser att olika programspråk har olika fördelar i olika situationer/domäner.
Det är inte meningen att här starta något religionskrig om programspråk, speciellt eftersom jag numera är programspråksagnostiker (eller möjligen programspråkstaoist). Av bl.a. historiska och repositoriska skäl har jag naturligtvis ett par favoriter men kollar gärna in både nya och gamla programspråk. I går hittades t.ex. en referens till ett språk som heter Fornax (från 1994) som verkar intressant eftersom det kombinerar flera av mina favoritsyntaktiska socker; tyvärr hittades inte någon implementation.
Ingången till denna anteckning var Lambda the Ultimate:s The long tail of programming languages, vilken också bör läsas.
Posted by hakank at maj 1, 2005 10:05 FM Posted to Komplexitet/emergens | Statistik/data-analys | Systemutveckling