Phoenix 1.3.0 Released
I use Phoenix with all my newer projects. The performance is stellar. I single-handedly was able to create what many startups out there have built with 100s of thousands of engineers[1] in a short period of time. This may be possible with Rails too, but then, I found a lot of things are much more convenient to get done in Phoenix than in Rails - For example, Contexts (nested models), Routes, etc.<p>When I started with Phoenix I was anxious that the experience was going to be just like when I first tried out Play&#x2F;Scala, but no. To my surprise, my experience was fantastic. Truly, this framework allows you to focus on your business problems rather than fighting with configurations&#x2F;conventions.<p>One of the best decisions the team has made is introducing the concept of contexts from DDD[2]. Initially, I was pretty confused, but now, I simply cannot imagine myself going back once that I&#x27;ve understood it. It&#x27;s basically breaking down your business into smaller tiny modules, like I&#x27;ve done in [1]. The other thing I love about Phoenix is the concept of umbrella applications. I&#x27;m not sure if Rails has an equivalent, but I think this alone is worth exploring Phoenix for.<p>I don&#x27;t even have micro-services in my architecture yet, but because of these patterns, I&#x27;ll be able to break out and scale my application if I require to, in the future.<p>Phoenix has proven to me that it can not only scale performance-wise, but also architecture-wise. Last time I tried developing [1], it was in PHP and I had to hire 5 devs to get it done..6 months later and we still weren&#x27;t done. However, in just a matter of weeks, I was able to finish a complete working prototype of this mammoth application, with UI and frontend. As for my production setup, I use Docker + AppEngine (using a custom VM) and it has served me really well. The performance is top notch and everything works so flawless.<p>As for the language itself, I really love Elixir. I simply cannot imagine going back. It really forces you to think differently about your code. Last time I tried to learn a functional language, it was Scala - also a beautiful language on top of the JVM. But, the problem is, it&#x27;s so academic in the sense that even a good book on scala had 400+ pages. Some of them had 700+ pages. But Elixir isn&#x27;t like that, you can pick up the language in a matter of weeks (YMMV, it took me 2) AND build a project in no time.<p>For Elixir, if you&#x27;re coming from a Ruby background, you&#x27;ll be able to pick it up fairly easy. However, you will find it challenging when you hit a situation where you would have used a traditional for loop, but in Elixir, you would be forced to re-architect your code. And that&#x27;s a good thing.<p>[1] <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14785209" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14785209</a><p>[2] <a href="https:&#x2F;&#x2F;martinfowler.com&#x2F;bliki&#x2F;BoundedContext.html" rel="nofollow">https:&#x2F;&#x2F;martinfowler.com&#x2F;bliki&#x2F;BoundedContext.html</a>