5 ms·
Elixir is like an abstraction on top of Erlang and its runtime(otp). It heavily depends on the data structures of Erlang and its very difficult to extend it bey
by spapas82 6y ago
Elixir is like an abstraction on top of Erlang and its runtime(otp). It heavily depends on the data structures of Erlang and its very difficult to extend it beyond Erlang's limitations / capabilities. When you take macros out of the way, Elixir programs can be translated line by line to Erlang. That OTP dependancy is considered the great strength of Elixir by many but it also has disadvantages.
The thing with Erlang is that it ain't a general purpose programming language like Java or Python but a niche telecom software language. Erlang is marketised like that and from what I've heard it's really great at that (telecom software). But nobody proposes to write f.e a game or a Gui app in Erlang.
Elixir on the other hand is marketised as a general purpose programming language. People that start a journey of learning Elixir must be very careful and understand that there are a lot of applications that Elixir can't be used for because of Erlang's limitations.
Also, when you start using it you'll see that common applications outside of the Erlang telecom niche, like the polular phoenix web framework and its ecto orm like library make very heavy use of macros and message passing abstractions that seem strange in a lot of situations. Of course all will fall in place after you understand the Erlang dependecy.
- mvellandi 6y agoWhile the original use case for Erlang was for telecom, it's more accurate to say it's for building networked applications that can be designed for fault-tolerance.
- dnautics 6y agoI can assure you erlang is not a 'niche telecom language's, as I have used it, in prod, in so many ways that have nothing to do with telecoms. One mini-project I'm planning on working on for fun is to use it for HDL simulations, because its message passing concurrency is a nice way of cleanly dealing with eventing voltage edge transition logic. > But nobody proposes to write f.e a game or a Gui app in Erlang. Yet square enix uses elixir for game orchestration
- JohnHaugeland 6y ago> I can assure you erlang is not a 'niche telecom language's, as I have used it, in prod, in so many ways that have nothing to do with telecoms. You are completely incorrect. More than 95% of this language's use is by either Cisco or Ericsson, specifically for telecomms, the domain that the language was implemented for, and for which more than half of its standard library exists. That you used something once doesn't mean that you changed what it is for or who uses it in general. . > Yet square enix uses elixir for game orchestration I'm not sure why you italicized this. There is nothing called "game orchestration," and whenever you rephrase this with actual technical sounding terms, it's going to not sound impressive at all. What did you try to say here? Does Square Enix use RabbitMQ or something? You know that queues are a dime a dozen, and that Kafka, from a whole different programming language, is a common and acceptable drop in replacement, right? Nobody writes games or GUI apps in Erlang, and even if you can pull a random individual instance out of your ass, you haven't proven anything. Civilization 4 uses Lua for scripting. So what? Lua is in no sense a game programming language. Karel uses COBOL to teach robotics control. COBOL is not a robotics control language. There's a jackass out there who used the CSS3 forced checkbox toggle to implement Conway's Life, to make the biggest pain in the ass proof I've ever seen that CSS is technically turing complete. That doesn't make CSS a simulation language. Learn, please, that when you try to dust off single examples like they carry weight, you just make yourself look like a narrow, no context asshole.
- non-entity 6y agoI have a few projects closely related to telecom stuff and I thought it may be fun to use Erlang or Elixir, however I keep hearing people advise against using Erlang, except in the specific niche of distributed applications, so idk anymore. I will say there are some features in these languages that I have yet to see in any other languages, general purpose or domain specific, that I love.
- pjmlp 6y agoErlang also has web frameworks and ORM like libraries. Long term Elixir will suffer all the issues that guest languages always end up, by not being designed 1:1 alongside the platform features.
- josefrichter 6y ago"Niche telecom software language" is a brutal misunderstanding of Erlang strengths. But a common one, which Elixir is actually trying to rectify - turns out BEAM is maybe the best thing out there for web apps.
- dnautics 6y agosaying erlang is a telecom software language is like saying that computers are textile design engines.
- josefrichter 6y ago> Elixir on the other hand is marketised as a general purpose programming language. Where is it marketed that way? > It heavily depends on the data structures of Erlang and its very difficult to extend it beyond Erlang's limitations / capabilities. It doesn't "heavily depend" on it and nobody is really trying to "extend it beyond Erlang's limitations". It's the exact opposite - it's trying to make use of all the Erlang & BEAM attributes (and trade-offs!) that make it especially adept for a given problem sets. The Elixir website literally says this, and it's exactly what it is, nothing less, nothing more: Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development, embedded software, data ingestion, and multimedia processing domains.
- deleted 6y ago[deleted]