Her er læsernes 20 bud på programmeringssprog, de gerne vil lære
Ligesom ved naturlige sprog, så har valget af programmeringssprog også stor indflydelse på slutresultatet. Det er blot ét godt argument for at lære flere forskellige typer programmeringssprog. Og når vi samler op på læsernes forslag til sprog, man bør lære, så er det også et ganske bredt spektrum.
Mine bud på fem programmeringssprog, jeg gerne ville lære, hvis jeg havde tid, var Julia, Lua, Cobol, Swift og Rust. Dem er der også flere læsere, der peger på. Men de har også nogle ganske spændende forslag, som også var boblere på min liste.
Helt overordnet ser der ud til at være tre store grupperinger blandt læserforslagene: Sprog, der handler om at forstå programmeringssprog; sprog, der prøver en ny tilgang til et etableret sprog; og sprog, der er historisk interessante. Naturligvis er der sprog, der falder ind i flere af grupperne.
Jeg har medtaget stort set alle forslag fra kommentarerne - ingen sprog er for obskure, fjollede eller besværlige, når vi taler om at lære et sprog for at udvide sin horisont.
Af hensyn til fairness kommer forslagene her i alfabetisk rækkefølge. Bær over med mit begrænsede detailkendskab til hvert enkelt sprog:
1ML: Et sprog, der er på et meget tidligt stadie, men vil forsøge at integrere klassikeren ML's modulsystem mere i sproget.
APL: Her kan det kræve en ekstra indsats, hvis man vil helt tilbage til rødderne og bruge de matematiske tegn. Til gengæld handler det om arrays, hvilket er ret specielt.
Assembler: Vor blogger Poul-Henning Kamp bringer Assembler på banen som et sprog, alle bør prøve for at forstå, hvad der i virkeligheden foregår neden under højniveausprogene.
D: Et interessant alternativ til C++ med understøttelse for hele fem forskellige programmeringsparadigmer.
Elixir: Et af de hotte sprog til funktionel programmering, som kan køre på Erlangs virtuelle maskine.
Elm: Et funktionelt sprog til browseren, hvor Signals gør det nemt at bruge input som eksempelvis musens position.
F* Endnu et sprog i familie med ML, hvor koden også kan oversættes til F#. Det smarte ved F* er, at det giver mulighed for at vise, at funktioner fungerer korrekt.
Forth: Stakprogrammering og omvendt polsk notation? Et konkatenativt sprog? Forth er en klassisk niche i historien.
Go: Googles bud på et sprog, der kan fungere som alternativ til C++, men med en række af de funktioner, man forventer i moderne sprog som eksempelvis garbage collection og mindre komplekst.
Haskell: Et af de funktionelle sprog, der insisterer på at være funktionelt og samtidig rammer ret præcist med sine statiske typer og type inference. En nyklassiker.
Idris: Er stadig i en meget tidlig fase, men brugen af afhængige (dependent) typer er ret eksotisk.
Intercal: Når man har kigget lidt for længe på nogle af de gamle sprog, så kan det være på sin plads med en dosis Intercal. Det samme gælder, hvis man har kollegaer, der er tilbøjelige til at skrive ulæselig kode.
Kotlin: Jetbrains Kotlin-projekt giver kode, der både kan køre på Java Virtual Machine og oversættes til Javascript, så det også kan bruges i browseren. Ligesom der er flere 'et bedre C++' på denne liste, så er der også et par 'et bedre Java', og Kotlin er et godt bud.
LISP: Det kunne have været på listen blot fordi det er en absolut klassiker, der har påvirket utallige sprog. Men LISP er mere aktuel lige i øjeblikket end Fortran, Algol og Cobol, fordi mange nye sprog henter deres inspiration fra det arbejde, der har været med LISP gennem årene. Og så har LISP altid været en favorit til forskning i kunstig intelligens.
Perl 6: Perl er et sprog, der nok har haft sin guldalder, men altid har været kendt for at være godt til at behandle tekst. Mens Perl 5 stadig er standarden, så er Perl 6 skilt ud som et selvstændigt sprog og i virkeligheden ret anderledes end standard Perl.
R: Sproget for statistiknørder. Eller faktisk kan det bruges til mange matematiske formål og nyder ganske stor understøttelse til kommercielle formål.
Racket: Med Racket bliver det lidt ekstra meta, fordi det er sprog, der er beregnet til at lave sit eget sprog. Eller i hvert fald opfordres man til at skabe en dialekt.
Ruby: Et script-sprog, hvor alt er objekter, og med sin egen variant af closures.
Scala: Et af de mere etablerede sprog på listen, som kombinerer det objektorienterede og det funktionelle i applikationer, der kan køre på Java Virtual Machine.
Smalltalk: Er måske mest interessant for den indflydelse det har haft på måden, vi programmerer på, snarere end de tekniske spidsfindigheder. Og så er det endnu et eksempel på, hvor meget tak vi skylder Xerox' legendariske Palo Alto Research Center.

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.