Apologies in advance for this novel. Looking for some deep nugget of insight I just haven’t found after being conflicted on this for too long, really hoping someone can help!
I’ve been scouring the internet in a situation I’m hoping someone else has been in. I’m a new dev ~2/3 years and started in php. I grew to dislike the usual things about it. My choices are to invest more time into a language I don’t like (would use Laravel) or change and take the obvious upfront production hit. But I’ll be committed to my startup for years, shouldn’t I choose something I actually like? (the common wisdom seems to be “do what’s productive right now”). Most of the ideas I have either involve communication, community, project management, or e-learning. This developaralysis articles sums up my situation nicely: http://www.brightball.com/articles/code-is-the-cure-for-developaralysis
I mean my dream is after a few months I become super confident writing elixir code, the community flourishes, my business takes off instantly and the perfect business partner falls from the skies and we make something people want in pure joy. (haha) In fact I think likely the exact opposite will happen (probability-wise). SO:
Do you all think Phoenix is there in terms of productivity/learning curve for a new dev to justify going with it?
Is there anyone that started their project with Phoenix and regretted it = slowed them down too much? The lack of stackoverflow questions / libraries does scare me because I don’t have enough experience to confidently roll my own and I think the time it takes to do that in the first place could just mean disaster.
As it stands, which framework would you suggest most over Phoenix (taking into account my desire not to use PHP, but the obvious trade-offs of spending time learning a language instead of focusing on the problem domain)
It looks like Elixir/phoenix interest actually went down instead of up in the last year? Whereas Laravel and Django are both increasing - can anyone explain this?
Phoenix over them all. As soon you learn it , you won’t look back. I regret to some extent the time I spent learning some CMS. Phoenix and Elixir are great. I see no limitations as to usability and features. Performance is great and writing code is way less verbose than Java or PHP.
Thanks @acrolink I started an elixir tutorial and like the synax. But doesn’t the lack of stackoverflow qa’s affect you? As I’m still heavily learning that’s one of the most effective ways I’ve found to pick things up = start coding and read qa’s when I get stuck.
Since I’m not a senior dev it means I don’t have solutions to some things a lot of people would take for granted. Compare that to rails with the same verbosity but MUCH more in terms of resources/community.
There is not so much qa on SO because of this forum
I also had about 2/3 years of experience when I switched from Rails. It did take me a little while to become productive with elixir and phoenix. But now, I think I’m way more productive in elixir than I ever was in ruby. For new projects I always prefer to use elixir when possible. I’m more productive in it and I enjoy it more. The one big knock against elixir and phoenix used to be the ecosystem, but I don’t think that’s much of an issue anymore. You can find a package for most things now.
As for the lack of stackoverflow answers I wouldn’t worry about that too much, I’ve found the elixir community on this forum, on slack and in IRC to be very helpful.
I also think learning elixir made be a better developer in general, because learning functional programming forced me to think about problems in a different way. Even now when I go back to Ruby I tend to write in a more functional style.
Finally as a startup if you do need to hire in the future it will probably be much easier to attract good elixir devs than good Ruby, Python or PHP devs. I know this is true in my area (Toronto), and I assume that its true in others as well.
Hey Praveen, thanks for the lengthy and thoughtful response. I’m actually in Toronto myself, would be great to chat!
hey! how do you deploy Phoenix apps in production?
I’m using Docker and Kubernetes (and Rancher)
There’s nothing more “cloud-native” than Elixir/Phoenix (except Erlang, of course). With the help of the awesome libraries like libcluster and swarm, you can make your applications scale like no other!
Currently my team is trying to migrate my Phoenix application to a Java stack (for some bureaucratic reason), and believe me it’s very hard to do it right because many times we have to turn to external tools like Redis to solve the problem of scalability, and the external tools themselves should have no chance of single point of failure. That’s a lot of work for the DevOp team.
I’m using Docker Swarm + GlusterFS on premises servers. I wonder how to persuade our clients to move to public clouds