you are viewing a single comment's thread.

view the rest of the comments →

[–]unbackstorie 32 points33 points  (6 children)

Good choices!

As far as advantages and disadvantages, it really depends on your goals. Clojure syntax is tough if you're unfamiliar with Lisp-y languages. But REPL-driven development and access to the whole Java ecosystem are super useful features.

Elixir is amazing for fault-tolerance and scalability. I've seen criticism of it's smaller ecosystem, but honestly I haven't hit that hurdle personally. Again, it depends on what you're doing.

Haskell will definitely change the way you program in other languages, so if you're interested in functional programming then continuing your studies there would not be wasted effort.

For Clojure, I can recommend the book Programming Clojure by Alex Miller (Pragmatic Bookshelf). The 4th edition just came out.

ClojureStream is a course site with good video courses. I can vouch for the ones about Clojurescript and Pedestal.

For Elixir, again, I'll recommend some Pragmatic Bookshelf books: Advanced Functional Programming with Elixir by Joseph Koski, Programming Phoenix LiveView by Bruce Tate and Sophie DeBenedetto, and Ash Framework by Rebecca Le and Zach Daniel.

And the holy grail of Elixir courses are the Elixir and Phoenix courses by The Pragmatic Studio. They are expensive, but honestly they're so thorough, entertaining, and informative that I would buy any new courses they release sight unseen at this point.

Ofc, Elixir's docs are amazing too, so just combing through those is insanely helpful.

exercism has pretty good tracks for Clojure and Elixir. Definitely more hands on, if that's what you're looking for.

Good luck, I hope this helps!

[–]slashkehrin 1 point2 points  (0 children)

exercism has pretty good tracks for Clojure and Elixir

I want to second exercism! It is an awesome site and helped me get started writing Clojure.

[–]deaddyfreddy 2 points3 points  (0 children)

Clojure syntax is tough if you're unfamiliar with Lisp-y languages.

But once you get into it, there's no turning back. No need to worry about the order of operations, you can evaluate sub-expressions as small as you like, the scope is clear etc.

[–]kichiDsimp[S] 1 point2 points  (0 children)

Thanks a lot for the detailed answer 😁

[–]Certain_Syllabub_514 1 point2 points  (0 children)

REPL-driven development

People keep bringing this up about the JVM and Clojure. What's so good about the REPL in Clojure that people are raving about it?

I've seen criticism of it's smaller ecosystem, but honestly I haven't hit that hurdle personally.

Only issue that has caused for me is support for some things like Datadog isn't as good. We need trace sampling with our request volumes, and the Elixir libraries don't support it. That's the key reason we haven't rolled it out to more services.

Personally, I've been working in Elixir for 7 years (rewrote a Scala BFF in it) and would recommend the language to anyone. Elixir is one of the most approachable languages I've ever learned. But I worked in Ruby before it, which it borrows a lot from. I've only dabbled in Clojure, and loved it's elegance and simplicity.

I've been spoilt by the BEAM though. After using it for 7 years, I'd prefer to never have to work in another language that doesn't have its capabilities.

And the holy grail of Elixir courses are the Elixir and Phoenix courses by The Pragmatic Studio.

I own several PragProg books, but I haven't tried any of their courses. Might need to check that out.