Månadsarkiv: augusti 2015

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 [..]”

Det kunde ha varit du eller jag

Dagens nyhetsuppdatering på P1 morgon lämnade mig väldigt illa berörd. Nyligen fick vi höra att en lastbil påträffats i Österrike där många flyktingar hade kvävts till döds i fordonets lastutrymme. Idag informerade nyhetsuppläsaren om att dödstalet för denna händelse hade stigit till omkring 70 personer – personer som kvävts ihjäl inlåsta i ett lastutrymme. Det är så hemskt så det knappt går att ta in. Vidare läste nyhetsuppläsaren upp att ännu fler liv hade gått till spillo på medelhavet. Människors drömmar om ett bättre liv hade tagit slut där och då på de mest otänkbart hemska sätt.

Samtidigt på hemmaplan ser vi ett parti som på kort tid har samlat en orimligt stor opinion, mycket på grund av att de har en enkel ”lösning” på flyktingfrågan. Partiet menar att flyktingar ska få hjälp på plats. Mitt under ett rasande krig.

Jag tror att jag blev extra berörd idag just på grund av att jag där och då kopplade ihop dessa två saker. Om jag hade befunnit mig i ett pågående krig – en tanke som i sig är helt orimlig att sätta sig in i – skulle jag då inte ha valt hjälp på plats om det hade varit ett verkligt alternativ? Hade jag ens övervägt att släpa med mig fru och barn på en resa över en hel kontinent med uppenbara risker för undernäring, våldtäkt, drunkning eller kvävning om hjälp på plats hade varit ett verkligt alternativ? Hade jag lämnat allt bakom mig, allt det jag hade någon relation till och gett mig in i något helt okänt om hjälp på plats varit ett verkligt alternativ?

Nu tänker ni att jag ska berätta för er vad ni ska rösta på för parti i nästa val? Nä, jag är själv mycket förvirrad över den saken. Men jag önskar att när ni nästa gång har behov av att kanalisera känslor av hopplöshet, frustration eller hat i samband med flyktingfrågor – se då till att styra dessa negativa energier mot de bakomliggande orsakerna till flyktingströmmarna istället för mot människorna som flyr. För de som flyr kunde lika gärna ha varit du eller jag.