The Elixir language blends the battle-tested power and stability of the Erlang virtual machine with an approachable and expressive syntax. Revised and updated for the Elixir 1.7, Elixir in Action, Second Edition teaches you how to apply Elixir to practical problems associated with scalability, fault tolerance, and high availability. Along the way, you'll develop an appreciation for, and considerable skill in, a functional and concurrent style of programming.
Software developer with many years of experience building server systems, as well as desktop applications, with a special focus on developing backend systems using Elixir and Erlang.
Programming Elixir: Functional > Concurrent > Pragmatic > Fun presented different valuable topics --it went more into macros nearing the end, which I appreciated--however, it didn't seem to build knowledge for the reader as well as Elixir in Action. Nearly a third of this book is devoted to managing and scaling an example application in Elixir/OTP. At certain points during Programming Elixir, I felt the need to skim and move forward quickly. This would've been impossible with Elixir in Action as it's a pretty dense read. Even if you are a software engineer with a bit of experience, it will take you a while to work your way through this one, but the time will be well spent.
As I paged through this book, I toured the C++ programs of past employers in my mind and thought to myself that I could've written most of them with less than half the code and effort in Erlang/OTP. The more I dig into different tech stacks, the more I realize picking the right stack for the job has a huge effect on the amount of effort that is involved in building systems.
Anyway, I recommend this book even if you know nothing about Erlang/OTP or Elixir, but just want to broaden your perspective on what different frameworks provide to you. In terms of implementing a fast, distributed system, I can't think of why you wouldn't start here!
Elixir (as a young tech) has a good start in terms of books - PragProg's "Programming Elixir" is decent & "Elixir in Action" is very nice as well (even if we had to wait a bit until it leaves MEAP stage).
Pros: 1.) VERY good introduction to the language & its syntax 2.) VERY good introduction to OTP & gen_server: imho better than the one in "PE" 3.) Great code examples -> readable, concise, but properly set in context of current topic
Cons: 1.) Very little about the practices around programming itself - except packaging, tracing & deployment (w/o hotswap!): pretty much nothing about testing (especially when you keep in mind how specific processes & message-driven communication is) 2.) Book formatting has its flaws -> code samples have 2 ways of formatting that are used interchangeably and pretty random -> in one of them font scales (on Kindle), in one doesn't and sometimes it's not readable enough (on both Kindle Fire HDX & Kindle Paperwhite)
If you're looking for the introductory book for Elixir AND OTP/gen_server, it's a book for you.
So i have read almost all published Erlang reosurces ,and, since i wanted to get a hold on Elixir i started with this one.
I found the first 25% of the book really clean cut , concise , sharp. Author does outstanding job presenting the language features , and goes deep enough to give you a bird's eye view of Elixir. He also does a really cool job , including elixir manual links for the programming features that deserve a deeper dive !! +10 for that man !
Now for a starter the next 25% of the book is also great , since he introduces the OTP mechanisms (genserver, supervisor, app) , explains them in a simple manner , yet again with another big plus - he includes images ! Those are so damn good for conceptualization.
I knew most.of that stuff so i got a little bored and i thurdged fast through the pages.
Next part he goes all.the way to build a HTTP distributed system which i sincerely applaud ! Seeing the system go from Erlang primitives to a full blown http app running over a cluster is a damn fine job !
However i already read something like this in Erlang in Action , so again i passed through a bit faster.
What i really really loved in this book was the final part ! The release part , the way you build, deploy, monitor and interact with a running erlang system. That part is golden and comes from a guy that spent days on forums, erlang man and slack channels trying to understand the black arts behind the release process...and this guy in 2 pages explains and provides simple scenarios on how to do exactly this 100 clearer than all materials i've read. Marvellous !
Great fine and polished book ! I recommend it wholeheartedly to anyone interested in the Erlang/Elixir !
This entire review has been hidden because of spoilers.
Amazing book, but I think is not the first book to get started with Elixir, you should have some experience with it (I already have it), but besides that, it's an amazing book it has changed the way that I see Elixir and showed me that I was so wrong about Elixir/Erlang. It explained so well the killer features of Elixir/Erlang. Now I'm an Elixir lover.
A very straightforward and gentle introduction to relatively complex ideas like OTP and distributed systems in Elixir. Highly recommended to anyone new to this topic.
A clear soup-to-nuts overview of Elixir that focuses primarily on the benefits and usage of OTP. Early chapters focus on the specifics of the language, including syntax and data types, which is clear but thankfully brief. The real value for me was the explanations of BEAM, processes, supervisors, and applications, which not only explained what they were in a glossary sort of way, but described how to use them, and even better, when not to. I like a book that illustrates tradeoffs using examples obviously gleaned from real world situations.
A little dated (e.g. Map usage), but the content here is great. I feel like this is a deeper dive than Programming Elixir but the latter is more up-to-date and more fun to read.
Elixir In action has a more practical take than Programming Elixir by Dave Thomas, as it focuses more on application of concepts instead of concepts in isolation. Notable elixir ecosystem topics to me included concurrency in BEAM, GenServer, Supervision trees and ETS tables. The examples were easy to follow but the author had a tendency to be loquacious with explaining, while the examples - though practical - weren't particularly interesting.
Overall, it's a good step 2 if you're new to elixir as a whole, the first being Dave Thomas's Programming Elixir. If you've had some experience already, it may be a good read as you approach thinking about your application in a production instance.
My bookmarks are on pages 4, 6, 12, 76, 94, 96, 100, 132, 168, 174, 176 & 247.
Very well organized and smooth read in the context of programming languages books. The book starts with the language basics and doesn't waste a lot of time going over these basics. We build a To-do list application from the first pages of the book, improving upon it throughout each section until we have a fully distributed To-do list web application that utilizes elixir features of scalability, fault tolerance, high availability, and distribution.
Pretty awesome book on Elixir...I already knew Erlang so it was easier to catch up...but still the books does a pretty good job on explaining things in an easy way...
My first book on Elixir and I'm glad I chose this one to start -:)
Lots of examples and good explanations...totally recommended...and as for Elixir as a language...very interesting and pretty well designed...
If you are like me, and don’t fancy too much about the awkward humours in the other starter book, you’ll probably find this book a better and more stoic alternative. My only complaint is that the second half on OTP and the supervision tree could be more detailed for beginners to fully appreciate the power of Elixir.
The first 5 chapters were boring for me and hard to get through, because I have already read the material in other books. But from that point on it was only getting more interesting with each chapter. Great explanation of concurrency patterns, usage of supervisors, different ways to register a process, distributed communication etc.
Good balance between range and depth of topics covered. I was hoping to learn more about the Ecto libraries than I did, but I misunderstood what would be covered in this volume. I still got a lot out of this book and will be able to put new design principles into practice to get the most out of the functional paradigm that Elixir employs.
Juric does an excellent job of structuring the material, starting with language basics and moving into gradually more complex content. His code examples are clear, concise, and easy to follow.
Elixir in Action is one of my favorite programming books. It is not hard to read like reference books usually are, but it is not superficial like introductory books.
It has been three years since I first read it and I still go back to it when I need help with OTP.
This book takes you from absolute elixir beginner to advanced. it handles all the important topics in elixir in a very interesting way. I loved the book and special thanks to the writeer
Marking as "read" I didn't really finish it but it's not as relevant to me now as it was when I was starting with Elixir back in 2019. This is a great book, and still a great reference.
An excellently written guide into a powerful world of distributed/fault-tolerant Erlang/Elixir systems. In addition to a plethora of useful coding ideas, Saša will reply with a comprehensive solution to one's issues on GitHub in a short amount of time. This all makes learning that much more effective. Thanks, Saša!
Definitively a must read if you want to learn Elixir and start to build OTP applications. The book is fun, and the examples are easy to understand. The application Saša uses as example is very simple, and it is developed though the most part of the book.
This book has some complex subjects and skip the very basics, so I don't think is for Elixir beginners. For those, I recommend Dave Thomas's Programming Elixir book.