2022-06-15
Vad är Elixir?
Ett (relativt) nytt funktionellt programmeringsspråk.
Okay, lite mer får du berätta.
För att jag ska kunna berätta vad Elixir är måste du veta vad Erlang är.
Vad är Er-Er..lang(?)
Programmeringsspråket Erlang utvecklades av Ericsson på 80-talet och används än idag framförallt i deras switchar (tidigare för telefoni, nu för annan typ av trafik). Det utvecklas ständigt och nådde nyligen versionsnummer 25.
När du programmerar Elixir programmerar du egentligen Erlang under huven. Erlang kan räknas som ett av världens mest stabila språk och hanterar en stor del av världens internettrafik. Men tillskillnad från Erlang är Elixir även designat för att öka utvecklarglädjen. På det sättet kan du få det bästa av två världar.
Jo, men vad ger det mig för fördelar egentligen?
Det ger följande fördelar: Det går snabbt att bygga en produkt på ett hållbart sätt men där lösningen och produkten kan förväntas vara stabil, pålitlig och skalbar.
Hur kan det vara så?
Erlang byggdes för att hantera den växande mängden telefonsamtal där isolering av fel och för att kunna hantera många små anslutningar samtidigt, med en stark “concurrency”-modell.
Varför är det viktigt?
Framförallt för att ett fel i ett samtal inte ska kunna störa ett annat samtal. Dessutom ville Ericsson kunna skala upp utan att dramatiskt höja sina kostnader eller komplexiteten. Därför rapporterar många företag om att de, i och med bytet till Elixir, kunnat ersätta tiotals, eller till och med mer än 100 servrar med endast ett fåtal. Det betyder att även om du inte planerar för att skala upp till samma nivå som Ericsson så kan du vara säker på att om du skulle behöva, skulle det vara mycket lättare att skala upp med Elixir än de flesta andra språk, med fler kostnadsbesparingar och färre problem med flaskhalsar på vägen. Om du förväntar dig att din applikation kommer bli använd är Elixir sällan ett dåligt val.
Jo, det är ju bra att det går att skala och sådär, men utvecklare är ändå den största kostnaden, och det måste vara oerhört svårt och ta lång tid att utveckla en sån applikation. Eller hur?
Ja, det stämmer att utvecklare kostar väldigt mycket pengar och att det ofta är marginella kostnader för servrar och underhåll i jämförelse med att betala bra utvecklare. Däremot finns det inget som talar för att Elixir skulle vara svårare att skriva. Tvärtom behöver det inte vara en tradeoff i utvecklare-effektivitet mot server-effektivitet. I den senaste av Stack Overflows utvecklarundersökningar var Elixir det 4:e mest älskade språket. Snarare hjälper Elixirs modell utvecklarna att överkomma hinder som klassas som några av datavetenskaps-världens svåraste. Vilket gör att de snarare kan spara tid.
..ok.
Förutom det så har Elixir ett ergonomiskt och stort standardbibliotek, Pattern Matching, immutabilitet, ett inbyggt test-ramverk, doc-tests och mycket annat gött, dessutom tillåter det utvecklaren att programmera funktionellt .
Något annat?
Elixir har även ett ramverk för webbapplikationer, Phoenix. Phoenix har funnits i många år, men i det senaste har ett koncept som kallas “Phoenix LiveView” dykt upp. Phoenix LiveView är fräckt för att det ger utvecklaren möjlighet att använda ett delat “State” mellan frontend och backend. Något som tidigare för det mesta var uppdelat i två delar, där frontend hela tiden måste hålla sig i synk med backend manuellt och därmed öka komplexiteten rejält. Istället för att använda JavaScript på frontenden levereras uppdateringarna i Phoenix LiveView i backenden direkt via WebSockets. Vyerna skapas upp deklarativt och fylls sedan automatiskt av ramverket. Mycket likt hur React fungerar. Vilket kort sagt kan minska komplexiteten och frigöra tid till att fokusera på att utveckla affärsidéer och mindre på att skapa och lösa buggar.
Okay, nu får du sluta, det låter för bra för att vara sant. Vad är haken?
Det är ingen “silverbullet”. Bara för att du bygger något i Elixir (eller Erlang), får du inte automatisk skalbarhet och det är inte idiotsäkert för att undvika flaskhalsar och skalbarhetsproblem. Däremot bygger det på beprövad teknik och en systemmodell som gör det lättare att undvika den typen av problem. Det som däremot är negativt är att språket endast är tio år gammalt och att det därför är relativt få utvecklare som kan Elixir. Som tur är har vi på Iteam utvecklingsteam som kan hjälpa dig komma igång.
Vill du läsa mer om Elixir kan du kolla in vårt projekt Predictive Movement som ligger som open source på GitHub. Eller kontakta Mikael.
2022-09-26
2022-09-23
2022-04-13
2021-10-22
2021-06-16
2021-06-03
2021-05-18
2021-05-10
2020-10-01
2020-09-03
2022-11-14
UX-teamet här på Iteam ville utforska användningen av olika AI-verktyg i det dagliga arbetet och ägnade en labbfredag åt detta.
2022-09-26
Hösten är i full gång, projekt efter projekt startas upp och med det sätts också team samman för att jobba med nya utmaningar.
2022-09-23
Vi jobbar just nu vidare under Predictive Movement-paraplyet i två projekt, RörLa och Digiby.
2022-09-15
Letar du efter plats på ett magiskt och mysigt kontor? Ta en titt på ett av våra outnyttjade kontorsrum på vårt kontor i Göteborg.
2022-06-15
Vår stjärnutvecklare Mikael berättar om glädjen att koda med Elixir
2022-04-13
Att bygga relationer med omtanke och respekt är något vi alla kan göra för en bättre värld. I vår välkomnar vi både nya och gamla kollegor tillbaka.
2022-04-08
I takt med att fler företag inser värdet av design ökar behovet att skala designfunktioner. Och det är precis det som DesignOps fokuserar på.
2021-10-22
Hur kan ett utvecklingsteam bli ett hockeylag. Lösningen stavas Team Flow. Men hur gör vi för att uppnå detta?
2021-08-05
Hållbarhet och digital innovation sitter lika naturligt ihop som Batman och Robin
2021-06-18
Location, location, location. Vad har Strindbergs hiss med huspriser att göra?
2021-06-16
De flesta vet vad BNP är men få vet vad ett API är. Båda är komplicerade frågor som hjälper att känna till om man ska förstå hur samhället utvecklas.
2021-06-10
Öppen källkod är mycket mer än bara gratis programvara. Det är en filosofi som rimmar väl med demokratins värderingar.
2021-06-09
Vi kombinerar det bästa från hemarbetet med en ny form av lokal
2021-06-03
Hur kommer framtidens transportsystem fungera? Kan AI hjälpa miljön?
2021-05-18
Predictive Movement är en samverkansplattform för att optimera transportsystemet. Denna veckan testar vi i Pajala.
2021-05-10
2021 är Iteam ett techbolag med lika många kvinnor som män. Det tål att uppmärksammas!
2021-03-10
Hur påverkar öppen källkod och öppen data arbetsmarknaden framöver?
2020-10-01
Developer Experience - hur skapar man lösningar som utvecklare ❤️ älskar?
2020-09-03
Hur skulle samhället förändras om vi kunde få drönarleveranser till varje stuga?