I am, as everybody else, really excited about 0.19. Though I was expecting something else in 0.19. I made these expectations after reading a comment in rtfeldmans elm-spa-example which Evan referred to as a good example of architecting a SPA. The comment in main.elm:
-- WARNING: Based on discussions around how asset management features
-- like code splitting and lazy loading have been shaping up, I expect
-- most of this file to become unnecessary in a future release of Elm.
-- Avoid putting things in here unless there is no alternative!
In an recent commit Feldman upgraded the application to 0.19 and rearchitected the whole app. main.elm went from 471 lines to 335. The comment is still there. So is the drop in lines due to 0.19 or Feldman?
I was expecting 0.19 to take away much of the boilerplate in creating SPAs. Was I wrong in my expectations? I mean was I the only one thinking along these lines?
Is I said above, I am really excited about 0.19 och thankful for all the work Evan and others put in to the language. Im just curious if I were wrong or the plans for 0.19 got changed along the way?
The believe Richard just changed how it was written. The changes in 0.19 are really more like elm-lang/navigation becoming elm/browser which are not what that comment is about.
This comment is based on private conversations about things that may or may not happen. Richard expects certain things in the future, but I cannot give any sort of guarantees about if or when that kind of thing will happen.
I am currently soliciting feedback from people with 50k lines and above as described in here, and we will see what happens from there. There are many things that are currently higher priority than pursuing asset size further at this time. Things are pretty good with asset size for now, and I think it’s a good time to focus on other types of improvements.
I personally hope that implicit page/route handling is not going to be added to Elm. @Martin_Larsson the “boilerplate” you’re talking about gives you precise control over the way routing works in your application (nested routes if you need them, etc.). I often find more smart solutions to be too limited (EmberJS router was a real pain to work with for me).