Live data from Hacker News

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

cigrainger.com

51–60 of 108 posts

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

#51
post #32

Earlier quoted context omitted.

What typing does Python have available?

Enforcing use of mypy is good enough for all real world use cases https://mypy.readthedocs.io/en/stable/index.html

As far as the lack of US Elixir developers, there is truth in that. It isn't that there are not Elixir developers, but that everyone who wants to work on Elixir is already working on Elixir.

Years ago, I knew this engineering manager whose strategy for recruiting Erlang developers wasn't to look for Erlang developers. He found generalists and polygots who would do well in any language, and were willing to learn Erlang, and recruited them, and then taught them Erlang. These are the kind of people who can take advantage of what Erlang/OTP (and Elixir) offers. They can do well with or without typing.

As for defects, the key isn't necessarily what's happening within a module, but how the various GenServer interact with each other. Having low defects within module boundaries are table stakes when working with Elixir. So if you're only measuring defects within module boundaries, you might miss the systemic problems related to interacting GenServers.

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

#52
post #32

Earlier quoted context omitted.

What typing does Python have available?

Enforcing use of mypy is good enough for all real world use cases https://mypy.readthedocs.io/en/stable/index.html

How is this different to typespecs and Dialyzer?

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

#53
post #33
post #30

Earlier quoted context omitted.

> 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…

> it will scale up on a single machine to make use of all the cores (unlike Nodejs, Python, or Ruby) Python definitely does "use all cores" on a machine with the multiprocessing package, not sure what you mean?

It's self-evidently false because you depend on multiple processes

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

#54
post #33
post #30

Earlier quoted context omitted.

> 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…

> it will scale up on a single machine to make use of all the cores (unlike Nodejs, Python, or Ruby) Python definitely does "use all cores" on a machine with the multiprocessing package, not sure what you mean?

BEAM has a preemptive scheduler and being able to use all available core is a part of the standard runtime and language primitives, and does not require a separate library. The standard library, OTP, builds on top of those language primitives. The whole language and runtime is designed from its foundations to work with massive concurrency.

This is one of the things I think why Elixir isn't as popular: people think that Nodejs or Python can do with Elixir or Erlang do, but they don't.

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

#55
post #43
post #33

Earlier quoted context omitted.

> it will scale up on a single machine to make use of all the cores (unlike Nodejs, Python, or Ruby) Python definitely does "use all cores" on a machine with the multiprocessing package, not sure what you mean?

I assume they mean Python doesn't do so by default (nor in a lightweight fashion). You can certainly use all cores with any programming runtime if you just run multiple OS processes. Indeed, that's how you implement multi-core on Ruby and Node as well. Although even then, the cores themselves aren't necessarily being fully utilized, even if you're ostensibly using all cores.

Because it is not by default, you don't really use all the cores by default either.

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

#56

Earlier quoted context omitted.

Enforcing use of mypy is good enough for all real world use cases https://mypy.readthedocs.io/en/stable/index.html

How is this different to typespecs and Dialyzer?

See the first reply to the question linked below. I have nothing more to add.

https://elixirforum.com/t/how-to-make-dialyzer-more-strict/1...

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

#57
Wanted to add to the usual "why is BEAM not more popular" conversation that there is also Gleam [1], which is an up and coming typed language on top of BEAM. It has the more common C-like syntax and a growing ecosystem of libraries, for example Lustre [2]. Unlike Elixir it has a much tighter syntax without all the macro magic. It also does not wrap around Erlang processes and you have to use those directly. To myself I see it as more of a Go for BEAM, although I am sure people would criticize me for making such generalization.

It sucks that syntax matters but it kind of does. I, for one, am somewhat put off by meta-programming and flexibility of Elixir. The idea of having to learn a syntax per-library I struggle to see the benefits of. I have never programmed Ruby or Lisp so perhaps I have not experienced the joy of what Elixir has to offer...

[1] https://gleam.run/

[2] https://github.com/lustre-labs/lustre

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

#58

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

Elixir is a combinatorics mess (circa 2020: two different string types, three different types of exception, return AND throw versions for almost every func, slow compiler without much in the way of compile-time checking, constant breakages over trivial renamings "just because", having to burrow into erlang errs half the time since many elixir funcs are just wrappers). Half the libraries we used were abandoned. I take…

How are there three different types of exception?

As for "two string types" maybe I'm not working on hard enough problems, but in ~4 years of Elixir I've never once needed to use a charlist. My understanding is that it's a backwards-compatibility thing from Erlang and I'm not even sure when I'd ever need to use it over a string.

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

#59
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…

If curly braces rule the world explain Python? Some pretty well known apps are powered by Django. Doing AI/ML without Python is doable but not quite as mainstream.

Sure, there are exceptions to every rule. Python is close enough to pseudocode that beginners can get familiar with the basic syntax easily.

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

#60
Quite frankly, I see a lot of text in this post and no numbers.

For something to be production-ready I'd expect you to at least cover major things like "latency to serve x in Elixir instead of lang y is k% better" or "EMFU we got when training x in Elixir was comparable to lang y".

These are two random metrics that are of course biased to my experience but the article just feels empty without numbers.

Post reply on HN