Thanks for this great writeup! It really helps to read about other's experiences in an authentic and non-promotional way like this when making stack decision.
On Monday, September 19, 2016 at 9:08:43 AM UTC-4, Peter Damoc wrote: > > I keep postponing this for a few weeks but today my partner decided to > stop the collaboration and I'll take advantage of this moment to write this > post mortem. > > *Context* > > I was approached by a friend few months ago about a B2B project that was > supposed to help small businesses issue beautiful invoices. It was suppose > to be a free product that would synergize with some other products that his > business was already delivering. I was supposed to implement it and he > would do all the marketing and promotion. > > Having total freedom, I decided to use Elm to implement the platform in > cooperation with another part-time programmer that would do a JSON backend > in PHP. > > The product required that the interface would be modern, responsive, > dynamic and look great. > > *Beginning Phase* > > The first phase of the development was dominated by personal attempts at > reimplementing reactive design elements such as drawers that show on big > screens and hide on small devices. After a few buggy attempts I ended up > trowing everything away and switching to elm-mdl. > > A considerable amount of time was also invested at this point to set up > some kind of automatic build environment. I ended up with a solution based > on gulp. > > *Middle Phase * > > Once the build environment was set up, things started to move a little > faster. I then ended up needing CSS and after playing a little bit with > elm-css and hitting several missing properties I decided to implement my > own library, taking inspiration from all 3 libraries that were dealing with > style (rtfeldman/elm-css, elm-style and massung/elm-css). In hindsight this > might have been a rather bad idea for productivity reasons but I have > learned a lot. > > *Ending Phase * > > After I passed the 5000 LOC mark, things really started to crumble around > me. My mind could no longer deal with the complexity I have created. > Most of the brain cyles in this phase have been wasted trying to use the > little JS I know to try and somehow add to my Elm UI some widgets that I > needed. I have failed. > > I have spent an inordinate amount of time trying to add some Dropdowns to > some forms I had, ending up reimplementing part of them in Elm and using > some CSS form the Semantic UI project. > > Another large amount of time was spent trying to integrate a carousel. I > ended up reimplementing a bare bone version in pure Elm. > > By the end, the code grew to about 8000 LOC of Elm. > > *Conclusions * > > - *Elm is an amazing language.* I've had countless moments of sheer > pleasure programing in Elm for this app. > - *Elm lacks the full story. *My main hope was that I could implement the > app even if I had very little CSS or JS knowledge. I could not do this. Elm > does not have yet something that would allow someone to stop touching CSS. > -* I would not recommend webdev beginners to take the approach I took.* > It is better for now to stay the tried and proven path and just use Elm to > implement smaller components in another web framework. > - *The tooling around producing a deliverable elm webapp are simply not > ready yet.* > > > Thank you for taking the time to read this. > If any of you has curiosities around this experience, feel free to ask me > anything. :) > > > > > > -- > There is NO FATE, we are the creators. > blog: http://damoc.ro/ > -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
