Hejlsberg: Det er jo egentlig uansvarligt at basere store projekter på JavaScript
Den danske C#-chefudvikler Anders Hejlsberg har de seneste år kastet sig over TypeScript i et forsøg på at bygge et sprog, der en gang for alle gør op med tidskrævende udvikling, bøvlet debugging og manglende overblik i de store JavaScript-projekter. Opbakningen er stærkt stigende, og seneste skud på stammen er et uformelt udviklersamarbejde med Google.
”JavaScript er i bund og grund det eneste rene crossplatform-game i byen i dag. Du kommer ikke uden om det. Men det er et dynamisk sprog og oprindelig bygget til at skrive programmer på måske et par hundrede eller måske tusind kodelinjer – og det er det virkelig godt til. Men når du bruger det til at bygge applikationer med hundredtusindvis af kodelinjer, så løber du ind i alle mulige problemer og får virkelig svært ved at arbejde struktureret. Det er noget af det, vi gerne vil rette op på med TypeScript,” konstaterer Anders Hejlsberg.
Han krediteres for Turbo Pascal og Delphi, har været ansat hos Microsoft siden 1996 og har siden årtusindskiftet været chefarkitekt og hovedansvarlig for holdet bag C#. Så det er ikke helt urimeligt at betegne 54-årige Anders Hejlsberg som en af de få regulære udviklerguruer med dansk fødselsattest. Samtidig er den tidligere DTU-studerende et eksempel på, at man godt kan gøre sig gældende i IT-verdenen, selv om eksamensbeviset ikke kom helt i hus.
”Du kan jo egentlig slet ikke vide, om tingene fungerer ordentligt”
Anders Hejlsberg har boet i USA de sidste 25 år, men var for nylig et *** forbi Danmark, hvor han bl.a. fortalte et talrigt publikum på ITU om planerne for TypeScript; et sprog, der har til formål at gøre det muligt at arbejde mere struktureret med JavaScript.
”TypeScript er vores bud på, hvordan man kommer nogle af de mest presserende problemer, folk har med JavaScript. Herunder, at her mangler klasser, moduler, interfaces og især statiske typer. Hvilket jo er blandt de ting, som gør det svært at holde styr på store mængder JavaScript og meget svært at debugge; du kan ret beset ikke vide, om alt fungerer ordentligt, før du afvikler koden. Skal man være lidt grov, så er det jo egentlig uansvarligt at baserer store projekter på JavaScript,” konstaterer han.
Ideen med det Open Source-baserede TypeScript er derfor at tilføje en lang række af de funktionaliter, man kender fra typesprogene. Herunder muligheden for at debugge undervejs i udviklingsprocessen og sikre en konsistent og sammenhængende kodekvalitet.
Vælg selv: Struktur, freestyle eller lidt af hvert?
”Grundideen er, at du udvikler i TypeScript omtrent, som du ville gøre med et typesprog. Så kompilerer vi, så der kommer noget rigtig pæn JavaScript ud i den anden ende. Men du kan følge med og rette fejl undervejs, for TypeScript samt stærke typer bibringer en stor del af den udledte forståelse for, hvad du laver. Man får kort sagt mange af de muligheder, som du f.eks. kender fra Visual Studio, herunder code completion, intellisense og – ikke mindst – type checking- og inferens. Og det er der mange, som har savnet,” siger Anders Hejlsberg.
Han erkender, at man med TypeScript lægger lidt mere ”ceremoni” og proces over udviklingsprocessen, hvilket nogle freestyle-udviklere måske vil være kede af. Derfor er et af kendetegnende ved sproget, at man selv kan vælge, hvor struktureret udviklingsprocessen skal være.
”Des flere funktioner og typer, du benytter dig af, des mere struktureret bliver oplevelsen også. På den anden side øger du også sikkerheden for, at alt fungerer som planlagt i sidste ende. Så der er et trade-off. Men udvikleren sidder selv bag rattet og træffer beslutningen,” siger han.
Des større apps, des større værdi
Anders Hejlsberg bemærker, at TypeScript – den unge alder til trods – allerede er ved at vinde gehør i udviklermiljøet. Ikke mindst på grund af den tidsbesparelse og øgede kodekvalitet, det åbner mulighed for.
“Vi hører meget positive erfaringer fra udviklermiljøet – ja, jeg tror ikke, at jeg har hørt om nogen, det ikke virker for. Så jeg plejer at sige, at folk bare skal give det en chance. Og sædvanligvis vil de opleve, at TypeScript giver større værdi, des større apps du skal bygge. For gevinsten er helt oplagt, at der er så meget tid at spare på debugging og refacturing i store codebases, at det er helt håbløst at lade være.”
”Så tog vi lige en snak med Google, og så..”
”Og selv om vi kun har været i gang nogle år, så må jeg sige, at folk tager helt godt mod projektet. På et tidspunkt havde vi jo også en snak med Google, som jo godt kendte TypeScript og kunne se værdien af at arbejde med statiske typer i JavaScript. Så vi sagde ”Allright, vi implementerer nogle af de ting, som I efterlyser – og som vi jo nok skal indbygge alligevel før eller siden.” Og så sagde de, at så kunne de godt tænke sig at basere udviklingen af næste AngularJS på TypeScript. Så sådan blev det, og det kom jo nok bag på nogle at vi klarede sagerne så relativt uformelt. Men det er jo til fordel for alle, så hvorfor ikke? For eksempel bliver det jo også muligt nu at bruge TypeScript, når du udvikler til Angular. Og så begynder det alt sammen at give rigtig god mening,” siger Anders Hejlsberg.
Han bemærker, at nyeste TypeScript også understøtter ECMAScript 6 – men at den uden videre kan rykke et niveau ned til version 5, og ”kombinationen af et meget stærkt toolset og muligheden for – i kompileringen – at kunne downgrade er med til at gøre værktøjet utrolig attraktivt, fordi du reelt kan bygge the future today,” lyder det med tydelig amerikansk accent. Tilsvarende forstætter arbejdet med TypeScript i en række forskellige regi; dels med at tilføje nye features og typesystemer, dels med at deltage i en række standardiseringstiltag i samspil med andre interessenter i IT-branchen.
Social kultur giver bedre udviklere
”Så vi forsætter med samme opskrift, som vi har fulgt hidtil. Men prøver hele tiden at rykke et lille nøk længere og bygge lidt mere ovenpå,” siger Anders Hejlsberg, som også nærer store håb for den nye generation af udviklere.
”Da jeg startede med at programmere, var der sindssygt mange begrænsninger. Du fedtede rundt med 32 KB og skulle presse den sidste lille dråbe ud af hver kodelinje. For ellers var der ikke plads. I dag er det langt nemmere – og det bliver hele tiden endnu nemmere – at udvikle god software. Men det er ikke det er det det samme, som at programmører bliver mere og mere dovne; de skal bare bruge færre kræfter på banaliteter og kan i stedet koncentrere sig om at udvikle gode ideer. Og jeg er faktisk ret imponeret over, hvad næste generation kan. Det skyldes ikke kun, at de får mere hjælp af teknikken, men også at de er virkelig gode til at samarbejde. Hvilket et langt stykke hen ad vejen nok skyldes, at de har lært håndværket i et langt mere socialt miljø uden alt det der hemmelighedskræmmeri, der måske var tidligere. I dag er rigtig meget Open Source, gennemsigtigheden er stor og alle kan følge med. It’s all there!” Og er et projekt interessant, så kommer de dygtige folk til dig og vil være med, ellers holder de sig væk og bruger deres kræfter et andet sted,” bemærker han.
”Selvfølgelig giver det også en masse støj. Det er nok uundgåeligt. Men det må man lære at leve med. For alt i alt er den nye generations åbenhed og evne til collaboration en enorm gevinst, tror jeg. Og jeg er rigtig glad for, at den kultur nu også er dybt forankret i TypeScript – som jo er Open Source hele vejen igennem – og i Microsofts kultur som helhed,” siger Anders Hejlsberg.