Live data from Hacker News

What I mean when I say that machine learning in Elixir is production-ready

cigrainger.com

21–30 of 108 posts

Re: What I mean when I say that machine learning in Elixir is production-ready

#21

I see so much breathless adoration for Erlang and Elixir, how come it hasn't taken over the world in all this time?

Same reason you don't see taken over the world. The demands of the world are different to the demand of small passionate communities.

The demands of modern web platforms actually run really close to BEAM's strengths. It's still an interesting question but "enthusiasts are naive and wrong" isn't the answer.

Re: What I mean when I say that machine learning in Elixir is production-ready

#22

I see so much breathless adoration for Erlang and Elixir, how come it hasn't taken over the world in all this time?

I think WhatsApp is still using Erlang and they are biggest messaging app in the world. Discord is using Elixir but it's more niche. I think if you look at use cases where they excel, you will find them there.

Re: What I mean when I say that machine learning in Elixir is production-ready

#23
post #7

Earlier quoted context omitted.

Inertia: curly braces rule the world. Imperative/OO programming are ubiquitous, FP not so much. Corporate sponsorship: even with curly braces and mutability, Go probably wouldn't have gained its mindshare without Google. Performance: It's getting much better, but the BEAM was never designed for maximum performance. People don't like slow platforms, despite the other advantages. Scale: much like one of the databases w…

> Performance: It's getting much better, but the BEAM was never designed for maximum performance. People don't like slow platforms, despite the other advantages. > Scale: much like one of the databases written in Erlang, Riak, you typically don't need a BEAM language until your solution is large enough that you've already written it in something else. These two seem to contradict one another. How can it not be fast b…

Latency vs throughput.

If you just want to do 1+1, 1 million times in a sequence, then erlang will likely be one of the last to complete the challenge.

If you want to do 1 million 1+1 in parallel, then erlang will get you there with minimal overhead, even if each number crunched will take longer then java, golang etc... the way it branches out is very efficient

Re: What I mean when I say that machine learning in Elixir is production-ready

#24
post #7

Earlier quoted context omitted.

Inertia: curly braces rule the world. Imperative/OO programming are ubiquitous, FP not so much. Corporate sponsorship: even with curly braces and mutability, Go probably wouldn't have gained its mindshare without Google. Performance: It's getting much better, but the BEAM was never designed for maximum performance. People don't like slow platforms, despite the other advantages. Scale: much like one of the databases w…

> Performance: It's getting much better, but the BEAM was never designed for maximum performance. People don't like slow platforms, despite the other advantages. > Scale: much like one of the databases written in Erlang, Riak, you typically don't need a BEAM language until your solution is large enough that you've already written it in something else. These two seem to contradict one another. How can it not be fast b…

> How can it not be fast but scale well

soft realtime: Erlang gets slower with load, but keeps responding

fault tolerance: it's very hard to bring an Erlang application to a grinding halt

distribution: it's stupid easy to distribute an Erlang application and scale it horizontally

Re: What I mean when I say that machine learning in Elixir is production-ready

#25

I see so much breathless adoration for Erlang and Elixir, how come it hasn't taken over the world in all this time?

I think we need to give it time. Python had a slow and steady growth from 1991 until today and it has eaten so much of the data analysis and ML world (backed by C++, C and more recently Rust).

But python doesn't vertically scale very well. A language like Elixir can grow to fit the size of the box it is on, making use of all the cores, and then without too much additional ceremony scale horizontally aswell with distributed elixir/erlang.

Elixir getting a good story around webdev (phoenix and liveview) and more recently the a good story around ML is going to increase it's adoption, but it's not going to happen overnight. But maybe tomorrows CTOs will take the leap.

Re: What I mean when I say that machine learning in Elixir is production-ready

#26
post #12

I see so much breathless adoration for Erlang and Elixir, how come it hasn't taken over the world in all this time?

FP, average performance, no static typing, finding people etc ... Personally I don't like FP.

Structs are arguably better then most type systems, but I don't use it either in my day job and have only used it for toy projects...

Re: What I mean when I say that machine learning in Elixir is production-ready

#27
post #9

