Button-svg Transkribering

Joe Armstrong död vid 68 års ålder, skapade programmeringsspråket Erlang och var verksam i Sverige

Martin

Joe Armstrong, död vid 68 års ålder, skapade programmeringsspråket Erlang och var i många år verksam i Sverige på KTH och Ericsson. En av den samtida datavetenskapens giganter har gått ur tiden. Joe Armstrong, som är välkänd inom datakretsar och som också har specifika kopplingar till Sverige, dog häromdagen.

Han är britt från början, men var verksam i Sverige i många år. Han läste på KTH och så småningom ganska sent i livet så doktorerade han på KTH. Han har jobbat på Ericsson i många år och är väldigt känd i programmeringskretsarna. som skaparen av programmeringsspråket Erlang. Han är också känd som en riktig hedersknyffel.

En oerhört trevlig och ödmjuk, sympatisk person. Inte för att det egentligen är någon brist på sådana personer i programmeringskretsar. Det är inte som att folk som uppfinner programmeringsspråk brukar vara arroganta divor och vara otrevliga mot folk och sånt där. Tvärtom. Men John Strong hade särskilt ett rykte om sig. Att vara otroligt hjälpsam och generös med sin tid och uppmuntrande till nya personer.

Jag har själv faktiskt en pytteliten personlig erfarenhet av det här. För en gång i tiden så jobbade jag på ett företag, ett företag som jag var med och startade för ett antal år sedan, som utvecklade mjukvaror av olika slag och i ett av projekten så valde ingenjörerna på företaget, det vill säga inte jag, jag hade inget med det beslutet att göra, men det bestämdes att vi skulle testa att bygga ett av våra system i Erlang.

För att det skulle vara ett bra tekniskt val av ett lanserat. Då tänkte jag så här, om den här Joe Armstrong, han bor som jag vet fortfarande i Sverige, han håller på med det här. De kanske ska mejla honom så här, men vänta nu, kan man verkligen mejla en sån här gigant? Folk har ju publika e-postadresser, så jag testade Ruger Berggt mejl. Och fick svar direkt med uppmuntran, kul att ni ska använda Erlang. Här är lite tips, det finns en grupp som träffas här och pratar om Erlang-utveckling.

Ni kanske vill gå dit och snacka med dem, annars kan ni titta på det här. Supertrevlig och hjälpsam person, och därför har jag gjort det här. så blev jag lite extra ledsen att höra att han hade dött vid en inte särskilt hög ålder. Sen har jag en annan tanke också, det här är lite långsökt kanske, men programmeringsspråket Erlang har en lite intressant programmeringsfilosofi bakom sig och det är någonting som Joe Armstrong ofta torgförde, vissa idéer kring hur det programspråket fungerar, som har vissa paralleller till libertariansk tankegods.

Jag har absolut ingen aning om var Joe Armstrong stod politiskt, eller om han någonsin hade en tanke på det här. Det här är bara något som jag själv har tänkt på. Erlang är ett programmeringsspråk som togs fram, man brukar säga lite förenklat, för att driva Ericssons telefonväxlar. Några saker som kännetecknar den typen av system är att de är väldigt omfattande. Det är väldigt stora system, de ska kunna hantera alla telefon- samtal som görs i ett stort nätverk.

Det är kanske ett nationellt växelsystem eller något sånt där. Och det här systemet måste vara fysiskt utspritt över väldigt stora ytor. Det måste vara distribuerat. Som man säger. Och det måste också ha en väldigt hög grad av feltolerans. För att om någonting går fel, antingen ett tekniskt fel, att det brinner i någon telefonväxel någonstans eller ett mänskligt fel, att någon trycker på fel knapp eller någon skriver fel kod eller någonting så får inte det leda till att hela det nationella telefonsystemet bråkar ihop eller hela företagets interna telefonsystem eller vad det är för någonting.

Och det här är någonting som telefonväxlar har gemensamt naturligtvis med många andra system. Men om man säger till exempel att man säger boom. som ett brukvarssystem. Om bubblan går ner några minuter, någon timme, så är inte det hela världen. Och det finns inte en miljon olika rörliga delar som måste funka oberoende av varandra. Men i vissa applikationer så har man den typen av fokus. Därför finns det inbyggt i ett programmeringsspråk som R-lang så finns det inbyggda begrepp för decentralisering och parallellisering som är inbyggda i själva språkets grunder.

Snarare än att de är tillagda efter. på ett lite mer godtyckligt och yxigt sätt. Till exempel så finns det idéer om om feltolerans. Jag ska se om jag kan få det här att låta noglunda rimligt även för IK-programmerare. R-Lag-system byggs ofta på ett sånt sätt att det finns inte en centraliserad nod som styr allting.

