Some off the cuff thoughts about Elixir, Phoenix vs. PHP and Laravel

So a little background. I’m responsible for maintaining a number of legacy systems written in old languages (Dibol, Visual Foxpro) so I have very little experience with the web or functional programming. My company is upgrading to PHP and Laravel and I’ve been using some of the community resources to learn these technologies. Let me say that Laravel is a great framework and the community is unbelievably vibrant and productive. However, working my way through the tutorials for Laravel I would often hit a dead-end where some mistyped line would cause an error. And the errors in Laravel and PHP are daunting for a beginner. Programming in PHP, Laravel and Eloquent is a complex endeavour as dealing with the object hierarchy has caused me a lot of pain.
My experience with Elixir, Phoenix and Ecto using the Phoenix in Action book has been a breeze in contrast. Things are simple straight forward and they work! I am a very average programmer, but so far, I love the Elixir experience. I will have to go back into the Laravel world eventually but this is fun!


Pleased to hear you are enjoying Elixir and Phoenix - welcome to the community :+1:


I’ve used PHP on some smaller projects for years before switching to Elixir/Phoenix recently. I never wanna go back :smiley:


During Laravel 4.x and early 5.x times, it was my goto tech stack. taught me everything and I still think it’s the most awesome learning platform one could find.

However, I dislike the creator of Laravel and his practices. I am happy that I have found Elixir and Phoenix so I don’t ever have to get back to Laravel.


Laravel was pretty good, but in my opinion it moves in a wrong direction for some time now. Framework reached stable state some time ago (around 5.1 or something) but it still gets weekly updates each with some changes and new features that honestly barely usable and look like marketing trick to maintain hype, here are few later ones:


Compare it to phoenix, relatively “new” framework that is only updated when updates are needed or ecto that explicitly reached stable state Ecto 3.0 is out and stable API

I just feel at ease with such “pragmatic” approach to changes, so if we ignore language and paradigm holy wars that would be a major plus for Elixir ecosystem.


Ooo wow, I relate to your pain. ^.^;

If you’re using a recent version of PHP, PHP now supports strong typing, I highly highly recommend using the strong typing capabilities, it will catch a lot of errors at load time instead of sometime later. :slight_smile:

Even if laraval isn’t using strong typing yet, it will still help on your side, though not as much, but definitely still worth it.



Rasmus Lerdorf really didn’t envision PHP the way it evolved.

Rasmus Lerdorf: PHP in 2018 – phpCE 2018

So PHP evolved the way it did because of community pressure.

From PHP Frameworks Day 2013 - Rasmus Lerdorf:


Holy cow, I haven’t hear about smarty since forever. That’s around 2008 or something.

Yeah PHP evolved because of pressure and people hacking at it. IIRC he created to build a web counter. Also the name of :: is super funny and interesting (PAAMAYIM NEKUDOTAYIM).

I think it have come along way, adding classes, namespace, etc… It supposedly faster now too with JIT.

I personally believe it’ll be here forever because of facebook, wordpress, wikipedia, etc… there is so many existing tools and momentum that making stuff fast and easy. Many people just want to make stuff not wrestle with the tools.