5 ms·
I've always heard a lot of good things about elixir - I feel like if it was statically typed, the landscape for network oriented programming langauges would be
by preommr 3y ago
I've always heard a lot of good things about elixir - I feel like if it was statically typed, the landscape for network oriented programming langauges would be a lot different. And with how popular microservices have become, how big and complex a lot of cloud architecture has become, that could've been a big difference.
To some extent golang fills that void because of net, it's application in projects liks k8s, and it's concurrency dx through goroutines. But it's also had problems that I don't want to dive into here that I think make it more divisive than would be expected.
- cpursley 3y agoAnd that's my point, a lot of these things like microservices, "severless" and k8s are just poor and overly complex imitations of OTP. Many of these problems have already been solved by this humble stack which has been around since the 1980s. - https://medium.com/coryodaniel/from-erverless-to-elixir-48752db4d7bc https://medium.com/coryodaniel/from-erverless-to-elixir-4875... - https://elixirforum.com/uploads/default/original/2X/f/fdd70a4b0535040bca8d0a3310ec5c4a03647dce.jpeg https://elixirforum.com/uploads/default/original/2X/f/fdd70a...
- arccy 3y agoand yet we barely see any production software from elixir
- cpursley 3y agoThis is absolutely not true and you know it. Perhaps you’ve heard of Discord, Pinterest, WhatsApp, Spotify, Moz, PepsiCo? I’m sure I’m missing a whole bunch of names as I’m in the bootstrapped world where you’re seeing a lot of Elixir (especially now that LiveView is stable).
- lakomen 3y agoThose are all not using Elixir? Maybe for some obscure cronjob Tell me, why would you pick something that needs 8 servers to do the job Go or Rust could do with only 1?
- cpursley 3y agoFor one, Phoenix is a great web framework (especially with LiveView) and Ecto data layer. Show me any tooling in Rust or Go that is as productive for full stack.
- mplewis 3y agoI’m sure Phoenix is great, but in real-world experience, my former startup tried to use it, found the ecosystem and tooling extremely lacking, encountered severe problems with the learning curve, and pivoted to Rails.
- AlchemistCamp 3y agoStrange. I've dropped into several different startups and gotten people up to speed in days if they were experienced devs. One case was more painful, but much of that was due to engineering being outsourced to a team of contractors and management being from a non-tech industry. Usually the hardest thing for devs I've seen learning Elixir is just getting used to immutability. What were the severe problems with the learning curve your former startup encountered?
- withinboredom 3y ago> Show me any tooling in Rust or Go that is as productive for full stac Allow me to introduce you to this language called PHP.
- moooo99 3y agoWell PHP is certainly neither of those languages
- KingOfCoders 3y agoThe most productive web framework is https://laravel.com/ https://laravel.com/ (or Django or Rails) because it brings most of the things you need to write in other frameworks by yourself. Too many reject it, because, PHP!
- KingOfCoders 3y agoSpotify backends are written in Elixir? Link? Would love to read about that.
- cpursley 3y agohttps://prograils.com/elixir-phoenix-liveview-spotify https://prograils.com/elixir-phoenix-liveview-spotify
- deleted 3y ago[deleted]
- KingOfCoders 3y ago"Spotify backends are written in Elixir?" From the article: Spotify is using Elixir for an internal ad debugging portal. So no. Spotify backends are not written in Elixir but: "The listener-facing backend services are done with Java."
- cmckn 3y agoMy impression has always been that they’re a Java house: https://mvnrepository.com/artifact/com.spotify https://mvnrepository.com/artifact/com.spotify But of course most large orgs have a little bit of everything.
- adamors 3y agoThe ecosystem around Elixir/Erlang is just not comparable to what Python/Ruby/Go/Java/.NET/Node even PHP have. Elixir is promoted by enthusiasts a lot but once you start writing a project in it, you’ll realize after a couple of months you are writing a lot of things yourself, popular tools don’t have bindigs, lot of libraries that do exist are abandoned etc. I worked on a Phoenix project that had a Graphql API, we couldn’t integrate it with Apollo Graphql because the Elixir library didn’t support some features, had them in the backlog for years. The company had 20+ other services in different languages, none had this issue.
- cardanome 3y agoThere is a delightful new language if you are really insistent on having static typing while using the Erlang runtime: https://gleam.run/ https://gleam.run/ Though I am not buying the idea that lack of static typing would hinder adoption as many of the most popular backed languages are traditionally dynamic with gradual typing only becoming popular in recent years.
- KingOfCoders 3y agoI've worked in companies that used Java and companies that used Elixir. No (noticable) difference in availability, performance, bug count or business success (perhaps the Java ones were more successful). We need to drop this fight around tools. Discussions are fine, but "My tool is better than your tool" doesn't get us anywhere (not saying you're doing this). In general there is not a lot of innovation (in the mainstream), the only recent thing that comes to mind is Rusts borrow checker.
- preommr 3y agoIs it though? It's been painful to see how much Java has squandered it's potential. Putting aside something like OTP, just the concurrency in Java has been confusing - project loom has been on the horizon for a long time, and it makes it difficult to invest in something reactive like Reactor/Webflux. Or, having quickly reviewed elixir, since it uses the actor model, something like Akka - which words don't even describe how much of a dumpster fire that whole thing became (which I feel like I dodged a bullet because my old boss was super gung-ho about how Akka was the next big thing a few years ago). And if we're talking about things on a platform level, then... spring is not it. Others have mentioned K8s, what takes a simple yaml config there takes like huge guides, a wing and a prayer on Baeldung articles, and a soul crushing soup of XML for config (yea I know Spring supports other formats, but it's roots are in XML and old guards just copy that stuff over). It doesn't seem like Erlang/Elixir community have these problems. Idk if it's because I am not invested in it so the grass looks greener on the other side, but it really does seem like they've got a productive and focused solution.
- KingOfCoders 3y agoYou might be right, I don't know. I got off the Java train some years ago, sadly by moving to Scala (what a mistake!) - so I have no clue about the things you are talking about. As the companies I worked for were making hundreds of millions of yearly revenue and lots of profit based on Java, not sure they needed that. I only have some experience with Scala/Akka. Not sure if Akka was bad or it's the actor model, I found it hard to debug and understand code written by others. I'm now 50+ and I use Go. It's so simple it even works for old people.