Learning Elixir lang - my first stepsFeb 4, 2016, 1:47:48 PM
I have heard of Elixir in late 2015. Strong Ruby developers just started to write something about it in their Twitter accounts - that it is a functional programming language and one can do a blazing fast realtime web apps with it.
Then I have watched this intro video, made a quick look on Phoenix framework, read really inspiring comparison "Phoenix is not Rails" and my inner Magpie Developer was alarming "looks so awesome, you must try it !". I couldn't stand :)
I have started from the very beginnig. A few pages of Elixir lang introductions. Then first "hello world" Phoenix application. And... ok, just try to breath deep and calm after
4 ms response time... it is just a dummy page with static HTML (but all routing and Plugs infrastructure involved). But it already makes an impression, as PHP shows the same speed only with empty
echo "hello world"; script :)
Phoenix web framewok app structure is pretty clear at the first look. And surprise - it uses Node.js/NPM + Brunch.io to manage and compile assets by default - good start, not inventing the wheel!
It introduces a lot of new concepts compared to RoR. Of course it has not clear yet WebSockets endpoints etc., but in general by mixing it with my knowledge of middleware (Plugs in terms of Phoenix) implementations in Ruby, Node.js and PHP - I see a way to go further.
Erlang and functional programming
But wait. Have I told you that Elixir is working on Erlang VM? That is well-known and rock-solid foundation. It has Ruby-inspired syntax, but not Object Oriented, it is Functional. And that is another reason to try it out - to make your coding paradigm wider. It really breaks all patterns of data flow in web app (that were made of concrete after years with PHP, JS and Ruby). I definitely love pattern matching concept, piplines and absence of "internal state". And these lightweight threads - I could not even dream about such things in PHP :)
Get deeper in Elixir lang docs, walk through Phoenix docs and writing some basic "blog app" to see Phoenix in real action.
And as usual some resources collection to get started and move further...
Learning via exercises
Play with exercise while having spare time
- Elixir School - lessons about the Elixir programming language, inspired by Twitter’s Scala School.
- Elixir Examples - a collection of small Elixir programming language examples.
- 30 Days of Elixir - a walk through the Elixir language, one exercise per day for 30 days.
- Exercism - the exercises are achievable mini-quests: small and well-defined, and with enough complexity to uncover bite-sized knowledge gaps.
- Learn Elixir in Y minutes - take a whirlwind tour of your next favorite language. Community-driven!
hex - a package manager for the Erlang ecosystem.
Also I have found nice web site with packages descriptions https://elixirnation.io/ + it has a lot of useful links to Elixir tools and resources.
It has already impressive list of books. And I am really interested in reading "Programming Elixir" by Dave Thomas (author of the famous Ruby "pickaxe" book).
Articles and posts
... that I have noted while learning and searching different materials (also it assumes basic complexity level of tutorials)
- Nitrous: Getting Started with Elixir - very basic tutorial about Elixir messages, loop and the fun of distributed messaging
- Brandon Richey: Writing a Blog Engine in Phoenix and Elixir (in 6 parts) - very extended tutorial, covers all aspects of modern blog