Artikel top billede

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.

"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




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
Konica Minolta Business Solutions Denmark A/S
Salg af kopimaskiner, digitale produktionssystemer og it-services.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
Compliance og strategisk it-sikkerhed efter DORA

Finansielle koncerner har i snit 85 sikkerhedsløsninger i drift – men er i snit op til 100 dage om at opdage et igangværende cyberangreb. Ydermere viser øvelser, at det typisk tager 4-6 uger at rense og genetablere sikker drift af centrale systemer efter et stort angreb. Fokus for dagen vil derfor være på henholdsvis governance samt om, hvordan du som it-leder i den finansielle sektor skal kunne håndtere fremtidens cybertrusler og arbejde effektivt med sikkerhed på et strategisk niveau.

04. april 2024 | Læs mere


EA Excellence Day

Hvad er det, der gør it-arkitektens rolle så vigtig? Og hvad er det for udfordringer inden for områder som cloud, netværk og datacentre, som fylder hos nogle af landets bedste it-arkitekter lige nu? Det kan du her høre mere om og blive inspireret af på denne konference, hvor du også får lejlighed til at drøfte dette med ligesindede.

16. april 2024 | Læs mere


IAM - din genvej til højere sikkerhed uden uautoriseret adgang og datatab

På denne dag udforsker vi de nyeste strategier, værktøjer og bedste praksis inden for IAM, med det formål at styrke virksomheders sikkerhedsposition og effektiviteten af deres adgangsstyringssystemer og dermed minimere risikoen for uautoriseret adgang og datatab. Og hvordan man kommer fra at overbevise ledelsen til rent faktisk at implementere IAM?

18. april 2024 | Læs mere