官术网_书友最值得收藏!

  • 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?

主站蜘蛛池模板: 竹山县| 万山特区| 勐海县| 历史| 资中县| 云南省| 长丰县| 遵义县| 深州市| 临沧市| 靖安县| 柯坪县| 汉中市| 昌黎县| 通城县| 启东市| 靖西县| 龙岩市| 余干县| 蒙城县| 滁州市| 大同市| 昌宁县| 潼关县| 衡东县| 武功县| 章丘市| 泸水县| 高青县| 盘山县| 慈利县| 孝义市| 杭锦旗| 天镇县| 墨脱县| 定结县| 巍山| 新郑市| 中西区| 贡嘎县| 陇南市|