无意中翻到 Joe Armstrong 发在 erlang-questions 里的文章,Ways to get started 以及 history of erlang。
如果你不知道 Joe Armstrong 是谁,我们给他的另一个称呼是 the father of Erlang :)
大概没有人比他更有资格写这种文章了吧。
在高手眼中大道至简,我们不一定学的来,但是听听还是很有启发的
随便瞎扯几句
忘掉工具
Forget about git/IDEs/rebar etc.
Forget about the tools
如果没有 IDE,没有自动打包工具,我们怎么编写和运行代码?
记住,shell 和文本编辑器对任何语言都是适用的。
当然我并不觉得这意味着需要放弃 IDE 之类的工具,而是在 get started 的时候,对程序怎么工作的有基本的了解是有好处的。
某种意义上来说,过于复杂的工具链意味着,一旦它没有按照你想象的运行,就需要花费更多的时间去解决它。
- rebar!
当然,不能忘了 rebar!
事实上 rebar 已经快要成为 erlang project 的标配了。
Tools like rebar etc are under to automate something but if you don’t
know what it is that you are automating and if the tool doesn’t work
you will just end up being incredible confused.
「像 rebar 这样的工具会自动生成一些东西,但如果你不知道自动生成了什么,如果这些工具无法使用了,你将会变得困惑不已。」
说得好!
但是在更好的解决办法出现之前,也只能这么用了,寄希望于 OTP 组的改进吧,这一块也是我最不喜欢 erlang 的地方。
黑
我一直觉得好的语言应该是某种程度上符合直觉的。这种直觉也许来自逻辑也许来自经验。
比如 erlang。
要举个反例也很容易,比如「世界上最好的语言」。
Joe Armstrong 是这么不经意的黑
Notice there is no quick fix here - if you want a quick fix go buy
“learn PHP in ten minutes”
and spend the next twenty years googling for
“how do I compute the length of a string”
hmm, well done!
the father of Erlang
Joe Armstrong 是个有趣的老头,也是真正的大师,推荐他的 blog,内容远远不止 erlang,可以看他讲讲信手拈来言简意赅的道理,喜欢八卦的话可以看他学 js 顺手黑黑其他语言 :)
以及他的 twitter @joeerl
最后是一段以前放在 erlang.org 上的话,如果学完 erlang 你还不懂这段话,可能你需要从头再来一遍 :)
The world is concurrent.
Things in the world don’t share data.
Things communicate with messages.
Things fail.
- Joe Armstrong
btw,Joe Armstrong 的邮箱地址是 erlang#gmail.com,是不是比 「I Wrote Python」 低调多了 :)