序(foreword)
成功的编程语言诞生于解决现有语言和工具未能妥善应对的问题。当我问及José Valim在创造Elixir时试图解决何种问题,他回答道,他希望将Erlang和BEAM的强大能力带给其他编程社区。他最初通过Phoenix框架从Web领域着手,随后又成功进入了嵌入式系统和机器学习领域。"你当时想解决什么问题?" 这个问题我曾询问过数十位语言创造者,得到的答案各不相同。而José是第一位在回答中表示,他的核心关注点在于推广另一种极其强大的语言——Erlang——的思想、语义和运行时。他实现这一目标的方式是,通过不同的语法、工具和开发方法来应对问题。
那么,Erlang的共同创造者Joe Armstrong、Robert Virding和Mike Williams当初试图解决什么问题呢?他们踏上征程,旨在探索如何更好、更高效地构建和维护可扩展、高容错的系统。在90年代初期,这类系统通常与电信交换机相关,但很快,它们便适用于任何连接到互联网的软件。他们的解决方案恰巧体现为一门编程语言,尽管他们最初并未打算创造一门新语言。最终,Erlang在思科、爱立信、Klarna、高盛、T-Mobile、WhatsApp和亚马逊等众多顶尖公司的重要基础设施项目中得到应用。随着更多编程语言被添加到BEAM之上,Erlang及其运行时已发展成为一个语言生态系统,如今被称为Erlang生态。Elixir无疑是这些语言中最受欢迎的一个。
那么,这一切与你即将阅读的这本书有何关联呢?答案很简单。要真正理解并掌握Elixir的强大之处,你需要同时理解Erlang和OTP。我并非建议你去专门学习这些语言,而是建议你向一位在转型之前已专业使用Erlang多年的人士学习Elixir。Saša Jurić通过阐释Erlang的独特之处,向你展示了如何高效地使用Elixir。解释Erlang为何以这种方式运作,也就揭示了Elixir的本质和方法。这正是《Elixir in Action》一书区别于其他同主题书籍的关键所在。我希望你能像我一样享受阅读,不仅学习一门编程语言,更能理解整个生态背后的哲学。
编码愉快!
——弗朗切斯科·切萨里尼 Erlang解决方案公司创始人; 参与OTP R1版本发布工作的团队成员; 《ERLANG PROGRAMMING》与《DESIGNING FOR SCALABILITY WITH ERLANG/OTP》合著者; Erlang生态系统基金会创始成员; 牛津大学高级讲师