Live data from Hacker News

10 years-ish of Elixir

dashbit.co

121–127 of 127 posts

Re: 10 years-ish of Elixir

#121

Meanwhile te company I work for is moving away from it. We cannot find enough people with enough knowledge to be already productive in it. Not many want to learn it because it is considered pretty niche, and the ones willing to learn will need many months or years to be productive and build with some level of quality, and once they learn they move away to bigger companies which pay more. We end up paying to people to…

What are you paying your engineers?

Re: 10 years-ish of Elixir

#122
I've been loving Elixir for the past 2 years now (off-and-on). I try to build most of my personal projects in it (as I'm still trying to get better at it) My latest project is a Discord bot library written in Elixir, seemed like a good fit as the Discord backend is written in Elixir as well

My only complaint is IDE support, though VS Code works well enough for me (and for HTML I use Webstorm, as I find the Jetbrains Elixir plugin is a little better for EEx)

Re: 10 years-ish of Elixir

#123

Author here! The article was published earlier this week and I have a quick addendum: regarding Erlang/Elixir, my goal has always been to bring new developers to the platform. After all, Erlang developers already have the most important part of Elixir, which is the Erlang runtime! There are also key people in both communities working hard to make sure the tooling is consistent across all languages. A lot of this effo…

How has the book sales been doing?

Re: 10 years-ish of Elixir

#124
post #82
post #63

Earlier quoted context omitted.

I don't say this to dismiss your experience, but just to share a counterexample: I found Elixir extremely easy to learn (despite having no Ruby experience, nor any significant experience in any functional languages). I went through the (excellent) official tutorial in a couple days, skimmed parts of Saša Juric's book, and felt reasonably confident diving in to actually writing code. Within a couple weeks I felt like…

I have found Elixir as a whole to be amazing, but the debugging process to be painful. Maybe its because I'm used to using Chrome's developer tools (since I mostly debug JavaScript), but I really wish that debugging on Elixir could be simpler. Using printf's is just too painful and feels backwards.

I would recommend you learn the dbg module that comes with Erlang. Its a great tracing debugger able to trace existing code in runtime without having to modify the source. There are also several wrappers on top of the Erlang tracing tools, like Recon for example.

Re: 10 years-ish of Elixir

#125
post #82

Earlier quoted context omitted.

I have found Elixir as a whole to be amazing, but the debugging process to be painful. Maybe its because I'm used to using Chrome's developer tools (since I mostly debug JavaScript), but I really wish that debugging on Elixir could be simpler. Using printf's is just too painful and feels backwards.

I would recommend you learn the dbg module that comes with Erlang. Its a great tracing debugger able to trace existing code in runtime without having to modify the source. There are also several wrappers on top of the Erlang tracing tools, like Recon for example.

I'll need to do more research and maybe see if there are videos online showing how other developers debug in Elixir with those libraries.

Re: 10 years-ish of Elixir

#126

Meanwhile te company I work for is moving away from it. We cannot find enough people with enough knowledge to be already productive in it. Not many want to learn it because it is considered pretty niche, and the ones willing to learn will need many months or years to be productive and build with some level of quality, and once they learn they move away to bigger companies which pay more. We end up paying to people to…

Probably true for you and your team. Definitely not true if you fully grok all the advantages of the BEAM. Elixir is much faster to prototype modern web apps than alternatives and then also naturally seques into scaling if the need happens to arise.

Re: 10 years-ish of Elixir

#127

Meanwhile te company I work for is moving away from it. We cannot find enough people with enough knowledge to be already productive in it. Not many want to learn it because it is considered pretty niche, and the ones willing to learn will need many months or years to be productive and build with some level of quality, and once they learn they move away to bigger companies which pay more. We end up paying to people to…

It sounds like you're recruiting from a pool of junior developers and convincing them to use Elixir instead of attracting folks who are already interested in the language. Not only is that community sizable, but it's experienced- surveys of attendees at my conference ( https://empex.co ) consistently show that 50% have >5 years and 30% have >10 years in the industry. Elixirists really are senior developers and Elixir…

> As for libraries, I challenge anyone to name an unmet dependency in Elixir that is 1) trivial to implement and 2) not for some niche application.

For quite some time the ex_aws[0] package was no longer maintained because the only person who maintained it stopped using AWS. There were many months in between before a new maintainer was found. Unlike Python, Ruby, PHP, Node, Go, etc. there's no official AWS SDK for Elixir.

The ecto pagination[1] package has a "low maintenance" warning, basically the author is no longer maintaining it except for fixing issues even though there's a number of interesting features that could be added that other web frameworks have available.

The arc file upload[2] package was no longer maintained or touched for a really long time until someone took it over but now that new package is also racking up open issues and looks like it kind of stagnated in development. This isn't based on looking at last commit times too. I mean there's issues open to address important topics that haven't gotten reviewed for a long time.

There's also no official Stripe SDK for Elixir and all of the community created ones feel kind of abandoned or no where near feature parity with Python, Ruby, Node, PHP, Golang or any of the other official packages offered by Stripe. This is the last thing I want to have to implement myself since it's so critically important. The same can be said for PayPal and Braintree integration. There's official SDKs for Python, Node, etc. but not Elixir. I've asked Stripe a couple of times about an Elixir client and they all say the demand is not near enough to consider creating one officially.

These are only a few examples of tools I've found in questionable state when working with Elixir compared to Python and Ruby. All of which are very important in a ton of applications.

Then there's also less generic but still really useful things like notification abstractions to send emails, texts or broadcast notifications to connected clients. Rails, Laravel and Django all have excellent solutions to this where you can get up and running in no time but with Phoenix you'll have to write all of this on your own. It's a huge undertaking.

Long story short, I started with Phoenix and Elixir almost 2 years ago and today 2 years later I feel like if you plan to write any type of business'y app with Phoenix you're going to have to end up writing a ton of libraries yourself instead of focusing on your business problem. That might not be a problem if you have a huge team and your business idea is already proven and 5+ years old but for anyone who wants to build something and see if it works, it's hard to say you'll be able to build something faster than Rails, Laravel, Django or Flask if you already know one of those frameworks.

Now you might say some of those packages are trivial to write but they're really not. That seems to be a common pattern I've seen with the Elixir community where someone will say just do it yourself because it's easy and then you're left hanging. Sure maybe it's easy if you're Jose or someone with 5+ years of prior Elixir experience and have written 100k+ lines of Elixir code but a regular developer who just wants to build web apps (not libraries) is going run into tons of roadblocks. I know I did.

[0]: https://github.com/ex-aws/ex_aws

[1]: https://github.com/drewolson/scrivener_ecto

[2]: https://github.com/stavro/arc

Post reply on HN