这可能是 Erlang 界目前最好的一本书,快要翻译完了,心情很激动

2017-04-17 04:00:08 +08:00
 linjianru

Erlang 很小众,但如此迷人,让人欲罢不能。

去年,一本名为《 Designing for Scalability with Erlang/OTP 》的高评分“神书”横空出世了,此书主要介绍了两方面的内容:

特别是第 2 主题,花了五章篇幅,读罢深感精彩。我真的是太佩服二十多年前他们就已经把高可用新系统做到如此完善。而且这些设计方法其实在今天互联网系统设计中完完全全就是同一套东西。真的可说是佩服至极。

这本书一共 16 章,翻译工作已经大部分完成。月底基本上初稿就完成了。不过还需要做一些校对和调整。但我实在是非常兴奋,虽然我明明知道——

并没有几个人用 Erlang ,也没有几个人会买这本书……

但是我就是很兴奋啊!哈哈哈哈。我相信很多人都能体会那种读了一本极好的书后内心闪亮而激动的感觉!

好吧,其实发个贴并没有什么卵用,就让此贴默默沉了吧,我继续赶稿……(哭丧 5 秒)

(警告:下述内容 18 岁以下不易观看)

在 Erlang 的世界中探索是充满挑战的,因为它既是一座高山,也是一片海洋。

而在黑暗中摸索时,即使是最聪明的学生,也需要一盏指路的明灯。而我心目中最闪亮的这盏明灯就是 Erlang 之父 Joe Armstrong 的《 Erlang 程序设计》(由牛化成先生翻译,图灵教育出版,质量很高,值得推荐)。该书从设计的角度深入浅出地介绍了 Erlang 的基本编程方法,以及各种重要的必须理解的设计思想。

但是一旦你学会了基本的 Erlang 编程方法后,就会意识到,要想真正成为一名强大的 Erlang 工程师,必须精通 OTP 库。但是很遗憾的是,市面上对 OTP 库介绍比较好的书基本没有。唯一的一本《 Erlang/OTP 并发编程实战》(由连城先生翻译,质量也很棒),介绍的可以说是 OTP 的应用实践。但是对于 OTP 本身的一些内容,篇幅难以涵盖。

这就是为什么《 Designing for Scalability with Erlang/OTP 》让我欲罢不能的原因——

1 、它是一本 OTP 来龙去脉的圣经指南 2 、它是 Erlang 爱好者到 Erlang 工程师的必经之路

……

……

……

点击下载 《 Designing for Scalability with Erlang/OTP 》.avi 屠龙宝刀人人送

哈哈,开个玩笑呢。 Erlang 开发人员们冒个泡吧。

11734 次点击
所在节点    程序员
90 条回复
nanlong
2017-04-17 11:58:38 +08:00
不知道啥时候出版,如出必买。
markx
2017-04-17 12:22:05 +08:00
听起来很爽!
flowerwrong
2017-04-17 13:01:55 +08:00
坐等
linjianru
2017-04-17 14:07:24 +08:00
@iot 英文版 PDF 一共 482 页。
linjianru
2017-04-17 14:08:54 +08:00
@aheadlead 还没出版,刚要翻译完初稿而已,哈哈,还需要校对和排版。不过快了
iot
2017-04-17 14:09:31 +08:00
@linjianru 求共享一份英文版 pdf
linjianru
2017-04-17 14:11:04 +08:00
@zjlin1984 好的没问题
xiahei
2017-04-17 14:25:04 +08:00
LZ 幸苦了!
entertainyou
2017-04-17 14:27:14 +08:00
支持楼主.
jukka
2017-04-17 14:39:56 +08:00
一个帖子炸出来这么多 Erlang/Elixir er, 出版了请务必在 Erlang/Elixir mailinglist 里告知!:)
FunctionOne
2017-04-17 16:27:50 +08:00
听说有个业界大牛抛弃了 Erlang 转投 Go 了。不清楚里面的真想。
Raincal
2017-04-17 16:37:28 +08:00
路过帮顶~学了 Elixir ,还没怎么看 Erlang...
linjianru
2017-04-17 17:14:48 +08:00
@zjlin1984 好的好的
linjianru
2017-04-17 17:15:16 +08:00
@TangMonk 希望有机会
seamon
2017-04-17 17:15:47 +08:00
写了 10 年 ruby 的表示现在基本都是在用 elixir 写东西了
linjianru
2017-04-17 17:15:50 +08:00
@stupil 哈哈好的我会第一时间通知
linjianru
2017-04-17 17:18:38 +08:00
linjianru
2017-04-17 17:40:17 +08:00
@smallHao 各有优势。如果是容错的分布式系统设计, Erlang 会更适合,特别是在容错方面, Erlang 有一整套完善的设计,目前没有任何语言可以与之媲美。对于长期运行不允许中断,还要不断升级的系统来说, Erlang 提供了完善的支持。

我也很喜欢 Go ,并且它在其他方面比如 Web 开发就比 Erlang 适合( Elixir 我不熟悉就不比了),另外对于需要结合系统底层 API 的情况, Go 也比 Erlang 方便得多。还有对于工具型软件开发, Go 也相当胜任。

话说回来 Erlang 实现的全部并发啊,容错啊之类的机制,其实用其他语言也是能做到的,包括热更新。不过写起来 Erlang 只需要 1/5~1/10 的代码(别人写三万行,你写三五千行,想想这偷懒偷的一个爽)。很简洁,很好维护。这是最吸引我的地方。

Erlang 很难被一般语言取代,深层次的原因有三个:

* Erlang 采用了不可变数据设计,而大部分包括 Go 依然是可变数据设计
* Erlang 的 GC 很特殊,能够达到软实时级别,而其他大众语言的 GC 很难做到:
https://www.zhihu.com/question/42555311/answer/139257723#
* Erlang 经过了电信行业二十多年的洗礼,证明了其在高可用性领域的有效性

但是 Erlang 也不是万能的,比如:

* Rust 就不是 Erlang 能替代的,工作层面上来说 Erlang 只适合更加宏观的领域
* Erlang 的代码非常平易近人,易读性比 Python 要更好,但是也正因此语言结构上基本上没有太多的抽象能力
* 能理解和认可 Erlang 的程序员真的很少啊,这是个很现实的问题

絮絮叨叨说这么多,说错见谅。
linjianru
2017-04-17 17:41:11 +08:00
@jatsz 是的,确实是有时候更重要的是思想层面的启发性。毕竟这是通用的。
linjianru
2017-04-17 17:41:30 +08:00
@momocraft 谢谢支持

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/355298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX