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

Annonceindlæg fra Computerworld it-jobbank

Mød 3.500+ it-talenter på IT-DAY 2026

Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.

Navnenyt fra it-Danmark

Idura har pr. 1. januar 2026 ansat Joshua Pratt, 32 år,  som software engineer. Han skal især beskæftige sig med at bruge sin tekniske knowhow og erfaring i teamet for extensions og integrationer. Han kommer fra en stilling som Tech Director hos NoA Ignite Denmark. Han har tidligere beskæftiget sig med komplekse webprojekter, senest udviklingen af det nye website og e-commerce-platform for tivoli.dk. Nyt job

Joshua Pratt

Idura

Simple Agency Group A/S har pr. 1. januar 2026 ansat Allan Bo Christiansen, 38 år,  som CCO. Han skal især beskæftige sig med kommercielle partnerskaber og digitalisering af koncernens aktiviteter. Han kommer fra en stilling som Director for eCommerce & Customer Platforms hos Atea A/S. Han er uddannet MSc in economics and business administration, Strategy, Organisation and Leadership. Han har tidligere beskæftiget sig med drift og udvikling af større eCommece teams med fokus på kundeoplevelsen. Nyt job

Allan Bo Christiansen

Simple Agency Group A/S

Idura har pr. 1. januar 2026 ansat Martin Ingolf Broberg, 43 år,  som webmaster. Han skal især beskæftige sig med at få idura.eu til at spille på alle digitale tangenter og sikre, at siden genererer nye leads. Han kommer fra en stilling som team lead hos Danmarks Radio. Han har tidligere beskæftiget sig med blandt andet at stifte og lede et analyseteam i DR med fokus på web og lyd. Nyt job
Idura har pr. 1. januar 2026 ansat Lars Mørch, 54 år,  som VP of Sales. Han skal især beskæftige sig med Iduras salgsorganisation, implementere en ny go-to-market-model og sikre udviklingen af virksomhedens identitetsplatform. Han kommer fra en stilling som Regional Vice President hos Avallone. Han er uddannet på CBS og har en BA i Organization & Innovation. Han har tidligere beskæftiget sig med internationalt SaaS-salg og forretningsudvikling fra både scale-ups og globale teknologivirksomheder. Nyt job

Lars Mørch

Idura