
ElixirConf
6 HN recommenders · recommended in 6 months, 2018–2019
57:50 · 32K views · Sep 8, 2018
Chris McCord's ElixirConf 2018 keynote introduces Phoenix LiveView, which renders HTML on the server and updates the page over websockets. It includes a demo showing that latency is not the bottleneck one might expect.
HN recommends it as the original LiveView announcement and demo, a compelling argument for server-side rendering as an alternative to JavaScript front ends.
8 comments from Hacker News
Phoenix.LiveView — you can't ignore it, the coolest thing happening right now about server-side rendering. Demo: this video Links: [LINK] [LINK] PS please stop calling it isomorphic — this is disgrace for the mathematics.
If you are feeling a bit adventurous and open-minded as you begin this venture, I would highly suggest looking into Elixir and Phoenix, especially since you are asking for "...best bang for the buck". In fact, the 1.8.0 release for Elixir was just announced earlier today here: [LINK] ( [LINK] ) What makes Phoenix great is that, not only is it blazing fast, but the framework serves as more of a web interface to your application as oppose to "taking over" your application, like with other major frameworks. Moreover, you get the full power of Erlang and OTP as well. I will have to say that some things are a little rough still, like deploying your application. This process is not as smooth as what you would experience with a Rails or Django app, but it will definitely get better over time. One of the features of Phoenix that is also really exciting is LiveView. If you have some time, definitely check out Chris McCord's 2018 keynote: this video There are a lot of great books and resources to explore. I listed a few below: [LINK] [LINK] [LINK] (just released) [LINK] [LINK] With regards to Python, I cannot give too much recommendation as I have experience in Ruby/Rails and Elixir/Phoenix primarily. However, if you really want to begin building, stick with Python, since you already have experience with that language, and look into a popular framework, like Django or Flask.
I can't give a deep comparison since I haven't done anything too deep with LiveView (yet!) but I would encourage you to watch the keynotes on LiveView[1][2] if you're really interested. I have spent the last few years working with React / Redux on a big SPA and I believe the entire thing could easily be supported by LiveView; we don't do anything fancy, its basically just a bunch of CRUD based pages. Another shallow comparison is that LiveView isn't meant to compete with modern progressive SPAs. While it can update the DOM with data from the server and is very good at doing that, it has limitations such as no offline support. Chris (the speaker in the videos) also notes that if your clients require very good latency or a very complex UI (think Google Sheets) then a JS framework will probably better suit your needs. However, if you're building out a majority of websites (CRUD type pages) that a lot of us web developers do, my personal opinion is that LiveView will be able to everything needed. [1] Announcing LiveView @ ElixirConf 2018 - this video [2] LiveView Update @ ElixirConf 2019 - [LINK]
Yes, that was my inspiration! Chris gave a great talk about it at ElixirConf is anyone is interested in watching: this video Some differences compared to LiveView: - Type-checking: there are extensive JSX typings ( [LINK] ) that ensure you're attaching event handlers with the correct signatures, specifying supported props, using valid HTML tags and attributes, etc. Static-typing guarantees are one of my big priorities. - I'm not sure if LiveView intends to support nested components like React does. Having the ability to split up complex pages into components that you can nest and reuse (with mostly one-way data flow) is a key part of maintainability. I wanted to maintain a very familiar React interface, so you can pick up Purview quickly if you're comfortable with React.
If you didn't provide constraints (node/react), I would use the following. Please note, this is highly opinionated, so nothing to get offended or upset about. I like to keep my stack simple: A. Simple static sites: - Jekyll B. Medium complexity, CRUD applications: - Phoenix/Elixir - Coffeescript Note: With the latest version of Phoenix, you absolutely don't any JS frontends at all. Watch they keynote presentation for the liveview demo: this video C. Complex Web applications: - Phoenix/Elixir - GraphQL/Absinthe - VueJs + Vuex + Coffeescript Developing with Phoenix/Elixir is so much better than any of the node frameworks in the ecosystem - this has consistently been my experience. So, give it a shot if you can.