"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