Elm crash course – Building unbreakable webapps fast

Elm is a delightful functional language for reliable webapps. It compiles to JavaScript, has great performance, no runtime exceptions, and can be embeded easily into existing JS projects without the need for huge rewrites or time investment.
We’ll be taking a practically focused crash course tour of Elm, ideally you’ll walk away being able to put Elm into production either from scratch or in an existing project.

Mario is an Australian living in London, where he organises the Elm London Meetup group. He believes technology should make life simple and joyful, and enjoys being able to prove so.

Talk by Mario Rogic (@realmario) at the Reactivate London meetup.

Recorded by Pusher.com. Check them out if you want awesome real-time tools, and subscribe to the their YouTube channel for more talks!

Pusher’s channel: https://www.youtube.com/channel/UCoyqucxoFXDFnh3khD0rjUg

Learn to code for free and get a developer job: https://www.freecodecamp.org

Read hundreds of articles on programming: https://medium.freecodecamp.org

And subscribe for new videos on technology every day: https://youtube.com/subscription_center?add_user=freecodecamp


This Post Has 46 Comments

  1. Jorge Ricaldi

    omg, I just saw a video about Elixir and its syntax was a little rare for me, but this one is really a pain in the brain.

  2. Milad

    Nice presentation. and great work explaining complicated concepts in simple terms.
    However, your example of the "Worst possible scenario" was very overpromised and kinda fake .
    I would be surprised if there's any application written in any language in which, if you go and introduce a new function ( or feature) and add a new switch case, would break anything,
    Your example proved nothing. Why would that code break anyway ?
    You know what I mean ?
    If I go into my application, written in Angular, find a switch case and add a new case, how's that gonna break anything in runtime? UNLESS that case is actually being met in the runtime, which could happen in your ELM example too.
    You didn't add a new feature, you just created an empty function somewhere floating in the code base and praising ELM because nothing broke.
    How about adding some new business logic . ?
    How about playing a little bit with the markup and adding some new markup to see if something will break ?
    Basically, codes break because of change in the business logic, not because of introducing new unused functions.
    Cool talk any way.

  3. Axea

    Elm is nice for two reasons:
    1 Its syntax is simpler then for example clojure
    2 It is about web apps, so if you are modern front-end dev right now, so elm's concepts are very close

  4. moofymoo

    This looks like Elm version 0.18.
    Current version is 0.19, but it have breaking changes and shitty documentation – elm architecture section is just a draft and examples from v0.18 doesn't work. that's kinda big red flag to not use it for anything at work (unless you plan to leave company and your enemies will have to support it :D)

  5. Rafael

    Yes. It's ridiculous how bloated are the depencies of an NPM project.

  6. bocckoka

    I think Noredink had a runtime exception, they left a Debug.crash in the prod code if I recall correctly.

  7. Srini R

    I Wonder, why 5 dislikes.. Very good diagram flow & explanations.

  8. Sam

    Too much bla bla.

  9. Code on Ice

    I wish you guys can create a elixir and phoenix fullstack tutorial, it would so beneficial to us. Thank you

  10. Vishal Srinivas

    I dont get it. How can it not have any runtime exceptions. Runtime Exceptions are mostly logical errors made by the programmer that are syntactically otherwise correct. Nothing stops the programmer in making logical errors. For example nothing stops me from giving an input 5/0 to the compiler. Nothing stops me from making Encoding errors, Regex parsing errors. I dont know how this claim is even valid. Probably elm can be marketed something like, Compiler catches most of the runtime exceptions internally and gives out a readable output without stopping the execution.

    Would like to suggest a few pointers for beginners trying out elm 0.19 :
    -> toString no longer exists, it comes from String module now, Use String.fromInt
    -> beginnerProgram is changed to Browser.sandbox in elm 0.19

  11. Angad Singh

    Any idea where I can find the source code for the interactive presentation?

  12. Stephen Davies

    Nice, but 0.19 Elm broke loads of backward compatibility so this doesn't really work for latest Elm 2019

  13. Roman Navrátil

    Brilliant talk! This is great and clear explanation even for someone like me as I've never written anything in Elm.

  14. Gregory Boswell

    Welcome to the world of compilers and almost writing real code…

  15. Hector Lopez

    31:54 is literally why I'm here 😂
    But I must say this video is getting me more excited to work with it

  16. mydemon

    First 5:00 minutes are a complete waste of time. Not a word was useful.

  17. I love tech

    Sorry. I'm not sold. This is another project to transpile something to JS. Better time would be invested into Wasm or helping Clojure Script. There's just too many programming languages now days. We need general purpose languages… Not DSL languages.

  18. Noko Moko

    my god what a weird language i feel like my brain is overheating

  19. F

    FYI: SemVer works like this: MAJOR.MINOR.PATCH

  20. Ed Leonard

    Really good talk and light intro. Much appreciated

  21. LeSaboteur3981

    Really good, interesting and entertaining Speak! This was my first touchpoint with Elm and a great overview

  22. Infinitus

    Where can I get the source code of the live slide.

  23. Bryan Chance

    First time I've heard of Elm. I'm shocked that able to grasp the whole concept. This never ever happened to me. 🙂 I don't know the Elm syntax other than what you presented here but I'm confident Elm is my new favorite language. I think credit has to Mario. Thank you.
    I looked at Elixir and other FP languages, they all gave me such a bad headache. LOL :_)

  24. NuncNuncNuncNunc

    There's always talk about how language X will ease developer pain, but rarely do I hear my pains addressed. Immutable types, funtional syntax, type checking, cool, but what about declarative UI, model checking between client and server, opinionated error handling. Virtually every app is a reinvention, so why do we always need to work our way up from the stone age each time we start a new app?

  25. Fly Lord

    This was an awesome talk. Really appreciate this knowledge.

  26. As somebody who needs to learn elm at a base level within the next month and a half, and as somebody who will be basically screwed if I dont learn elm within that timeframe, I very much appreciate this talk.

  27. Lucas A

    I'm learning now, but the documentation is not clear, I can not find anywhere how to create a hover effect for a fucking button

  28. Virak Ngauv

    Awesome talk! I don't have a need to learn or develop in Elm yet but even so, the talk was good enough that I watched it from start to finish!

Leave a Reply