Er JavaScript fremtidens programmeringssprog?

Toptunede JavaScript-engines i browsere åbner vejen for mere komplekse og funktionsrige webapplikationer baseret på JavaScript. Der er dog også ulemper ved at anvende JavaScript.

Artikel top billede

"Det professionelle mainstream-udviklermiljø har aldrig taget JavaScript seriøst, men snart vil de ikke have noget valg."

Ordene kommer fra den mangeårige it-veteran Dave Thomas, i forbindelse med udviklerkonferencen JAOO, der løber af stablen senere på måneden.

Dave Thomas har haft stor betydning for udbredelsen af objekt- og komponentorienteret tankegang i kommercielle udviklingsmiljøer, og har blandt andet være med til at designe Eclipse-platformen.

Et af konferencesporene ser på status og fremtidsmulighederne for JavaScript. Dave Thomas er vært for det spor, der med et glimt i øjet er navngivet
"Real men don't do Javascript".

Rigtige mænd koder ikke JavaScript

"Rigtige" programmører, der udvikler i Java, C++, C og andre lignende programmeringssprog har traditionelt set lidt skævt til JavaScript, men JavaScript har trods det fået stor udbredelse og har nu opnået noget, der ligner en accept blandt udviklere.

Selv opfinderen af JavaScript, Brendan Eich, betragtede i starten sit script-sprog som lidt andenrangs.

"Vi ville skabe et "glue language" for webdesignere og halvtids programmører, som byggede webindhold af komponenter som billeder, plugins og java-appletter."

"Vi så Java som komponentudviklingssproget anvendt af højerebetalte programmører, hvor "glue-programmørerne" - webdesignerne - sammensatte komponenterne og automatiserede komponenternes samspil med JavaScript," fortæller Brendan Eich i et nyligt interview til australske Computerworld.

Der er sket noget med JavaScript, siden Brendan Eich tilbage i 1995 designede programmeringssproget.

Anvendelsen af asynkron JavaScript i AJAX-applikationer gør det muligt at få en tilnærmet desktop-funktionalitet i browseren - tænk Google Mail og Google Maps.

Performanceboost til JavaScript-engines

Når en JavaScript-engine som V8 i Chrome mangedobler performance af JavaScript-applikationer, vil det blot give ekstra incitament til at indbygge endnu mere funktionalitet i webapplikationerne.

Chrome er ikke alene med sit performanceboost. Den kommende Firefox 3.1 har også givet sin JavaScript-engine et enormt performanceboost ved hjælp af TraceMonkey.

JavaScript svært at vedligeholde

En af dem, der er overbevist om, at vi vil se endnu flere komplekse JavaScript-baserede webapplikationer, er Kresten Krab Thorup, CTO hos Trifork, der står bag JAOO-konferencen.

Han ser browseren som en meget vigtig platform fremover, hvor komplekse applikationer vil blive afviklet. Da JavaScript er understøttet af alle browsere, er det naturligt, at det er JavaScript, som webapplikationerne udvikles i.

"JavaScript vil i stigende grad blive brugt til at skrive komplekse webapplikationer. Det er ligesom Intel-arkitekturen; den er ikke til at komme udenom. Browseren er den næste platform," siger Kresten Krab Thorup.

Udfordringer ved vedligeholdelse

Selvom der findes eksempler på webbaserede applikationer, der indeholder desktop-lignende funktionalitet, advarer Kresten Krab Thorup mod at tro, at det er enkelt at lave den slags applikationer.

"Med større kompleksitet og ved vedligehold kan JavaScript-applikationer komme til kort. De er svære at vedligeholde," siger Kresten Krab Thorup og fortsætter:

"Det er klart, at nogle seje gutter kan lave Google Mail og sådan noget smart noget, men skal massen af udviklere med og lave komplekse web-applikationer, så skal der andre boller på suppen. Det kræver andre strukturer og andre måder at arbejde på," siger Kresten Krab Thorup.

JavaScript som genereret kode

De andre boller på suppen kan eksempelvis være et framework som Prototype eller Googles Web Toolkit (GWT).

Prototype er et JavaScript-framework, der blandt andet tilbyder et AJAX-library, som gør det nemmere for udviklere at skrive AJAX-applikationer.

Med GWT er der mulighed for at skrive browserklientkoden som ren Java. GWT oversætter så Java-koden til JavaScript.

Det er ikke kun Java-udviklere, der på den måde kan få genereret JavaScript-kode.

Hos Microsoft arbejder man på at generere Javascript-kode ud fra .Net-bytekode.

Javascript holder ikke til store programmer

På JAOO-konferencen vil software-arkitekten Eric Meijer fra Microsoft under overskriften "JavaScript as an Assembly Language" berette om sit arbejde på Volta-projektet med at kompilere Microsoft Intermediate Langauge (MSIL) til JavaScript.