Vilket innebär att om någonting går fel i någon av de yttre noderna så kommer inte det påverka de andra noderna. Så en enda... Nord kan gå ner och den kommer automatiskt återstatas av en annan del av systemet utan att dess syskonoder kanske är på plats. –har märkt att nåt har hänt. Kanske lite trafik överförts till dem.

En av de filosofiska principerna är att fel kommer att inträffa. Programmerare och mänskliga operatörer kommer att göra fel. Teknik kommer att gå fel. Vi måste acceptera att det kommer att uppstå fel– –och ha ett robust, feltolerant system som klarar av att saker och ting inte är perfekta.

Och kan göra det på ett bra sätt. decentraliserat sätt så att vi inte lägger alla ägg i en korg eller är beroende av någon toppnod som hela tiden måste styra allting annat. En ganska elegant filosofi som jag tycker åtminstone ger ett visst eko till vår typ av idéer i samhällsfrågor.

Tobias

Ja, nu har ju du kommit med en sån strålande hyllning här så att jag knappt vet om jag vågar säga vad jag tänker om detta. Jag tittade upp lite kort. Jag har ingen tidigare erfarenhet av Erlang och jag är inte alls insatt i filosofin bakom här. Men de här kodexemplen jag såg då, det gav mig verkligen flashbacks till universitetstiden.

För vad jag tyckte mig se där, det var typiskt RG-funktionellt språk, framtaget av akademiker för akademiker. Ett sådant språk som personer på universitetet älskar men som inte går att använda till något vettigt i världen utanför. Nu ska det ju då sägas att Erlang utvecklades som ett privat företag och med ett väldigt specifikt syfte och åtanke.

Det kanske är precis perfekt för det man faktiskt har använt det till. Och tydligen så använder Ericsson det fortfarande i en hel del mjukvara som finns i nätet. Och det talar väl onekligen för att det fyller en funktion. Men om jag då bara går strikt på mina egna fördomar så blir jag nästan orolig istället. Jag får en sån där inre bild av att en hel del av det strul som uppstår i nätet består i att...

Hårdvaran i nätet står och mysberäknar fakulteter och fibonacci-talserier genom ineffektiva men eleganta implementationer bara för att göra någon akademiker någonstans salig av lycka. Men det är kanske bara mina onda fördomar som talar här.

Martin

Ja, akademiker i föraktet är oneken starkt dig Tobias. Och det är inte utan att... Du har en poäng. Det ligger ju någonting i det du säger. Samtidigt som det är en klassisk stridsfråga. Programmerare emellan. Den funktionella programmeringens status, eller vara eller icke vara. Det finns ju definitivt folk som har de här idéerna som du ger uttryck för. Det finns ju också en del som talar för dig.

En hel del sådana här funktionella programmeringsspråk framförallt används. Används mer i akademiska sammanhang och mer för småskaliga exempel. De flesta stora produktionssystem byggs i andra, mer konventionella och mer imperativt orienterade språk. Å andra sidan så finns det de som skulle säga att funktionella språk är språk för folk som är intelligenta och förmår att tänka på ett intelligent, abstrakt och elegant sätt.

Orsaken till att man inte använder funktionella språk hela tiden är att det tyvärr finns... Det finns många människor som inte är tillräckligt intelligenta för att använda dem på ett rätt sätt och förstå deras stora värden. Å andra sidan så finns det de som anser att lisp är en psykisk sjukdom. Att det är en form av bipolär störning som bör medicineras bort snarare än att användas som ett programmeringsspråk. Så jag tror att det här är en dispyt som vi får leva med ytterligare ett tag faktiskt.

Frid över Joe Armstrongs minne. Måtte många programmerare och programspråksägare. Jag kan inte som skapare följa hans föredöme och vara sådana utmärkta, sympatiska personer. För övrigt, den som är nyfiken på Erlang, man kan ju absolut bara använda Erlang och programmera i det programmeringsspråket. Det är lite krånglig, ovanlig syntax.

Det ser väldigt fult ut tycker jag själv. Jag tycker att Erlang-kod ser väldigt ful och konstig ut. Men det finns ett nytt språk som heter Elixir. Som är ett Erlang-inspirerat språk som körs på samma virtuella maskin som Erlang. Och som jag har förstått det så håller Elixir på att bli ett sådant där lite poppigt, trendigt programmeringsspråk som kidsen hoppar på. Så de använder kan man säga Erlang-paradigmet, men i form av Elixir. Inte gamla, klassiska Erlang. Ja, det var dagens lilla utläggning om programmeringsteknik.