Live data from Hacker News

Ask HN: Is Erlang an albatross to Elixir adoption?

news.ycombinator.com

11–20 of 109 posts

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#11
This is why I've always just settled for the 'root' language and try to stay away from derivatives even if those offer a lot of goodies the 'root' does not offer. So no Typescript, Clojure or Elixir for me. I also think that the main attraction of an eco system is how long term stable it is and usually the second layer is less long term stable than the foundation.

And usually such a 'derivative' language only serves to fragment the eco system (community, contributions) of the 'root', not to enhance it.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#12
FWIW, I've been using Elixir in production since 2016 and haven't found I've needed to learn any erlang. For context, we use Elixir for our backend and serve around ~100/rps over websockets. We've integrated Elixir into Stripe, Segment, Google, and Xero and haven't found we've needed Erlang libraries for any of those integrations or any of the other parts of our code base.

> Elixir when they invariably stumble across the things in erlang — libraries and the like. I'd hoped I could avoid it myself, but it's too interdependent.

This hasn't been true in my experience. I'd be curious to hear which Erlang libraries the OP has been using.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#13
Yes, it absolutely is. The few times I did work with Elixir I came across a few instances where I had to use libraries that had not been ported over to Elixir yet so I had to deal with Erlang. It wasn't fun.

That being said, I think it's only one of the issues affecting Elixir adoption. Elixir, while undoubtedly a great language, is not very easy to use. The docs have a huge focus on the language and its syntax, but don't really hold the hand of developers of imperative languages who want to understand the paradigm of functional programming.

It took me an obscenely long amount of time for me to understand how a GenServer works, and how the entrypoints for an application work. This is a big pain point with learning Elixir and every time I come back to it I have to do this big mental overhead that IMO just isn't productive.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#14

This is why I've always just settled for the 'root' language and try to stay away from derivatives even if those offer a lot of goodies the 'root' does not offer. So no Typescript, Clojure or Elixir for me. I also think that the main attraction of an eco system is how long term stable it is and usually the second layer is less long term stable than the foundation. And usually such a 'derivative' language only serves…

One of those is not like the other. JavaScript and TypeScript are almost interoperable. You don't have to relearn the semantics of the language to use a JavaScript library in TypeScript. It's is an extremely light superset compared to Clojure, Scala, Elixir, Kotlin, etc.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#15
post #14

This is why I've always just settled for the 'root' language and try to stay away from derivatives even if those offer a lot of goodies the 'root' does not offer. So no Typescript, Clojure or Elixir for me. I also think that the main attraction of an eco system is how long term stable it is and usually the second layer is less long term stable than the foundation. And usually such a 'derivative' language only serves…

One of those is not like the other. JavaScript and TypeScript are almost interoperable. You don't have to relearn the semantics of the language to use a JavaScript library in TypeScript. It's is an extremely light superset compared to Clojure, Scala, Elixir, Kotlin, etc.

Typescript requires an intermediate step though.

We had the Typescript vs JS debate when starting out with pianojacq.com and I was pretty strongly committed to doing it in plain JS and not to have any tooling dependencies or build step. Which I think is the one thing that makes JS at least moderately interesting: that it is a language that in theory does not require any tooling beyond the browser. Of course, the day Typescript is supported natively by the browsers that argument will die. But for now that does not seem to be the case.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#16

> What about people who've tried elixir and moved on? I've tried it three times and it offered me nothing Erlang didn't. Erlang, on the other hand, offers me much that Elixir does not. In truth, I've never met anyone who likes Elixir except people who were already Ruby programmers. What's particularly weird is your attempt to dig at the Erlang docs. They're extracted the exact same way the Elixir ones are; it's just…

Elixir was a gateway to Erlang for me. I hadn't heard of Erlang before I started writing in Elixir, but all the discussion of why Elixir was so great revolved around Erlang and the BEAM. This lead me to Joe's distributed systems thesis and really changed how I approach writing code.

The syntax takes a bit of getting used to, but I generally prefer the language. I haven't found anything that's a nice to work with for web app development in Erlang, though; I do think the tooling around Phoenix is nicely polished.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#17
post #13

Yes, it absolutely is. The few times I did work with Elixir I came across a few instances where I had to use libraries that had not been ported over to Elixir yet so I had to deal with Erlang. It wasn't fun. That being said, I think it's only one of the issues affecting Elixir adoption. Elixir, while undoubtedly a great language, is not very easy to use. The docs have a huge focus on the language and its syntax, but…

> I had to use libraries that had not been ported over to Elixir yet so I had to deal with Erlang

Why do these libraries need to be ported to Elixir at all?

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#18

It's the same way that the Java/JVM prevents Clojure being picked up more. To figure out Clojure's errors you need to be familiar with Java/JVM (most of time). Elm is a great example of a language that doesn't suffer from being written in Haskell, you basically completely unaware of it and not required to dip your toes into Haskell's ecosystem.

In my experience (7+ years of using Clojure) this is caused by the misunderstanding of what Clojure actually is: it's a LISP designed for the JVM, you cannot escape the host and pretend it's not there. In return you get access to one of the biggest software ecosystems and pull any library from Maven Central etc.

Coming from Ruby/Go/JS to Clojure was definitely harder than I expected but rather than fighting "this stupid JVM" it made more sense to buy into the idea of how Clojure is built and used.

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#19

> What about people who've tried elixir and moved on? I've tried it three times and it offered me nothing Erlang didn't. Erlang, on the other hand, offers me much that Elixir does not. In truth, I've never met anyone who likes Elixir except people who were already Ruby programmers. What's particularly weird is your attempt to dig at the Erlang docs. They're extracted the exact same way the Elixir ones are; it's just…

Although I also have issue w/the Elixir docs, they tend to have more explanations in them than the Erlang ones. Marginally :) I am one who came not from Ruby, btw. My roots come from a variety of things including Smalltalk, C, C++, Perl (dare I admit), Java, Javascript and Python, among those most influential on my life (and in that order). I'm really happy w/Elixir, finally getting back to a better true object orien…

Reminds me of this blog post:

"The Most Object-Oriented Language" => https://blog.noredink.com/post/142689001488/the-most-object-...

Re: Ask HN: Is Erlang an albatross to Elixir adoption?

#20
This is just a result of your own context and background. If you were an Erlang developer then Elixir would come naturally. If you started to learn Python as an Erlang developer and had to understand its C implementation details (via SciPy etc, which operations are implemented in Python or natively) you would make this same post in reverse. But you're taking that for granted because you are already coming from that position.
Post reply on HN