I see so much breathless adoration for Erlang and Elixir, how come it hasn't taken over the world in all this time?

Because embarrassing little in coding is controlled by these imagineers. There’s no much real difference in programming languages anymore, honestly I’ve never met a good programmer that cared about these, it makes your code fringe and inportable.

Having a language that generates proper errors, does not try to hold your hand incorrectly and instead tells you you are wrong is always better.

Haskell is one of the best in the world in this. But it also happens to be incredibly complex and also weird in it's syntax, to the point it does make code fringe and unreadable.

There is a real difference here - a language that can help you fact check your logic and reason that you are accessing a potentially null value in this context can be better if it's drawbacks don't outweight it.

Elixir isn't static so it doesn't do this but it does blow up a lot compared to other dynamic languages. It's abstraction of proccesses and threads and what not, does actually make your code more portable and more modifyable. It offers a specific paradigm for programming that works great for multiple proccesses and the whole language is built around it. So if you are going to be using that paradigm anyway it would be a better choice.

It's also just pretty how it fits together.

Re: What I mean when I say that machine learning in Elixir is production-ready

#28
post #7

Earlier quoted context omitted.

Inertia: curly braces rule the world. Imperative/OO programming are ubiquitous, FP not so much. Corporate sponsorship: even with curly braces and mutability, Go probably wouldn't have gained its mindshare without Google. Performance: It's getting much better, but the BEAM was never designed for maximum performance. People don't like slow platforms, despite the other advantages. Scale: much like one of the databases w…

> Performance: It's getting much better, but the BEAM was never designed for maximum performance. People don't like slow platforms, despite the other advantages. > Scale: much like one of the databases written in Erlang, Riak, you typically don't need a BEAM language until your solution is large enough that you've already written it in something else. These two seem to contradict one another. How can it not be fast b…

You can do one thing fast, or many things slowly. For many common applications, doing many things slow is more important than off-the-starting-block performance

Re: What I mean when I say that machine learning in Elixir is production-ready

#29
post #7

Earlier quoted context omitted.

Inertia: curly braces rule the world. Imperative/OO programming are ubiquitous, FP not so much. Corporate sponsorship: even with curly braces and mutability, Go probably wouldn't have gained its mindshare without Google. Performance: It's getting much better, but the BEAM was never designed for maximum performance. People don't like slow platforms, despite the other advantages. Scale: much like one of the databases w…

> Performance: It's getting much better, but the BEAM was never designed for maximum performance. People don't like slow platforms, despite the other advantages. > Scale: much like one of the databases written in Erlang, Riak, you typically don't need a BEAM language until your solution is large enough that you've already written it in something else. These two seem to contradict one another. How can it not be fast b…

When people talk about scaling they usually mean horizontally (more computers) rather than vertically (a more powerful computer).

Scaling like this tends to involve your system actually performing worse because, among other things, it has to go across the network.

Re: What I mean when I say that machine learning in Elixir is production-ready

#30

I see so much breathless adoration for Erlang and Elixir, how come it hasn't taken over the world in all this time?

> how come it hasn’t taken over the world all this time?

I don’t know why it has not. However, it has such a strong set of advantages that people who know what it can do for them keep describing it as a “secret weapon”.

As others have mentioned, it will scale up on a single machine to make use of all the cores (unlike Nodejs, Python, or Ruby). It can already scale horizontally by clustering. Because of the way it is designed, I never have to define a Kubernetes liveliness probe for an Elixir app, whereas I have seen Dotnet and Nodejs apps freeze without crashing (cooperative async reactor can go into infinite loops; Nodejs is very bad about orphaning async execution, by design).

A lot of AI apps is going to involve connecting with unreliable third party services (for example, agents making calls to other api to get information or initiate actions), and may even be on hardware with unreliable network (IoT and edge) and this is where BEAM / OTP shines ahead of pretty much every other runtime and platform.

HN and elsewhere are riddled with Elixir developers extolling its competitive advantages for years … I have had very smart people argue to me why Typescript makes Nodejs so much better, but at this point, I have very little incentive to persuade them. Hence, “secret weapon”.

Post reply on HN