3 ms·
One counter point to elixir is that there's a significant learning wall to onboard new developers, more so than simpler a language like Go or Python.
by flaque 6y ago
One counter point to elixir is that there's a significant learning wall to onboard new developers, more so than simpler a language like Go or Python.
- brenden2 6y agoI'm not a genius, but I found the opposite to be true. Go and Python seem non-intuitive to me, whereas Elixir felt natural and easy to grok.
- michaelcampbell 6y agoI feel there are dimensions to "ease" and Go and Elixir went different directions on them. Go is very "simple" in that you can look at it and generally easily understand what it's doing. Elixir and its ilk tends to make it easy to do what you want to do. In Go you have to re-write things over and over because the abstractions are low, but they're easy to do. In Elixir you can use the built in libs/abstractions, but you have have no idea how they work. This is a gross simplification of both sides of course, but I often see Go-people arguing a different point than their counterpoint in <other language> is trying to make.
- brenden2 6y agoGo is a language that always felt painfully obtuse to me. It always seemed hard to do basic things. To be fair I've only used it begrudgingly and never on my own work. The only thing I ever enjoyed about Go was the fast compilation.
- michaelcampbell 6y agoI agree and dislike the language immensely. Some colleagues of mine like it for the runtime and compile time, which I guess is fine, but my beef with them is that they mistake motion for action. They consider themselves "productive" because in go "...the code just flies from my fingers...", when what they're doing is reimplementing the same things over and over because the language doesn't support it. HAVING to type a lot of stuff, even if it's easy to type, isn't productive. It's just a lot of typing.
- nojito 6y agoBecause of it's magic. Debugging it it a nightmare especially when you have to roll up your sleeves and go into Erlang.
- brenden2 6y agoMaybe, but that's hasn't been my experience. The Erlang monitoring/debugging tools that you get out of the box are pretty good.
- dnautics 6y agoThis is not my experience. Just yesterday I had to debug an error in staging that had cropped up because erlang had changed its public API for ssh_file in OTP/23. Despite being three private libraries down (and in an obscure option, and being not well documented) I had the bug identified in 30 minutes and the patch rolled out on all three library levels in another hour. The biggest help was IO.inspect, and then the next biggest was elixir_ls, which had used typespec analysis and highlighted the error for me in my ide.
- bostonvaulter2 6y agoAs one of the contributors to ElixirLS this makes me happy :)
- regulation_d 6y agoI rarely find that I have to "go into Erlang" but it is true that Erlang error messages can be a bit obtuse initially.
- dmlittle 6y agoAn extra point is that finding Elixir developers (or people who are willing to learn it) is also much harder.
- freedomben 6y agoI have heard this quite a bit, and it very well may be true, but it has not been my experience. I worked in a rails shop and there are tons of people that want to learn and work with elixir, but there are no jobs they can find. Likewise on Elixir forums and slack, there are lots of people looking for Elixir work, but not many people hiring for it.
- dmlittle 6y agoI think within the rails community there's enough people that want to give elixir and phoenix a try but if you're not using phoenix the application pool drastically shrinks.
- regulation_d 6y agoTo me learning Elixir felt like a two stage process: learning the language and learning the OTP. The language itself is pretty small and I felt like the first stage was pretty easy. Learning the OTP is a much bigger challenge. At the same time, I think you can gain a lot of the benefits of Elixir and the BEAM without needing to be an OTP expert, because frameworks like Phoenix leverage it for you. In my experience, things like pattern matching and immutable data really contribute to a more maintainable code base, whether you find you need the actor model or not.
- freedomben 6y agoVery much agree. With the exception of macros, part 1 learning the language was a joy. It was fairly easy and I loved it. Part 2 learning Phoenix and OTP has been a long, ongoing thing. If I did it full time it would be done, but doing it off and on part time it is a long slog.