Elm

Elm er et funksjonelt, typet språk for utvikling i nettlesere. Språket ble designet av Evan Czaplicki i 2012. Elm er bygget rundt prinsippene for functional reactive programming. Elm har som mål å gjøre webutvikling robust, enkelt å refaktorere og ikke minst morsomt. Det kompilerer til JavaScript og har et voksende ekosystem. Syntaksen er inspirert av Haskell, men det er forbausende enkelt å komme igang med å lage noe nyttig!

Våre anbefalinger

Let's be Mainstream

Evan Czaplicki (forfatter av Elm) forsøker å få med hardcore funksjonelle programmerere (med en hang for typer) til å begynne å kommunisere med utenforstående på mer forståelige termer. Etter å ha sett denne fikk jeg endelig lyst til å kikke på et typet funksjonelt språk. Se foredraget

Våre bloggposter

Introducing Elm Bootstrap

Lansering av mitt nye Elm bibliotek for å lage responsive webapplikasjoner med Twitter Bootstrap. Du får en oversikt over hva og hvorfor samt litt historie om hvordan biblioteket ble til. Les posten

Typed up CRUD SPA with Haskell and Elm - Part 6: Elm 0.18 Upgrade

I min blogserie om å lage en CRUD applikasjon i Elm og Haskell har tiden kommer for å oppgradere Elm koden til versjon 0.18. Mye av oppgraderingen denne gangen kunne automatiseres vha verktøy fra Elm Community. Resten av endringene var relativt mekaniske. Posten går relativt detaljert til verks med å sammelikne forskjellene mellom 0.17 og 0.18. Les posten

Elm Light 0.4.0 - AST driven Elm features in Light Table using PEG.js

For å kunne tilby enda mer avansert Elm støtte i Light Table har jeg implementert en hjemmesnekret AST vha peg.js. Dette har gitt vesentlig forbedret autocomplete og endel hendige refactor relaterte funksjoner. Les posten

Oh no! Learning Elm has gotten me confused about static vs dynamic typing.

Etter lenge å ha vært overbevist om at dynamisk typing var det eneste saliggjørende reflekterer jeg over min gryende tvil etter å ha brukt en solid dose tid på å sette meg inn i statisk typede funksjonelle språk. Les posten

Typed up CRUD SPA with Haskell and Elm - Part 5: Elm 0.17 Upgrade

I min blogserie om å lage en CRUD applikasjon i Elm og Haskell har tiden kommer for å oppgradere Elm koden til versjon 0.17. Ting har på overflaten endret seg dramatisk siden 0.16, men en strukutert gjennomgang av prosessen viser at de fleste endringene er trivielle og sluttresultat er unektelig bedre enn forrige versjon. Les posten

Elm Maybe - Dealing with null/Nothing

Tony Hoare ansees som mannen som fant opp null reference. Han kaller det sitt billion dollar mistake. I Elm har man ikke null og de problemene det medfører. I stedet bruker man en eksplisitt type man kaller Maybe (noen språk kaller det Option). I denne blogposten tar jeg for meg hvordan det er å jobbe med Maybe verdier og sammenligner litt med JavaScript. Det er ikke mange gode unnskyldninger for å ta med null i ett nytt språk, men enda så skjer det med nye språk som blir laget den dag i dag. Forstå det den som kan. Les posten

Elm and ClojureScript joining forces in the elm-light plugin

Jeg tenkte det måtte være kult å se om man kunne få Elm og ClojureScript til å spille sammen i Light Table. I denne blogposten forklarer jeg hvordan jeg implementerte en Modul utforsker vha både Elm og ClojureScript Les posten

Typed up CRUD SPA with Haskell and Elm - Part 4: Feature creep

Blogserie som omhandler min ferd for å lære meg statiske sterkt typed funksjonelle språk. Tiden har kommet for å peise på med mer funksjonalitet og en god del refaktorering. Her får jeg kjørt meg skikkelig på både Elm og Haskell Les posten

Typed up CRUD SPA with Haskell and Elm - Part 3: Routing

Blogserie som omhandler min ferd for å lære meg statiske sterkt typed funksjonelle språk. I denne episoden implementerer jeg routing i Elm frontenden Les posten

Typed up CRUD SPA with Haskell and Elm - Part 2: Persistence up and running

Blogserie som omhandler min ferd for å lære meg statiske sterkt typed funksjonelle språk. I denne episoden implementerer jeg persistens vha en god gammeldags relasjonsdatabase Les posten

Typed up CRUD SPA with Haskell and Elm - Part 1: Spike time

Blogserie som omhandler min ferd for å lære meg statiske sterkt typed funksjonelle språk. I serien tar jeg for meg utvikling av en CRUD applikasjon med Elm til frontend og Haskell for backend. Førte episode tar for seg en spike for å få en helt enkel basis på plass. Les posten

Minesweeper - a brief journey from JavaScript/React to Elm

Jeg tar utgangspunkt i en minesveiper implementasjon fra Christian Johansen i JavaScript/React og hviser hvordan man kan implementere det samme spillet i Elm. Bloggposten sammenligner flere implementasjonsdetajer og reflekterer kort om statisk vs. dynamisk typing. Les posten

Våre presentasjoner

Functional Reactive Programming for the Web using Elm

I dette foredraget får du en oversikt over hvordan Elm omfavner Funksjonell Reaktive Programmering vha signaler (verdier som endrer seg over tid). Du vil lære litt om Elm platformen og arkitekturen for en typisk Elm applikasjon. Live koding står også på blokka ! Se video

Elm - Awesomesauce or just yet another language for the frontend

Elm er kanskje et av de mest spennende språkene og platformene for å lage solide, raske og vedlikeholdbare web frontends. I dette fordraget får du en liten smakebit av fordelene med funksjonell programmering (med typer) i Elm. Du får også en innføring i hvordan Elm er mere enn bare et språk. Språket, plattformen og arkitekturen promoterer en ny måte å tenke på som virkelig fanger ens oppmerksomhet. Foredraget består av noen få slides og en solid dose med live-coding ! Se video

Functional Frontends with Elm

Lyntale på Oslo Socially Functional hvor jeg lager en enkel Chat klient med Elm

Elm plugin for Light Table

Screencast som demonstrerer første versjon av min elm plugin for Light Table Se video Se koden

Managing and diagramming elm packages with d3 in Light Table

Screencast hvor jeg demonstrerer avhengighetshåndtering og viser avhengighetsgraf (laget med d3) for min Elm Light Table plugin. Se video Se koden

Elm package docs preview in Light Table

Screencast som demonstrerer forhåndsvisning av pakke dokumentasjon for Elm i Light Table. Se video Se koden

Open source

  • Magnus utviklet Elm Bootstrap. Elm bibliotek for å lage responsive webapplikasjoner med Twitter Bootstrap 4.
  • Magnus utviklet Elm Light Table Plugin. Light Table plugin for Elm. Syntax-highlighting, repl/inline eval, elm reactor integrasjon mm