Youll learn to write simple Elixir programs. Youll understand why Elixir makes it easier to build resilient programs that can scale up and down with ease. Youll be able to read other Elixir resources that assume a fair amount of experience and make sense of them.
In more theoretical terms, youll get to know functional programming. Youll learn how to design programs around message passing and recursion, creating process-oriented programs focused more on data flow.
Most importantly, the gates to concurrent application development will be open. Though this introduction only gets you started using the incredible powers of OTP, that foundation can take you amazing places. Once youve mastered the syntax and learned about Elixirs expectations for structuring programs, your next steps should be creating reliable and scalable applications - with much less effort than you would have needed in other approaches!
How This Book Works
This book tries to tell a story with Elixir. Youll probably get the most out of it if you read it in order at least the first time, though youre always welcome to come back to find whatever bits and pieces you need.
Youll start by getting Elixir installed and running, and looking around its shell, IEx. Youll spend a lot of time in that shell, so get cozy. Next, youll start loading code into the shell to make it easier to write programs, and youll learn how to call that code and mix it up.
Youll take a close look at numbers because theyre an easy place to get familiar with Elixirs basic structures. Then youll learn about atoms, pattern matching, and guardsthe likely foundations of your program structure. After that youll learn about strings, lists, and the recursion at the heart of much Elixir processing. Once youve gone a few thousand recursions down and back, itll be time to look at processes, a key part of Elixir that relies on the message-passing model to support concurrency and resilience.
Once you have the foundation set, you can take a closer look at debugging and data storage, and then get a quick look at a toolset that is likely at the heart of your long-term development with Elixir: Erlangs Open Telecom Platform (OTP), which is about much much more than telephones.
Finally, youll learn about Elixirs macro tools, features that give Elixir tremendous flexibility by letting you extend the language.
Some people want to learn programming languages through a dictionary, smashing together a list of operators, control structures, and datatypes. Those lists are here, but theyre in , not the main flow of the book.
The main point you should get from this book is that you can program in Elixir. If you dont get that, let me know!
Other Resources
This book may not be the best way for you to learn Elixir. It all depends on what you want to learn and why. If youre looking for a faster-flying introduction to the language, Dave Thomas Programming Elixir (Pragmatic Publishers) jumps in faster and emphasizes Elixirs uniqueness more frequently.
If you like the pace of this book and want to try out your new knowledge, you might like tudes for Elixir (OReilly Media). That book provides descriptions of short programs that you can write in Elixir, and they may ask you stretch a bit beyond theexamples you find here. It is also designed so that its chapters are in parallel with this books chapters.
The other books in the field all cover Erlang, not Elixir. Hopefully there will be more Elixir-specific work soon. Elixir in Action (Manning) is getting underway. The main Elixir website includes a lot of tutorials, documentation, and links to other resources.
If your primary interest in learning Elixir is to break out of a programming rut, you should explore Bruce Tates wild tour of Seven Languages in Seven Weeks (Pragmatic Publishers), which explores Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell. Erlang gets only (an excellent) 37 pages, but that might be what you want.
Erlang books can also help you understand what makes Elixir work so well.
For a simple introduction to Erlang that largely parallels this book, Introducing Erlang will get you started with Erlang and functional programming.
For an online experience (now also in print from No Starch Books) with more snark and funnier illustrations, you should explore Fred Heberts Learn You Some Erlang for Great Good! .
The two classic general books on Erlang are the similarly-titled Programming Erlang (Pragmatic Publishers) by Erlang creator Joe Armstrong, and Erlang Programming (OReilly) by Francesco Cesarini and Simon Thompson. They cover a lot of similar and overlapping terrain, and both may be good places to start if this book moves too slowly or you need more reference material. Erlang Programming goes further into what you can do with Erlang, whereas Programming Erlang provides a lot of detail on setting up an Erlang programming environment.
On the more advanced side, Erlang and OTP in Action (Manning) by Martin Logan, Eric Merritt, and Richard Carlsson, opens with a high-speed 72-page introduction to Erlang and then spends most of its time applying the Open Telecom Platform, Erlangs framework for building upgradeable and maintainable concurrent applications.
Designing for Scalability with Erlang/OTP (OReilly), by Francesco Cesarini and Steve Vinoski, explores how OTP and Erlang make things that seem hugely difficult in other environments a normal days work in Erlang.