Nyt sprog: Coffeescript er Javascript som det burde være
Javascript bliver brugt til stadigt mere avancerede websider, men er ikke fulgt med tiden. Der er brug for en ny start, med en syntaks, der passer bedre til dagens måde at bruge Javascript på.
Sådan lyder det fra en open source-gruppe, der har sat sig for at udvikle et nyt sprog, der kan afløse Javascript. Det skriver Infoworld.com.
»Den grundlæggende idé er, at Javascript har en rigtig god model for objekter og en rigtig god objektorienteret model og funktionel natur. Men meget af det er skjult bag syntaksen, som først og fremmest kommer fra Java,« siger Jeremy Ashkenas, der står bag projektet, til Infoworld.
Det betyder, at syntaksen i Javascript ikke passer godt til den måde, det bliver brugt, og ikke er særlig elegant, mener han. Tanken med Coffeescript er altså at udvikle det sprog, som Javascript burde være.
Foreløbigt er Coffeescript kun på alpha-stadiet, og det kan ikke anbefales at udvikle noget seriøst i sproget, da der stadig kan ske mange ændringer, lyder meldingen.
Coffeescript tilføjer ikke funktioner, der ikke findes i Javascript, men bliver kompileret til helt normal Javascript-kode via en compiler skrevet i Ruby. Ved at bruge Coffeescript i stedet for 'den ægte vare' skal det blandt andet blive lettere at håndtere variable, hvilket også vil øge sikkerheden i koden.
Læs mere om Coffeescript, der nu er i version 0.2, via fanebladet eksterne links.
Kommentarer (5)
det kan godt være at javascript ikke er specielt pænt, men det virker - og er ved at være en defacto standard i alle browsere. hvis der kommer noget nyt som coffeescript så vil der gå mange browser-generationer før det bliver standard (og derved anvendeligt).
JavaScript er klart belastet af sit navn og den Java-lignende syntax. Det har, i hvert fald tidligere, forledt mange "rigtige" programmører til at tro, at sproget var designet til at fungere som en light-udgave af Java og herefter afskrive det som et inferiørt legetøjs-sprog, når det viste sig slet ikke at være tilfældet.
Som dynamisk script-sprog er JavaScript nu ganske fortrinligt, især når man udnytter de muligheder, der ligger i closures og prototype-baseret nedarvning, og det er muligt at skrive særdeles kompakt og effektiv kode med sproget.
Bevares; JavaScript har en pæn række fejl, herunder et par slemme i design-afdelingen (host-host variabel-scope...), men mange af de udfordringer, man støder på, når man skriver kode til web-browsere hænger lige så meget sammen med issues i de omkring-liggende teknologier, især DOM'en, samt browsernes script-fortolkere og selve afviklings-miljøet - alt sammen problemer, der ikke nødvendigvis løses med et nyt sprog.
Vi kan da hurtigt blive enige om, at det kunne være rart at kunne scripte browsere i en simplere, lettere læselig syntax, gerne med mere "klassiske" OO-features, men der findes jo allerede en fin række velegnede dynamiske sprog som f.eks. Ruby og Python, der tilmed har et generelt momentum, så hvorfor et nyt? Indtil samtlige browser-udviklere over en bred kam understøtter de samme, alternative script-sprog på en ensartet og transparent måde er der imidlertid ingen vej udenom JavaScript; på med vanten, køb evt. Douglas Crockford's "JavaScript - the Good Parts" og bid tænderne sammen :)
Coffeescript og andre sprog behøver ikke at vente på, at browsere understøtter dem direkte -- de kan blot leveres med en oversætter, der genererer "almindelig" Javascript, ligesom der findes mange sprog, der genererer JVM kode.
Der findes eksempler på dette: SMLtoJs (http://www.itu.dk/people/mael/smltojs/) er en oversætter fra Standard ML til Javascript.
Principielt enig og der er efterhånden en del også ganske prominente spillere på den bane, f.eks. Google med GWT.
Der er dog ofte en række udfordringer når det gælder kvaliteten af både den genererede JavaScript "byte-code" og evt. HTML og CSS - i hvert fald når det gælder web-applikationer, der skal tage hensyn til tilgængelighed og SEO.
...bliver kompileret til helt normal Javascript-kode via en compiler skrevet i Ruby.
Man skal altså ikke vente på browser understøttelse for at kunne bruge Coffeescript.
Personligt har jeg indtil videre holdt mig fra at bruge den slags, uanset fejlene så er man bare lidt tættere på der hvor det foregår når man skriver ren JavaScript. Det kan godt være at det bare er mig der er underlig.
