Jag köpte mig en bok


”The best nature of JavaScript is so effectively hidden that for many years the prevailing opinion of JavaScript was that is was an unsightly, incompetent toy. [..] My intention here is to expose the goodness in JavaScript, an outstanding, dynamic programming language.”

Ovanstående citat kommer ur det inledande kapitlet av JavaScript: The Good Parts av Douglas Crockford, en bok jag köpte för att ta tag i det oundvikliga. År efter år har jag hållit mig på säkert avstånd, övertygad om att något vettigare alternativ förr eller senare måste dyka upp. Men det dök ju aldrig upp något alternativ och språket vann av någon outgrundlig anledning mer och mer mark för varje år. Det var väl dags att ta tag i det oundvikliga. Så jag köpte mig en bok.

När jag nu nästan har läst boken till ända ställer jag mig frågande till det citat jag inledde min lilla text med. Gång på gång har författaren förklarat hur man ska göra för att göra ”rätt”  – boken fokuserar ju just på ”the good parts” – och samtidigt belyst väldigt många konstigheter i språket som inte bör användas. Och det finns väldigt många.

Bara det där med att instansiera objekt rätt är knepigt. Det finns en för många av oss bekant operator vid namn new, men det är enligt författaren en bra strategi att hålla sig borta från den och välja andra tillvägagångssätt. Men om man nu ändå designar sin kod runt att använda sig av new gäller det att inte glömma bort att använda den; att glömma bort att använda new gör att this-referensen kommer att peka på något helt annat än det man tror, det globala objektet. Trots det kompilerar koden och kan köras utan minsta varning.

Sida efter sida målar boken upp bilden av ett språk som förlåter väldigt mycket och inte erbjuder mycket till struktur att luta sig emot. Ändå väljer författaren att kalla språket för ett ”outstanding, dynamic programming language”. Om jag förstår honom rätt syftar han med det citatet egentligen på en delmängd av språket, alltså det som ingår i ”the good parts”. Men kan man ens resonera så? Kan man sätta skygglappar på och låtsas att det som är dåligt inte existerar? Alla konstigheter som inte kvalar in bland ”the good parts” är ju likväl en del av språket?

Och hur fungerar det med språkets alla oskrivna regler i större projekt? Ska man inför projektstart enas om allt mellan himmel och jord för att få till en gemensam struktur att samarbeta kring? Typ ”använd inte detta, tänk på det här, instansiera inte så”. Och eftersom kompilatorn många gånger inte säger ifrån när man gör nåt knäppt tänker jag mig att mycket tid måste gå åt till Code Review för att upprätthålla den struktur man kommit överens om. Det känns som att man verkligen måste veta vad man gör och ha tungan rätt i mun för att koden ska bli förvaltningsbar.

Men vad vet jag, jag har ju aldrig egentligen lärt mig JavaScript ”på riktigt”. Vilken tur då att jag kan avsluta mitt resonemang med ett annat härligt citat från boken:

”The amazing thing about JavaScript is that it is possible to get work done with it without knowing much about the language [..]”


Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *