WORDS
Navigera i webbdjungeln: Serverspråk
I webbläsaren, på klientsidan, är man begränsad till att använda Javascript, CSS och HTML. På serversidan däremot har man fler möjligheter att använda just dom språk man tycker bäst om, utifrån dom behov man har.
Statisk webbsida
Innan du bestämmer dig vilket språk du ska programmera din backend i, så kan du fundera över om du verkligen behöver en backend över huvud taget. Kanske klarar du dig utan inloggning och databas, och kan hantera all logik direkt i webbläsaren? Då kan en attraktiv lösning vara att bara skapa statiska HTML-, CSS- och Javascript-filer och servera dom till webbläsaren. Du kommer fortfarande behöva en server, men du får bort ett stort lager i din applikationsstack.
Flera av projekten som jag har skapat är statiska webbsidor, just för att dom är så lätta att underhålla.1
Serverspråk
Dom flesta programspråk går att använda för att skriva serverkod, men det underlättar om det finns ett ekosystem av ramverk och bibliotek avsedda just för en webbserver. Här följer några alternativ med lovande ekosystem. Vi kikar extra på PHP och Javascript, som skiljer sig lite från mängden.
PHP
PHP som programspråk är hatat av många, även om det har förbättrats mycket under det senaste decenniet. Inte heller jag tycker att PHP är ett vackert språk, men det har åtminstone en väsentlig fördel: det fungerar bra som komplement till en statisk webbsida. Det är lätt att först skapa en statisk webbsida, och därefter lägga till en liten dynamisk serverkomponent.
Javascript
I dom fall då man behöver dynamiska funktioner i webbläsaren, så används Javascript, men ofta finns det en fördel i att kunna dela kod mellan frontend och backend. I dessa fall använder man NodeJS för backend. Givetvis kan man också här använda språk som kompilerar till Javascript, såsom Typescript.
Övriga
C#, Python, Ruby, Rust, Go och Java är alla språk med serverramverk under aktiv utveckling. Rust och Go (och kanske C#) kan man dessutom använda i webbläsaren genom WebAssembly, men år 2019 är ramverk och bibliotek för klientsidan för dessa språk fortfarande i sin linda.
- Webbplatserna givna som exempel är till allra största del statiska, men innehåller en liten icke-statisk del: loggning. Av integritetsskäl har jag valt att inte inkludera externa spårningsskript (som Google Analytics), vilket skulle ha kunnat göra webbplatserna helt statiska. ↩