About the Book
- Want to create fun new projects?
- Want to learn functional programming?
- Want to get a job working with a better tech stack?
- Want to make your dream ideas become a reality?
While most programming books focus on theory, we'll take a practical approach and build an application together with Elixir and Elm. In the process, we'll use functional programming techniques as we learn how to create fun, scalable, and maintainable web applications.
What Are We Building?
The application we'll be building is a small game platform for the web. We'll use Elixir and the Phoenix web framework to power the back-end, where our users can log in and keep track of their scores. And then we'll use Elm on the front-end to create fun mini-games. We'll tie everything together so we can pass data back and forth between the back-end and front-end by syncing player scores in real-time. We'll focus on building things with a strong foundation, so that we can use these same concepts to create different web applications as well.
- "To be clear, this is already one of the best resources I've found!" John
- "Really great so far. And everything works when you follow along. Very rare." Anonymous Survey Response
- "I already know the basics, but I like the way you're explaining everything. Solid book." Andrew
- "I want to thank you for bringing these two languages together, as this is exactly the stack I wanted to learn." Max
- "I'm just happy that this book exists!" Russell
- "I liked a lot the fact that you provided all the steps to run and deploy a complete Phoenix/Elm application all in one place. It's possible to find resources to learn Elm, Elixir and Phoenix relatively easily on the web, but your book is the first I found detailing how to combine them in a step-by-step way." Florian
Frequently Asked Questions
Why cover two programming languages in a single book?
There are plenty of great technical books available, but the Elixir and Elm Tutorial takes a bit of a different approach. Rather than covering a single language, we take a more holistic approach to building a full application. In doing so, we'll see a lot of familiar patterns that functional languages share. Not only will we be able to cover a lot more ground, but we'll have the added benefit of seeing similar concepts implemented in two separate languages.
Why Elixir and Elm?
Have you ever had a great idea for an application you wanted to build? Did it get increasingly difficult to implement as you worked on it? Have you considered that perhaps the tools you were using were making things really hard on you? Elixir and Elm are user-friendly languages that are built on top of very strong foundations. These languages make it considerably easier for us to craft scalable and maintainable applications that remain fun to work with as we continually add new features.
Should I use these languages for my next big project, or are they too young?
Although Elixir and Elm are young languages, they are also languages that solve real problems. If you're planning to build the "next big thing," you should seriously consider a strong tech stack with a solid foundation. While other startups are struggling to deploy new features because "undefined is not a function", your project will continue to be maintainable, fast, and easy to refactor.
The material for this book was also written intentionally so that readers could adapt it to their needs. Although we use examples with "players" and "games", they could easily be adapted to work with "users" and "products" and the concepts remain the same.
Which versions does this book cover?
• Elixir 1.7
• Phoenix 1.4
• Elm 0.19
Is source code available to accompany the material?
Yes. The demo application is still being actively developed, but feel free to check out the source code on GitHub and feel free to send me an email if you have ideas or suggestions.
Why LeanPub? Will the book be kept up to date?
LeanPub is amazing. It's especially important for a project like this one, because these languages are fairly new and evolving. Both Phoenix and Elm underwent big changes during the writing of this book, and LeanPub made it easy to continually update the content and push new releases. The intention is that the material will be kept up to date with the latest versions of Elixir, Phoenix, and Elm. New features for the demo application will also be added, and rewrites will help to continually improve the way the concepts are covered as well.
Any plans for future releases?
Yes. The content for this book has been completely rewritten and revised as major changes to Phoenix and Elm have been released. The book contains over 300 pages of content and also contains a "What's Next?" chapter with ideas for readers to consider or potentially feature in future iterations.
About the Author
Developer at Code School