5 comments

[ 71.3 ms ] story [ 720 ms ] thread
More concretely, Phoenix sets itself apart through its own features, Elixir's features, and an (as far as I've seen) unparalleled commitment to the community:

* PubSub, so if you're building a communication-based app your job is automatically easier.

* asynchronous jobs by default (it's a language feature), so if you need background processing your job is automatically easier.

* Rails-like database interactions. I don't know of any framework that makes dealing with the database as simple as Rails, and Phoenix (really Ecto, the ORM it uses) matches that simplicity. Models, validations, transactions, queries, migrations - it all feels very well thought-out. First-class support for PostgreSQL arrays and json(b) are nice-to-have, too.

* Fast templates. Template rendering is one of the biggest performance problems in Rails, and Phoenix solves it with some compile-time tricks.

* Built-in support for multiplexed real-time communication channels. If you need to push data to clients, your job just became easier (notice a trend?). It supports both WebSockets and long-polling so you don't have to make the hard choice about whether that new feature is worth the risk of losing users on outdated browsers.

* Asset building, another built-in goody that very few other frameworks have. The choice to use Brunch (rather than WebPack) is debatable, but I think that having a controversial build tool is 100x better than having no build tool.

* IRC support: If you ask a question, you will get a complete answer without anyone telling you to RTFM. This is both good and necessary because, although the official documentation is pretty good, Phoenix and its dependencies don't have the huge number of blogpost tutorials and StackOverflow answers that make Rails so easy to learn. I suspect this will change over time as the community grows.

* It keeps getting better. This is an outsider's perspective, but after lurking on #elixir-lang, Phoenix-Core, Phoenix-Talk, etc. it's obvious to me that Phoenix and Elixir are going to be better in 2017 than they are in 2016. Its core contributors are knowledgeable and dedicated, and many of them are being paid for their open-source work. That gives me confidence in the future.

I hope this not too off topic, but are there any stand out tutorials for learning Phoenix and/or Rails 5.0? I am pretty intrigued by both.

Does anyone know if there is any support for isomorphic Javascript on either platform? Or is that strictly a Node thing?

Edit: just remembered, how does Elixir stand up against JRuby running on the GraalVM? I remember reading about it here in the beginning of this year and was pretty excited to hear about some of the performance gains that the JRuby team was able to make. Here is a video the GraalVM team demonstrating the performance of their work:

https://youtube.com/watch?v=lYGfD2H99Ls

I would start with LearnElixir.tv (disclaimer: Daniel Berkompas works for Infinite Red, which i own). It's very good though!

> Does anyone know if there is any support for isomorphic Javascript on either platform? Or is that strictly a Node thing?

That's more of a Node thing, although React.js has very clever server-rendered JavaScript tooling that you can implement alongside your Phoenix apps.

This article spends about 11 paragraphs detailing Rails' past and present and not even a paragraph about the strengths of Elixir & Phoenix. It then implores me to subscribe to a newsletter from the author's employer.

There's just not that much substance to this link.