23 ms·
> Find me something like Erlang/Elixir with the speed of Rust and I won't learn another programming language ever again. You're describing haskell again. You
by wyager 4y ago
> Find me something like Erlang/Elixir with the speed of Rust and I won't learn another programming language ever again.
You're describing haskell again.
You haven't articulated why you have disliked haskell in the past.
- pdimitar 4y agoMostly the seemingly big initial learning curve; you have to get extensively onboarded in "the Haskell way" (monads are not hard to get but the community is hell-bent on avoiding wording that makes it easier to grok; why?). That could be okay for many but as I get older, I tend to take people/organizations that require big upfront investment less seriously. Example: one of the things Elixir has won me over with were its bite-sized introductions and practices. You can be a 3/10 Elixir dev and you can be a 8/10 one, and that's mostly depending on how many of the official tutorials you've covered. The road is mostly a straight line to an acceptable level of proficiency at the end of which you can start choosing to specialize. Rust, OCaml, Haskell -- they all failed that test for me. I picked Rust mostly because of the no-GC situation and because of `cargo`. Many older programmers handwave away the importance of good tooling and this is where they lose a lot of potential mind share that can rejuvenate their languages / ecosystems. Example on this: OCaml's tooling. A lot of people in this ecosystem always degrade the importance of a good task runner + builder + project manager. I spent half a weekend learning `esy` once and mostly tamed it by making it imitate mix/cargo but it wasn't trivial. The end result is a build script that does 80% of what mix/cargo do. The exercise made me scratch my head wondering why what I did back then isn't upstreamed and made official and why is everyone happy to pretend that building an OCaml project is a solved problem when it (very!) clearly isn't. Haskell's cabal didn't fare better last I tried it -- admittedly that was more than a year ago. If Haskell has good bite-sized lessons that lead to an actual real job productivity (less academic exercises, please!) then I'd be happy to give it a fair try and maybe make it a part of my toolbox.
- belmont_sup 4y agoYou've done your fair share of trying! Your assessment reflects mine entirely. Elixir has that charm in that it leads you to productivity quickly, just as Go does. Someone could argue that's only because of much larger pool of users that's paved the path before. Picking up Haskell again for fun, and the Effective Haskell book has been a fun learning experience. Not too beginner-ish, and doesn't take too much time to explain concepts. I'll have to try esy and dune again sometime when OCaml 5's stable. Their commands are just different enough from go/cargo/npm to be annoying.
- rsrsrs86 4y agoI use Elixir at my company and Ive gone thru three phases: 1.: love it for the polished ecosystem and functional programming, get frustrated because even though it is functional it is not at all like writing ML-style code and not having types, and now I am starting to grok BEAM and OTP. Specifically, I realized how many problems we solved using OTP that would be much more challenging to get right otherwise. We can use processes to get transactional behavior, spawn workers very simply. We use event sourcing. Our state snapshots are just a process that receives events. It was easy to evict snapshots by killing processes idle for too long. Beautiful!
- pdimitar 4y agoYep, all true, I love it myself. But nowadays it gets harder for me to love it due to the lack of strong static typing. :( Test coverage becomes mostly wishful thinking. And it's extremely easy to do non-exhaustive pattern-matching which is something that just kills me. It's absolutely true that Elixir is mega-productive though. And for a ton of projects out there it's good enough and more.
- atc 4y ago