Ligesom Kresten Krab Thorup mener Eric Meijer heller ikke, at JavaScript er så velegnet til at skrive store komplekse applikationer:

"Mens JavaScript ikke er et så fantastisk godt sprog til at skrive store programmer, så er JavaScript faktisk et fantastisk target language for kompilere.

"Ligesom assembler-sprog mangler JavaScript et restriktivt statisk typesystem, og det tillader en vis mængde af selvmodificerende kode, men til forskel fra typiske assemblersprog, indeholder JavaScript højniveau sprogkonstruktioner som closures og exceptions.

"Derudover har JavaScript den ekstra fordel, at det understøttes af enhver webbrowser. Derfor ser vi en stigende mængde højniveausprog som kompileres til JavaScript. Eksempelvis Java, OCaml, ObjectiveC, Scheme, Haskell, og mange andre," skriver Eric Meijer i oplægget til sit foredrag.

Til forskel fra de nævnte eksempler, hvor højniveausprog oversættes til JavaScript, så tager Volta-projektet en lidt anden tilgang. Her er det MSIL bytekode, der oversættes til java script:

"I modsætning til det, så kompilerer Volta low-level assemblerkode, .NET MSIL, til JavaScript," lyder det blandt andet fra Eric Meijer.

Platform skrevet i JavaScript

En lidt anden anvendelse af JavaScript er Suns platformsprojekt kaldet Lively Kernel, som også præsenteres på JAOO-konferencen.

Lively Kernel er skrevet i JavaScript og er en platform for webapplikationer. Lively Kernel indeholder blandt andet udviklingsværktøjer til at skrive andre webapplikationer.

Det er Dan Ingalls, der har ydet betydelige bidrag til Smalltalk-udviklingen, som er en af de drivende kræfter bag Lively Kernel.

Ifølge Dan Ingalls er Lively ikke klar som et produkt endnu, men han og Sun ser frem til at "eventyrlystne udviklere" allerede nu begynder at udforske mulighederne i Lively.

Eventyrlystne udviklere kan starte deres formentlig livlige rejse her

Læses lige nu

    Event: Cyber Security Festival 2025

    Sikkerhed | København

    Mød Danmarks skrappeste it-sikkerhedseksperter og bliv klar til at planlægge og eksekvere en operationel og effektiv cybersikkerhedsstrategi, når vi åbner dørene for +1.200 it-professionelle. Du kan glæde dig til oplæg fra mere end 50 talere og møde mere end 30 leverandører over to dage.

    4. & 5. november 2025 | Gratis deltagelse

    En kaotisk verden kræver stærk cybersikkerhed, resiliens og digital suverænitet

    Mød David Heinemeier, Flemming Splidsboel Hansen, Casper Klynge, Rasmus Knappe, Jens Myrup Pedersen og forfattere som fhv. jægersoldat Thomas Rathsack og adfærdsforsker Henrik Tingleff.

    Computerworld afholder d. 4. og 5. november Cyber Security Festival i København - med fokus på sikkerhed, resiliens og digital suverænitet. Det er helt gratis - men reserver din plads allerede nu.

    Hele programmet er online lige nu - og du kan reservere din gratis plads lige her - jeg håber vi ses! 

    Lars Jacobsen

    Chefredaktør på Computerworld

    Se alle Lars's artikler her

    Navnenyt fra it-Danmark

    IT Confidence A/S har pr. 1. oktober 2025 ansat Henrik Thøgersen som it-konsulent med fokus på salg. Han skal især beskæftige sig med rådgivende salg, account management og udvikling af kundeporteføljer på tværs af it-drift, sikkerhed og cloud-løsninger. Han kommer fra en stilling som freelancer i eget firma og client manager hos IT Relation og IT-Afdelingen A/S. Han er uddannet elektromekaniker. Han har tidligere beskæftiget sig med salg af it-løsninger, account management, it-drift og rådgivning samt undervisning og ledelse. Nyt job

    Henrik Thøgersen

    IT Confidence A/S

    Adeno K/S har pr. 22. september 2025 ansat Steen Riis-Petersen som ServiceNow Expert. Han kommer fra en stilling som Senior Manager hos Devoteam A/S. Nyt job
    Danske Spil har pr. 1. oktober 2025 ansat Jesper Krogh Heitmann som Brand Manager for Oddset. Han skal især beskæftige sig med at udvikle og drive brandets strategi og sikre en rød tråd på tværs af alle platforme og aktiviteter. Han kommer fra en stilling som Marketing & Communications Manager hos Intellishore. Nyt job

    Jesper Krogh Heitmann

    Danske Spil

    Norriq Danmark A/S har pr. 1. september 2025 ansat Katrine Køpke Rasmussen som Consultant. Hun skal især beskæftige sig med sikre vækst i NORRIQS kunders forretninger gennem hendes skarpe rapporteringer. Nyt job

    Katrine Køpke Rasmussen

    Norriq Danmark A/S