Quick update on ELMO-8 and Elm 0.18
Published: Tuesday, 15 November 2016 by Michael Twomey
Super quick update on ELMO-8:
- Elm 0.18 came out and brings some really interesting debugging options (yay!)
- 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.)
- I have the code running locally with the latest checkouts so all is good there
- 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).
- 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.