This series of posts will hopefully reflect my own journey into the world of functional programming with Elixir. Elixir is the first and so far the only functional programming language I tried to learn and use. After I started learning the basics I fell in love with this beautiful language. I was introduced to it by one of my mentors. Learning a functional programming language made me think about programming in a different way. Though I do not use functional programming for my professional works it helped me become a better programmer in so many ways.
So, What is Elixir?
Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development, embedded software, data ingestion, and multimedia processing domains. It is built on top of Erlang, which is a battle-tested programming language developed by Ericsson to build massively scalable soft real-time systems with requirements on high availability. Erlang is the reason why Elixir is so mature despite its young age. It is powerful as Erlang and developer-friendly and productive as Ruby. Ruby was built for Developers' Happiness and Productivity. And Elixir syntax is heavily influenced by Ruby. So you will get productivity, performance and happiness.
There are a lot of cool features in Elixir. My goal is to learn as much as possible about this language and share my learnings with others. We will find out about all the cool stuff about Elixir and its ecosystem.
First, A Big Disclaimer
I am a beginner in Elixir and my goal is not to teach anybody anything. I only intend to share my understandings and some learning resources with you all. All sorts of constructive criticism and positive feedbacks are appreciated. And also this will be my own journey and may not cover all the concepts. This is not a tutorial series or crash course. If you really want to dig deeper you must do your own study and research.
Now, What Will We Attempt?
We will try to learn the following topics in the upcoming posts:
- Environment
- Syntax
- Data Structure
- Program Design
- Process and Concurrency Techniques
- Generic Server Process
- Fault-Tolerance
- Some Advanced Topics
Finally, Conclusion of the Intro
This is not a tutorial series or course. In every post, I will share some motivation and learning materials with all of you. Perhaps this will give you some basic idea about Elixir and its ecosystem and encourage you to learn more about it. I will definitely be learning a lot from this as well. So, see you in the first post.