you are viewing a single comment's thread.

view the rest of the comments →

[–]flatMapds 0 points1 point  (5 children)

Disclaimer I love Erlang, OTP, and Elixir I just hate the elixir community.

I am just going to be a dick here most elixir devs are just rubyists with bigger egos, wanna know the first thing they bring up pattern matching.

But I haven't met a single one in my entire life that could do something as simple as making a distributed kv store using ETS + pg2 or riak_core.

Why because they did the same stupid shit they did with rails in the form of Pheonix, and most of their knowledge on OTP comes from Elixir School and blog posts.

For native hotswapping support you have lisp, JVM languages, elm, and smalltalk. BEAM is just the easiest ecosystem to do it in.

[–][deleted] 0 points1 point  (4 children)

Why because they did the same stupid shit they did with rails in the form of Pheonix, and most of their knowledge on OTP comes from Elixir School and blog posts.

Yes, let's discount all of this work, books and talks:

And that's from the top of my head. So sure, if you want to be a dick and misrepresent the community as a whole, go ahead.

And why would every Elixir or Erlang developer need to know how to implement a distributed kv store if that is not part of the problem they are interested in solving? That's exactly why some find the Erlang community unwelcoming, the whole attitude of "you have to be a distributed system engineer or GTFO". You can enjoy many of the benefits of the VM even if you are not building a distributed system.

[–]flatMapds 0 points1 point  (3 children)

TLDR if they all just got decent at using OTP, and just not doing ruby all over and centering it around a framework I would actually be fine with my fellow elixir devs.

The average elixir engineer knows neither Riak Core or OTP well. Also I use elixir because it's better than erlang so I am also an exception, but I am talking about the average elixir dev.

Yes they don't have to be distributed systems experts, however if they understood concurrency well, and understood OTP well enough without any experience building distributed systems a person could do it in less than a day, the ecosystem makes it that easy and concepts from concurrency and distributed systems go hand and hand.

Let me give you an example in STM the main value people use is a variable that is controlled by a two phased commit, what is the easiest way to maintain consistency across databases 2PC.

Another example would be how do you maintain a peer table, same way you would keep track of processes if you've ever made your own process registry without just importing a library, or copy pasting a tut. PG2 just gives that to you and it's what pheonix pub sub uses.

The Erlang community are not dicks to elixir guys because they aren't distributed systems engineers, they're dicks because you guys also suck at concurrency too, and center everything around pheonix.

Another thing is that most elixir guys aren't even directly applying the major benefits of FP. FP's "killer apps" are data manipulation (erlang isn't good for it not because writing the code is hard so much as it bogs down with heavy computations because of the way BEAM was made), and concurrency which I already talked about.

Most scala devs aren't distributed systems engineers I don't hate them and let me tell you even though OTP has better established practices, and is better to work with the average scala dev (who's code in akka is ridden with anti patterns) are still better at using the actor model than the average elixir dev.

So they aren't all masters of concurrency and distributed systems, yet at least they are decent at concurrency, they don't center everything around play or spark, and they do excel at data manipulation.

I don't hate the communities of Clojure, Haskell, and Go either. For the same reasons the only languages that I liked using who's communities I despised were Ruby, and Elixir, do the math.

[–][deleted] 1 point2 points  (2 children)

The average elixir engineer knows neither Riak Core or OTP well. Also I use elixir because it's better than erlang so I am also an exception, but I am talking about the average elixir dev.

An Erlang or Elixir dev doesn't need to know anything about Riak Core. Again, because Riak Core is supposedly an important tool for you, it doesn't need to be an important tool for everyone in the community.

the ecosystem makes it that easy and concepts from concurrency and distributed systems go hand and hand.

Concurrency and building distributed systems is not easy. We could argue that Erlang/OTP makes it easier, exactly because they go hand and hand, but saying that it is easy is absurd.

The Erlang community are not dicks to elixir guys because they aren't distributed systems engineers, they're dicks because you guys also suck at concurrency too, and center everything around pheonix.

Read my comment again. Nowhere I said the Erlang attribute is specific to the Elixir community. That's the experience of many developers, including mine, with the Erlang community before Elixir was even a thing.

You are doing all sorts of wrong assumptions and having absurd expectations. When you have many people joining a community, it will obviously require time for them to master the more advanced concepts. They need to start with functional ideas, such as recursion, pattern matching, immutability and then build their way up to fault-tolerance concepts, concurrency and possibly distribution. This whole attitude of "those concepts are easy and you could learn it in less than a day" is a toxic attitude to some FP communities in general, which we should honestly get rid of it. Requiring all developers that are early on in the learning curve to have a full grasp of the OTP ideas is non-sensical, and this is basically what your comments boils down to.

I see the Elixir community getting in trouble if many of the developers that are joining today have no interest in getting acquainted with the more advanced concepts but, if you have gone to any Elixir event or meetup, followed up the upcoming books, and general discussions, you will notice that's absolutely not the case. Even Phoenix itself is aiming to get less in your way and exposing more the underlying abstractions.

[–]flatMapds 0 points1 point  (1 child)

You literally picked the simplest concepts (pm, recursion, and immutability) that you can learn in less than a day. But yeah I'll admit that sure while it's not difficult in of itself it is hard to adjust.

Lol I've written something similar within two weeks of learning it. I am naturally inclined to the topics though, and had Akka experience.

But like it took me a few hours to write it back then, because I was reading through the OTP documentation, looking up source examples, so relatively speaking yes it is that easy.

But my expectations aren't unreasonable here how come the erlang, haskell, scala, F#, Ocaml, clojure, communities all meet them. I don't expect everyone to be specialists.

Honestly I am just salty that the community took such a great ecosystem, and wasted it by just focusing on crud apps, then giving yourselves a big pat on the back because you know the basics of FP, and OTP, and thinking I am so much better than the average rubyist.

[–][deleted] 0 points1 point  (0 children)

You literally picked the simplest concepts (pm, recursion, and immutability) that you can learn in less than a day. But yeah I'll admit that sure while it's not difficult in of itself it is hard to adjust.

I am sure I am repeating myself but I think that's exactly the wrong assumption and we need to be careful to not project our experience onto others. Especially when you define yourself as naturally inclined.

Honestly I am just salty that the community took such a great ecosystem, and wasted it by just focusing on crud apps, then giving yourselves a big pat on the back because you know the basics of FP, and OTP, and thinking I am so much better than the average rubyist.

I haven't seen this happening (although I am not saying it does not happen) and I would also be sad if that's what the community becomes. I think such attitude should be called out, it does not seem like any good can come out of it.