Om fredag i forrige uke kan regnes som JavaScripts fødselsdag, kan nok diskuteres. Men det var i alle fall den 4. desember 1995 at Netscape og Sun sammen avduket JavaScript som et åpent, kryssplattform, objektskriptingsspråk for å skape og tilpasse applikasjoner i bedriftsnettverk og på internett.
JavaScript ble skapt av Brendan Eich, som fortalte tidligere i år om hvordan dette gikk for seg i et foredrag som er tilgjengelig her.
Forholdet til Java
Ifølge både Eich og pressemeldingen fra 1995, ble JavaScript skapt for å være et komplement til Java. Ifølge Eich skulle han lage Javas lillebror hos Netscape. Han fikk ti dager på i mai 1995 til å lage en prototype som kunne demonstrere at det å ha en slik lillebror, eller sidekick, til Java hadde noen verdi.
Selv om navnene ligner på hverandre og Eich definitivt var inspirert av Java da han skapte JavaScript, som opprinnelig ble kalt for Mocha, deretter LiveScript, så har de i praksis ingenting med hverandre å gjøre. Begge benytter dog en C-lignende syntaks og kjøres gjerne i en sikkerhetssandkasse. Men ulikhetene er langt flere.
– Java var stort på denne tiden, og det var årsaken til at jeg fikk lage JavaScript, sa Eich under foredraget.
Det Eich skapte på disse ti dagene var selvfølgelig ikke noen komplett implementering av et ferdig språk, men likevel alle de komponentene som var nødvendige for å få det til å kjøre.
Da JavaScript ble introdusert i en betautgave av Netscape Navigator 2.0 i desember 1995, var weben stort sett preget av statiske websider som var lenket til hverandre. Ønsket man noen form for interaktivitet, var Java-applets det eneste svaret.
Også for ikke-programmerere
Målet med JavaScript var blant annet å gjøre det enklere å oppnå slik interaktivitet, også for ikke-programmerere. Det ble beskrevet som et språk som var enkelt å bruke til å skape levende nettapplikasjoner som lenker sammen objekter og ressurser på både klienter og servere.
– Mens Java brukes av programmerere til å skape nye objekter og applets, er JavaScript designet for å brukes av HTML-forfattere og applikasjonsutviklere i bedrifter for dynamisk å skripte atferden til objekter som kjøres enten på klienten eller serveren. JavaScript samsvarer med Visual Basic ved at det kan brukes av folk med liten eller ingen programmeringserfaring til raskt å konstruere komplekse applikasjoner, skrev Netscape og Sun i 1995.
Det ble også trukket fram at JavaScript kunne brukes til å endre egenskapene og atferden til Java-objekter, noe som skulle føre til et nærmest ubegrenset utvalg av nettapplikasjoner for dynamisk presentasjon av informasjon og samhandling med brukerne via nettverksforbindelser. For JavaScript ble omtalt som den mest effektive metoden for å knytte sammen Java-applets og HTML-innhold.
Standard
I pressemeldingen ble det også opplyst at Netscape og Sun hadde til hensikt å foreslå JavaScript som en åpen internettstandard, hos både W3C og Internet Engineering Task Force (IETF). Men det var til slutt daværende European Computer Manufacturers Association – i dag Ecma International, som tok seg av standardiseringen.
Den første utgaven av standarden, ECMA-262 eller ECMAScript, ble utgitt i juni 1997.
Selv om både Netscape Navigator og Internet Explorer var unge produkter i 1995, så hadde nettleserkrigen allerede startet. Det handlet om å posisjonere seg, og Netscape vant definitivt et slag med JavaScript. Dette førte til at Microsoft ved hjelp av reverse engineering implementerte en egen utgave av JavaScript, JScript, i Internet Explorer 3, som ble lansert i juli 1996.
Siden den gang har JavaScript virkelig fått fotfeste og brukes nå for å skape svært mye av funksjonaliteten i webapplikasjoner. Språket har blitt videreutviklet og fått langt mer avansert funksjonalitet, noe som man nok i stor grad må har programmeringserfaring for å kunne bruke.
På serveren
En av de nyere trendene er å bruke JavaScript også på serversiden, noe Node.js er et eksempel på. Men som det antydes over, var dette også en del av Netscapes opprinnelige plan.
Netscape LiveWire var en standardkomponent i selskapets Enterprise Server 2.0, som benyttet JavaScript for å tilby det som skulle være trygge og relativt enkle programmeringsomgivelser på serverer, med blant annet effektiv databasetilknytning. Et JavaScript-skript på serversiden kunne trekke ut data fra en relasjonsdatabase og formatere dette direkte til HTML. Men det var også slik at websider kunne inneholde JavaScript som kjørte både på serveren og klienten.
JavaScript har blitt kritisert for å være uoversiktlig og vanskelig å jobbe med i store prosjekter. Derfor har det kommet flere nye språk, kode-til-kode-kompilatorer og rammeverk som forsøker å løse disse utfordringene, samtidig som at sluttresultatet er oversatt til JavaScript-kode som kan kjøres i enhver moderne nettleser.
Alle de moderne nettleserne har enormt mye høyere JavaScript-ytelse enn det som var vanlig for et tiår siden. Dette har blant annet ført til mye bedre opplevelse av brukergrensesnittet til webapplikasjoner og nye muligheter knyttet til interaktivt innhold, som spill. Samtidig har det blitt utviklet løsninger som bringer ytelsen til enda høyere nivåer, så lenge JavaScript-koden er optimalisert for dette. Asm.js er et eksempel på dette.
Framtid
Selv om JavaScript har sine svakheter, så er det ikke noen bred støtte for å erstatte det med noe annet. Google lanserte Dart-språket som et slikt alternativ, men fikk ikke gehør for dette i webfellesskapet. Alt tyder derfor på at JavaScript også i mange år framover vil sette sitt preg på webapplikasjonene.
Nå er det ikke kun direkte på weben at JavaScript benyttes. I flere nettlesere brukes det også i brukergrensesnittet og i utvidelser. ActionScript-språket som brukes til å programmere Adobe Flash, er en implementering av ECMAScript-standarden. Det er også mye annen programvare som bruker JavaScript som et internt skriptspråk.