Two is Too Many

Engineer, cat herder and CodingGrace helper

Quick update on ELMO-8 and Elm 0.18

Super quick update on ELMO-8:

  1. Elm 0.18 came out and brings some really interesting debugging options (yay!)
  2. Elm 0.18 came out and not all of ELMO-8’s dependencies have updated yet (boo!) (In particular elm-community/webgl and elm-community/linear-algebra need to be published with updated code.)
  3. I have the code running locally with the latest checkouts so all is good there
  4. Since @whykay is planning to use ELMO-8 to make a little game I’m going to work on an asset manager to make her life easier (so you can quickly test animations in little throwaway programs).
  5. I’m finding myself drifting away from the event loop approach I’m coping from PICO-8 and I’ll probably drift towards asset + actor models to make things more “Elmy”. Especially with the debugging state it makes sense to be more event driven than a timer.

Some random observations on Elm 0.18:

  • 0.17 and 0.18 are making great strides but really bring home the fact Elm is still being aggressively refactored. This leads to excitement like all your dependencies needing updates.
  • When it works the elm-format + elm-upgrade upgrade approach works a treat. You have to accept elm-format’s formatting as canonical though :)
  • I’m ok with breaking changes while Elm is actively being developed, but it is a little frustrating. If I want to run a workshop I really need to use the latest version, which imposes a delay while I wait for stuff to update (or I figure out how to fixup stuff and submit PRs).
  • By a little frustrating I mean, I nearly table flipped when 0.18 came out. Elm’s release schedule is nearly perfectly timed to coincide with when I plan to use / teach Elm, thus making my life hard :)
  • If you find the debug window isn’t working, check if the pop-up blocker in your browser isn’t kicking in.
  • If you’re linking in source from 3rd party code via elm-package.json’s source-directories property remember to hack in your package name into the Native code, otherwise you get annoying JS errors.