JavaScript är ett barn av webben med en brokig uppväxt. Globala variabler, eval() och document.write() var de stora synderna. Dessutom, ett scriptspråk i en värld av C++/Java. Fungerade sådär bra med olika webbläsare. Inga riktiga programmerade smutsade ner händerna med JavaScript. Men JavaScript överlevde (och så gjorde även PHP och andra ”fula” språk).
Nu är JavaScript mer än någonsin en del av webben. Med Canvas är JavaScript ett grafik- och spel-programmeringsspråk. Med ramverket Node.js är JavaScript ett server-språk. Med jQuery, D3 och flera andra utökningar är JavaScript accepterat av open source community. Med nya webbläsare fungerar JavaScript pålitligt och snabbt. Det byggs och hackas som aldrig förr.
Länge var standardboken JavaScript: The Definitive Guide: Activate Your Web Pages (Definitive Guides). Den med noshörningen. Men idag är den ersatt av Mozilla Developer Network och Stack Overflow - aktuellt, tillgängligt och socialt. Noshörningen ligger i källaren – Sysav nästa.
Det nya, mogna JavaScript kräver bättre litteratur.
Tack vare sin ålder, och minst sagt stökiga uppväxt, finns det i JavaScript, mer än i något annat språk, fel och brister och man bör noga undvika. Här är några böcker som gör ett bra jobb med att skilja på ”the good parts” och ”the bad parts”:
JavaScript: The Good Parts
(betyg: 5 av 5)
Om det bara är en bok…så är det denna, och Douglas Crockford är, som skapare av JSLint och JSON, kanske den ende som kunnat skriva den.
Följer man reglerna i The Good Parts, varav flera också finns här, och har lite hum om programmering, så är man antagligen inte helt fel på det. Speciellt gillar jag de raka Gör Så Här, Inte Så Här reglerna.
Boken har en fjäril på omslaget, lämpligt med tanke på att JavaScript i grund och botten är ett lätt språk, om man håller sig till The Good Parts.
Som komplement kan man kolla in Maintainable JavaScript (betyg 4 av 5) och JavaScript Patterns (betyg 4 av 5), i vad som tycks vara en O’Reilly JavaScript serie. Speciellt om man jobbar i stora team eller avser dela kod med andra. Båda innehåller konkreta tips på hur man strukturerar kod och utnyttjar JavaScripts bra funktioner till max: t ex all kod inuti en global variabel (a la jQuery’s $) eller en anonym funktion med sk Immediate Function Invocation.
Däremot tycker jag inte de andra O’Reilly böckerna, High Performance JavaScript (Build Faster Web Application Interfaces) (betyg 3 av 5) eller JavaScript Web Applications (betyg 2 av 5)
, känns lika relevant. High Performance (av samma författare som Maintainable, Nicholas Zakas) känns lite tunn på innehåll, och Web Applications tycker jag går alldeles för långt med att försöka använda JavaScript som C++, med klasser och allt.
Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript (Effective Software Development Series)
(betyg: 5 av 5)
Avundsjukt har man sett på när C++ folket läser Scott Meyers’ tunga Effective C++ serie. Kanske har nu JavaScript folket äntligen fått något liknande. David Herman (från Mozilla) går djupt in i JavaScripts allra snårigaste skogar: event hantering, asynkrona funktioner, funktioner som objekt, funktionsuttryck (function expressions), prototyper. Varje kapitel inleds med något enkelt exempel man vid en första anblick tror sig förstå. Till Herman börjar bryta ner det i vad som verkligen sker.
Jag trodde kunde JavaScript ganska bra. Sedan läste jag Effective.
Uppdaterat 3 januari: Finns en fin recension här.
Core HTML5 Canvas: Graphics, Animation, and Game Development (Core Series)
(betyg 5 av 5)
Ärligt talat, det ges ut en hel del skitböcker om HTML5. Inte minst från O’Reilly som annars brukar vara bra. Core Canvas ges ut av Prentice Hall och påminner mig om den dagen för femton år sedan jag lärde mig Java med Core Java.
Core Canvas är egentligen inte en JavaScript bok men använder man Canvas använder man JavaScript.
En ska skiljer denna från alla andra böcker om HTML5 och specifikt Canvas. Core Canvas har substans långt utöver att bara räkna upp de olika JavaScript Canvas APIer, och mer eller mindre skriva av HTML5 specen. Core Canvas beskriver grafik-programmering (sista exemplet är ett komplett ritprogram) och spel-programmering (ett exempel är en spelmotor), och en del matematik.
Författaren, David Geary, är tidigare känd för Graphic Java böckerna på samma förlag.
The post Läs dessa JavaScript-böcker eller lägg av med JavaScript appeared first on PETER STARK OM AGIL PRODUKTUTVECKLING.