För några veckor sedan blev det liv i luckan kring chatt-tjänsten Whatsapp i Sverige, när det visade sig att poliser hade använt den som ett hjälpmedel i spaningsarbete. Det hela uppmärksammades när poliserna av misstag bjöd in en person som föreläser om integritet på sociala medier. Det visade sig att känslig information förekom i polisernas osanktionerade kommunikation.

Bara några dagar senare köper Facebook Whatsapp för 19 miljarder dollar, eller 123 miljarder kronor.

Grafik: Så stort är Whatsapp-köpet.

Båda händelserna är förstås ett tecken på Whatsapps stora popularitet. En förutsättning för att tjänster av den här typen ska bli heta är att antalet användare är stort och att användarna är aktiva. Rent tekniskt innebär det stora krav.

En nyckel till bra prestanda för Whatsapp är språket Erlang, med tillhörande programkörningsmiljö, dess så kallade ”run-time”. Erlang skapades på Ericsson i mitten av 1980-talet. Så hur kommer det sig att just Erlang är lämpat för tillämpningar som chatt?

– Erlang har sitt ursprung inom telefoni. Där handlar det om att hantera många parallella sessioner, precis som på en chatt-tjänst, säger Johan Bevemyr, systemarkitekt på Tail-f Systems. Han har erfarenhet av Erlang, bland annat när han varit med och skapat lösningar för betalningsföretaget Klarna.

På en konkret teknisk nivå lyfter han fram flera saker. Till att börja med är det ”billigt” att skapa och köra nya trådar i ett program. Eller i klartext, det går bra att låta ett program göra många saker samtidigt, vilket är ett krav för en chatt-tjänst. En tråd kan beskrivas som en serie instruktioner som utförs i ett program. Flera trådar kan köras samtidigt.

För det andra finns det bra sätt att kommunicera mellan trådar i Erlang. Det sker genom att meddelanden skickas mellan dem

– Det finns inga delade minnesutrymmen, vilket underlättar kommunikation.

En tredje fördel är bra felhantering. Felhanteringen kan begränsas till, och göras fullständig för, den del av ett program som fallerar. Det betyder att bara det som går fel påverkas, det behövs inte en omstart av hela programmet.

Ytterligare en fördel är att det går att uppgradera kod under körning av ett program, både för delar av ett program och för ett helt program.

Sammantaget gör de här fördelarna Erlang väl lämpat för att skapa chatt-tjänster. Om fördelarna främst kommer av att Erlang är ett funktionellt språk eller av att Erlangmiljön implementerats på ett bra sätt låter Johan Bevemyr vara osagt. Men han ser definitivt fördelar med att arbeta med funktionella språk.

– Jämfört med objektorienterade program blir funktionella program lättare att överblicka. I objektorienterade program göms logiken ofta i arvsstrukturen.

Fakta

Det finns flera förklaringar till namnet Erlang. En är att språket är uppkallat efter den danske matematikern Agner Krarup Erlang. En annan att det står för Ericsson Language. Det skapades i alla fall på Ericsson, för att användas för telefoniapplikationer.

Den första versionen av Erlang skapades 1986. Erlang släpptes som öppen källkod 1998.
Källa: Wikipedia