I've been writing elixir for years (i think since 0.14?) and have been writing liveview for years. I'm all in on elixir in general, but I'm not sure I'd use liveview for another big project. Maybe it's just rose colored glasses because the TS/React world certainly has its own issues, but I think TS/react and regular old phoenix is a sweet spot. The composability of live view components still has a number of footguns (duplicate IDs, etc) and I think it has higher coupling than a nicely structured react app. You also have to treat liveviews and components fairly differently. All these design choices are for good reason, but it ends up being annoying in a large app. Also in deeply nested trees with lots of component reuse, static typing from TS really helps with refactors. As the projects grew to be large, I think I'm more productive with phoenix/TS than I am with phoenix/liveview.
I think there's a certain class of small to medium sized application (I'm building several) where liveview can be a good fit, but after writing it professionally and in hobby projects for several years, I'm less convinced that it's a great solution everywhere.
For a real time application, there is no better option than elixir and phoenix if you actually want to get something working and shipped. Things that you will need to do which would be wildly complex in other stacks are so simple in erlang and elixir. I highly recommend taking the time to learn it - and it's a fairly simple language so that process should go pretty quickly. The debate about Liveview vs React+Phoenix channels is an exercise left up to the reader.
I'm coming from the opposite. Years of Phoenix/TS and finally got tired of writing boilerplate code serializing and deserializing data just to make UIs work. I now find myself focusing 95% of my effort on adding business value rather than dealing with back-end/front-end stuff. Reminds me of the old JSP/ASP days when everything was sever-side.
I hear you on the typing part, but Elixir is taking a step in that direction with 1.8 and I only expect that to get better. I'm going to the Elixir Conf in Poland in May and hoping to learn more on what's next. So excited.
I think Elixir/Phoenix has to be the best stack currently for building applications with real-time features and that's all thanks to BEAM. Perhaps Go is another decent alternative but I definitely prefer BEAM's concurrency model.
Exactly! I was halfway through the article and thought how LiveView is basically equivalent of the "push ops" pattern described but beautifully abstracted away and comes for free, while you (mostly) write dynamic HTML markup. Magic!