BUILD 2013 del 4 (Typescript)

Session med Anders Hejlsberg, konstruktör av Pascal, Delphi, C# mm.

Anders börjar med påståendet att “its to difficult to develop application scale JavaScript” och tog under sessionen ett exempel med refaktorering av något så enkelt som ett namn på en variabel i en applikation med 100.000 rader javascript – det blir “Read-Only kod” i det läget menar Anders, man vågar helt enkelt inte ändra något.

Typescript är en av flera lösningarna på detta men till skillnad från Googles “closure” så används inte kommentarer till att lägga in typ-information utan det som i andra kompilatorer kallas “reserverade ord”. Det går att använda enkla typer som string, number, boolean men även klasser (“class”). All denna “type annotation” tas bort vi kompilering och kvar blir bara javascript. Det går att använda TypeScript först och sedan köra vidare på den genererade javascript-koden, men då tappas lite av vitsen som jag ser det – det är ju kontrollen och varningen vid kompilering man vill ha, framför allt senare under en applikations livstid. De har även gjort “TypeScript-definitioner” för de flesta stora ramverk (som JQuery, Knockout.js, Node.js mflr).

De finns en “playground” med bra exempel och där man tydligt ser resulterande javascript. Ett tips är att kolla in den om ni är intresserade: http://www.typescriptlang.org/playground

De viktigaste punkterna jag tog med från sessionen var:

– Version 0.9 (den senaste) verkar ganska komplett och har bland annat används för att bygga den nya Xbox Music-appen till Windows 8.1. Också en anledning att börja titta på det, det brukar vara ett säkert tecken på att en teknik är “mogen” om Microsoft själva använder den. I vissa fall är detta också ett första steg mot att skrota tekniken (som fallet var med Silverlight).
– TypeScript är öppen källkod sedan 1 år tillbaka och följer så mycket de kunnat den föreslagna EcmaScript 6 standarden, Nice!
– konceptet “Module” är nog en av de mest användbara finesserna och resultatet är den kod som jag annars skulle skriva för hand för att få till struktur och namespaces. Det är ett av de större “rockie-misstagen” som jag gjorde när jag började bygga applikationer med javascript på allvar: att inte dela upp den i något som i alla fall liknar namespaces utan lägga allt “platt”. I Module konceptet ingår också möjligheten att sätta saker som “private” i modulen – grymt användbart för att höja förvaltningsbarheten av koden.

Anders gick igenom ett antal exempel: set/get metoder (även om jag avskyr dem i Java-sammanhang :-) , optional parametrar, generics, lambda notation, manipulering av arrayer mm…

Jag ska köra med TypeScript i nästa projekt!

Till sist:

– Adobe kommer att visa något fränt imorgon vid keynoten där TypeScript ingår på ett hörn. Kanske en komplett miljö för att bygga webb-applikationer med moderna verktyg/standarder? Det vore en “comeback El-grande” när alla har övergett deras teknik (läs flash)…
– De har ett gäng personer på konferensen som simultan-tolkar det som sägs vid varje session så att döva/de med hörselnedsättning får en text-remsa på en av storbildsskärmarna…det blev stor humor och många leenden i publiken när översättaren på Anders Hejlsbergs session konsekvent skrev “Jay Query” istället för JQuery… skulle vilja träffa “Jay” och prata lite allvar :-)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s