Veteran Laravel developer looking to expand my skillset

I’m a long-time Laravel developer (since 2012) and find its developer experience really amazing. Coupled with newer tools like Inertia.js (which is backend-agnostic) I’m able to build quite quickly.

However, I’m beginning to feel too comfortable with it to the point I’m too lazy/scared to try something new. I’ve lurked in Elixir + Phoenix communities for a while and love what I hear.

As many of us know, the best way to learn something is to just go for it and start building. Are there any other devs who have come from similar PHP/Laravel backgrounds that have made the switch that have advice? Any caveats/pain points?

A couple features that make Laravel very ergonomic and I’m not sure if Phoenix has equivalent features:

I’m sure I’m missing other things… Thanks!

G’day :smiley:

For background jobs there is the postgres backed Oban library, which is rather popular. There are others too.

Mailer is now included with the Phoenix generators. See phx.gen.notifier.

1 Like

That’s so awesome to hear about your great experience with Laravel. I’m not familiar with it at all outside of liking several companies that (I think) use it since they work with PHP.

I was going to say what @cmo mentioned in regards to your first note:

Oban is amazing for this, and you could very easily build a simpler version in Elixir (super fast depending on your requirements), but I use Oban for Metamorphic and I think you’ll be super pleased with it as well.

I’m not sure you’ll find as comprehensive an all-in-one-system or “one-stop-shop” (at least, not yet — there are definitely best practices and recommended approaches :blush:). But, for broadcasting, you’ve got an incredible experience on your hands with Phoenix PubSub and LiveView (now 0.17+).

I’d say it’d be pretty easy to build out notifications in your application in LiveView with PubSub and have a super slick “real-time” distributed experience.

I’d recommend watching both Jose Valim’s Elixir 1.13 Elixir Conference video and Chris McCord’s The Future of Full-stack. That will give you a good idea of what people are currently excited about and how ridiculously powerful, and easy-to-use, the Elixir/Phoenix stack is.

For my case, I came to Elixir with very little programming experience, but a vision I believed in, and in no time at all I’ve been able to make my vision a reality. And I found Elixir/Phoenix because I realized that what I wanted to do was way too difficult (if not impossible) for me to achieve with my resources and time in other languages.

Continuing in this vein, for me, the orientation from object-oriented programming to functional programming was the steepest learning curve. But after taking ~17 minutes to follow along with Chris McCord’s demo vlog, I realized that I had found the language and stack that would be my best shot at realizing my dream (even if I didn’t understand any of it).

As a veteran in Laravel/PHP, you will probably find the switch much easier than I did, perhaps immutability/pattern-matching will be odd at first, and I think you’ll quickly grow to love Elixir/Phoenix (even if you still love and decide to keep working with Laravel/PHP).

My experience with Elixir vs other languages (albeit limited) has been this:

Other languages
if you’re doing everything that has been pre-laid out for you, it’s a pretty nice experience. When you start to venture into custom territory it gets less and less pleasant the further along you go.

Elixir/Phoenix
If you’re doing everything that has been pre-laid out for you, it’s a great experience. When you start to venture into custom territory, it gets better and better as you discover how empowered you’ve become.

2 Likes

Thanks so much for these details. I will take a look at those resources.

I also agree that the OO → functional change is so massive. I was thinking about framework features and had completely forgotten about that shift… It’s quite the change.

1 Like

I’d be interested to know how the part of your journey that relates to the framework concepts goes or is going. The reason I ask is that I have somehow managed to stay framework-free in PHP for 25 years. So I’m a little curious if your Laravel mindset is a boon or a hinderance to getting used to Phoenix.

I’m not looking for a one-to-one on features, but there are features in Laravel that make some tasks that are common in almost any project incredibly trivial. I don’t have a “Laravel mindset” so much as a deep affection for the tooling it provides me. I am simply looking for similar tooling in Phoenix.