Following @joshd’s thread, I wonder if we can put together some sort of welcoming and informative thread for those thinking about coming over to Elixir
Maybe include what you like, what you think they might like, which books/resources/threads/sites you have found helpful, your recommendations on getting started and any other info you think might be helpful
Who knows, perhaps José and the team might want to use snippets from this thread on a welcome post or page on the official site…
I’d say I posted something on the forum and within a few hours was on a call with someone for Toronto who spent an hour with me just giving advice / feedback. Not related to the language but… that’s community!
I have learned such a huge amount since I started learning Elixir. Many times in other languages I’ve pondered that burning question that ‘surely there’s a better way’ and so many times that has been answered in Elixir - because Elixir not only makes modern best practices possible, but unbelievably easy. Here are a few of my faves:
- The Single Responsibility Principle
- The Replaceable Component Architecture
- Being able to use Phoenix in multiple layers of your app
- And more
That’s not even covering the benefits of the language itself:
- Fault tolerant
- Massively scalable
- Great community
- Great package manager - HEX
- Great packages
- And much much more…
If (like I was) you’ve been using a language, which, despite having a lot of love for it, you feel somewhere deep in your heart (or at the back of your mind) that just isn’t able to handle the kind of apps and to the scale you want, then look no further.
Elixir is as ambitious and capable as you are
…but don’t take my word for it, join the forum and take a look around yourself. Look at our #learning-resources:books and other #learning-resources, the discussions and friendly community building threads; you should hopefully see that you’re in good hands and great company
Things I like about Elixir…
This forum - Your first, and most cases, last stop for helpful tips, troubleshooting, chats, etc. This is somewhat unique in that it’s language wide. For example, AFAIK there isn’t a scalaforum.com with the same vibe.
Elixir is batteries included - What I mean is that while it’s a language, it also ships with a great tool-chain and support for a great web development stack.
BEAM is amazing - I’d actually say that with Elixir you come for the BEAM and you stay for the language. A lot of what Elixir is able to accomplish is due to the amazing VM it runs on. For those without true preemptive multitasking, lightweight processes and per-process garbage collection, I think you’ll like the BEAM.
Functional programming isn’t that bad, honest - If you’re on Java 8 or 9, or Python or whatever, you’re already familiar with Lambdas. In Java you probably just use them to process collections, that’s good. Now pretend you’re programming Java, but you only work with data, static methods, and threads. Threads are easy to create and use and you have as many as you want. EJBs are essentially part of the language (OTP). That’s Elixir in a nutshell. Not so bad.
But what about the library support? - Nope, you don’t usually see Elixir in the client SDK list of most projects. That said, there is a rich library ecosystem. When in doubt, ask in this forum for guidance. You’ll likely get an abundance of guidance.
I’ll stop there. For a great start on additional reading material, hit up this forum thread: When learning, what order of books did you start with?
Go for it…!!
I am a new developer and have found a easy to use programming language supported by a robust 20+ year platform (OTP) with lots of libraries and a community that is always willing to help.
So best of all:
- Robust platform designed to tackle todays applications challenges
- Easy to use programming language with tons of functions that will make your life easier
- Phoenix Framework for Web Applications
- Concurrency out of the box
Just give it a try.
I’d ask them to bring their excitement but please don’t write blog posts extolling the same four or five virtues of BEAM as every other “OMG Elixir!” article—we have quite enough of those. Instead if they feel the need to write, maybe they could try writing an article about something they had to figure out how to do.
I would also tell them to be prepared to feel a little out of their depth at first—that’s ok and most of us went through that. While there’s better ways to do most things in Elixir, its ok to do things mostly as they would in Rails or any of its imitators while they’ve got the training wheels on. But while they’re doing that, try not to assume that Rails got it right and why aren’t we doing X that way?—given a bit more experience, they’ll be able to answer that question for themselves.
All of the other answers are good too!
I’ld say: be welcome and prepare to take off, the train you are in is getting out of rails (pun-intented) because this secret Elixir gave it wings!
Something about nature.
I think that a programmer must be like a small bee jumping on flowers, trying to find the sweetest one.
Elixir is one of that flowers,
jump on it,
stay or fly,
But on your head there will always remain some precious pollen that you can spread around you.