5 ms·
So why would Clojure or Erlang or Elixir fail to satisfy the need for a functional language capable of taking advantage of the available cores?
by dimitar 4y ago
So why would Clojure or Erlang or Elixir fail to satisfy the need for a functional language capable of taking advantage of the available cores?
- davidw 4y agoSeems like he's talking about parallelism rather than concurrency? Erlang does the latter pretty well, but I'm not sure it's that great for "I have a lot of processing to do and I want the language to help parallelize it", especially since it's also not the fastest thing out there.
- weatherlight 4y agoHave you used Broadway, its pretty fast. I think people forget how expensive it is to serialize/deserialize data between machines/nodes.
- lolinder 4y agoI don't think he's arguing that the existing functional languages can't take advantage of all cores, it sounds like he believes that the existing functional languages cannot reach mainstream adoption because of fundamental flaws that he hopes to address: > My conclusion is that there are major, well-justified reasons for why people strongly dislike functional languages. The hypothesis I aim to test with a new programming language is: By making different tradeoffs, these issues can be mitigated and a more broadly-appealing functional language can be built. With such a language, I hope that the true promise of functional programming for parallel computing can be widely realized.
- bslatkin 4y agoExactly.
- redbar0n 4y ago> My conclusion is that there are major, well-justified reasons for why people strongly dislike functional languages. What are those reasons, in your view?
- darkmarmot 4y agoSo what advantages to comprehension or usability would you like to offer over Elixir? (as it doesn't really focus on type/category theory like most other FP languages)
- bslatkin 4y agoI'm not an Elixir expert at all, but one important feature I believe is missing: explicit returns.
- weatherlight 4y agoum, what? Pretty common in FP languages to have implicit returns. A function HAS to return something. Ideally, a function is just a mapping between one value and another value. Wouldn't make much sense to have explicit returns. For everything else there are guards, or just a simple if/else block. If everything is an expression (And if you are making an FP lang, almost everything should be.), the last expression will always be returned.