- Learning Elixir
- Kenny Ballou
- 296字
- 2021-07-23 14:47:52
Chapter 1. Introducing Elixir – Thinking Functionally
Let's embark on a journey, let's leave behind the world we know and head to something new and different. We quest to learn a new programming language, Elixir, and new paradigm of programming, functional. We set out leaving behind most of what we know, and attempt to think differently.
Elixir is a functional, dynamic language built on top of Erlang and the Erlang VM (BEAM). Erlang is a language that was originally written in 1986 by Ericsson to help solve telephony problems, including distribution, fault-tolerance, and concurrency, among others. Elixir, written by José Valim, extends Erlang and provides a friendlier syntax into the Erlang VM while maintaining interoperability with Erlang and Elixir without imposing performance costs.
Elixir's roots in Erlang provide some really indispensable functionality for developing distributed and fault-tolerant applications. Developing in Elixir, we can have all that and then some.
That is, Elixir provides and exposes to us the means and tools to create applications that can truly run with nine nines of reliability. Those are a fail-fast by default design of the runtime with the concept of process supervision, which enables strong fault-tolerance, the inherent concurrency of message passing, and a functional language that also enables distribution. We will discuss all of these topics and concepts by the conclusion of this book.
But before we get into these excellent features of Elixir and Erlang, let's take a dive into functional programming and why it's useful in creating a system that has these features.
I assume you're familiar with imperative languages such as Perl and Java. Furthermore, you're likely familiar with the concept of static typing and dynamic typing, as in Python. But what is functional programming? Moreover, why should we care about it?
- 數據庫系統原理及MySQL應用教程(第2版)
- Python機器學習:數據分析與評分卡建模(微課版)
- Learning Chef
- Java游戲服務器架構實戰
- Production Ready OpenStack:Recipes for Successful Environments
- 小程序,巧運營:微信小程序運營招式大全
- JAVA程序設計實驗教程
- Hands-On Natural Language Processing with Python
- Java系統化項目開發教程
- Microsoft Azure Storage Essentials
- D3.js By Example
- C++程序設計教程(第2版)
- MongoDB Cookbook
- Learning Ionic(Second Edition)
- Mastering Responsive Web Design