5 ms·
Because of the Java ecosystem, in Clojure you are in much more advantageous position than with Elixir.
by Scarbutt 4y ago
Because of the Java ecosystem, in Clojure you are in much more advantageous position than with Elixir.
- kitotik 4y agoElixir also opens you up to the entire erlang and Beam ecosystems. Not as common as Java, I know, but still decades of knowledge and tooling around it cutting across many industries.
- ElemenoPicuares 4y agoSeems like Beam is a more specialized tool than JVM but if you need that sort of functionality it's phenomenal. With things like built-in performant persistent key value stores and cluster management I'm kind of surprised more people haven't pushed through the "this is useful but lacks broad adoption" barrier.
- kamma4434 4y agoWell… yes and no. A lot of things built in are pretty spartan and not always appropriate (Mnesia …cough…). This said it’s the only environment I’m aware of that is built around the idea of cluster, not just a local process that may do some rpc to other processes. You can find libraries for many things but they are not the same quality and breadth as the big Java ones.
- jononomo 4y agoI've heard this, but honestly to me it just seems "specialized for writing and running reliable software".
- ElemenoPicuares 4y agoSeemingly reliable for a specific type of problem, though. Most reliable software doesn't require a distributed network to be reliable, and I don't think binary execution on BEAM is any more inherently reliable than the JVM, right?
- jononomo 4y agoThe BEAM is designed for a software architecture approach called OTP in the Erlang community -- it is designed around trees of process supervision. So there is an entire robust framework for reliability really built in as a primary concern for the BEAM. https://www.erlang.org/doc/design_principles/des_princ.html https://www.erlang.org/doc/design_principles/des_princ.html
- josefrichter 4y agoIf you need high concurrency, heavy traffic, real-time system with high resilience, there’s probably nothing out there that comes even close to BEAM. It is definitely possible to write such a system in Java or Rust, but most likely at huge cost for something that you can get out of the box elsewhere. BEAM has narrower scope, but in that scope it’s probably far ahead of anything else.
- truncate 4y agoExcept using Java ecosystem as-is would not be idiomatic in Clojure, which means you need an ecosystem of wrapper libraries. I recall someone making similar argument on some other post, on how it adds more space for bugs, performance issues, and still making it hard to work with. The context was in comparison to Kotlin, where using Java ecosystem is much nicer experience.
- transfire 4y agoI tend think the opposite. Developing for Android I found the Java build process and maintaining a solid development environment a headache. If that follows on to Clojure I can see why it wouldn’t be as popular even if the language itself is overall better.
- xcambar 4y agoMy experience would make me agree with you. Developer experience around tooling in Clojure makes a lot of assumption around prior knowledge of Java ecosystem. Elixir, on the other hand, welcomes the newcomer better.
- jononomo 4y agoI see it the other way around -- because of the BEAM ecosystem and programming model you are in a much more advantageous position than with Clojure.