JavaScript: takk for all fisken

Publisert 2017-02-15. Skrevet av Teodor Heggelund.

Stikkord: utvikling, programmeringsspråk, funksjonell-programmering.

Så vi liker å fokusere på det som suger med JavaScript. Eller de gode bitene. Hvordan er språket? Her kommer et litt annet spørsmål: Hva er effekten av språket?

  1. Funksjonell programmering

    Javascript har vært funksjonelt siden starten. Hadde vi hatt funksjonelle egenskaper i Java og C# i dag om det ikke var for JavaScript? Hadde funksjonelle språk blitt vurdert? Ville vi fått ting som LINQ?

    Det har vært forsøk på å få til dette siden 1960, og du klarte det.

    Takk.

  2. Funksjonellreaktiv GUI-programmering

    Facebook: du gjør all verdens lugubre greier med dataene mine. Du blander sammen reklame og nettverk, og misbruker meg og mine venners rykte for å få oss til å forbruke mer.

    På den andre siden har du laget React. Ideen var gammel, men som dere gjennomførte den. Fantastisk førsteordenseffekt. De fleste javascriptutviklere kan i dag bruke et skikkelig fundament som håndterer avhengigheter i GUI. Takket være dere får brukere en genuint bedre opplevelse.

    Og sekundæreffektene! Både ideologisk og som en plattform. Ideologisk har dere hevet den kollektive standarden for GUI-programmering. Meldingsbokssystemer som objekter kan gå og legge seg, og jeg trenger ikke akseptere å måtte jobbe med noe sånt igjen. Som plattform og bibliotek har dere tatt på dere men grandios arbeidsmengde med de grunnleggende byggesteinene. Elm og ClojureScript kan nå løse problemer i sine egne fine, isolerte domener, og dytte resultatet ned på dere – fordi dere lagde React som et bibliotek, og ikke som et rammeverk.

    Takk.

  3. Språklig frihet

    JavaScript gir enormt mye frihet, og betraktning som en plattform gir i mange tilfeller mer mening enn betraktning som et programmeringsspråk. Fordi språket legger særdeles få rammer for hvordan ting skal gjøres, har biblioteksutviklere fått meget stor frihet. De kan utforske hvordan ting bør gjøres. Hadde Javascript heller beveget seg i retning Java, og bare tillatt utviklere å gjøre det som i forkant ble betraktet som en strengt god idé, hadde plattformen stagnert.

    JavaScript er tidenes språklige R&D-operasjon. Friheten har dyttet ned ansvaret for utvikling på programmerere, og ikke språkdesignere. Dette mener jeg alt i alt er en god ting! Det har gitt oss fantastisk mange fine effekter, selv etter kostnader som en utfordrende læringsprosess og mange kaotiske kodebaser.

    Denne tankegangen speiler seg i Lisp-kulturen, særlig i Racket. Betyr det at vi heller burde hatt Racket i nettleseren? Nja. Da ville nok aldri alle de eksisterende utviklerene blitt med over på JavaScript. Det ser litt ut som Java, og fy som skinnet bedrar. Dere har kollektivt bedratt alle som har blitt med over på JavaScript-toget.

    Hva er så veien videre? Jeg mener bytecode er uunngåelig. JavaScript behandles allerede i dag som bytecode av språk som Elm, Clojure, Haskell og PureScript. Og hvordan gjør det jobben? Særdeles bra! Ytelse er ofte bedre enn i originalspråket. Hva skjer da når vi kan kompilere til bytecode? Jeg er spent. Jeg gleder meg til å se WebAssembly komme på banen.

    Takk.