SO社区,只是有一个简单的问题要问。我一直在研究学习具有并发性的语言。目前,我一直在与Scala合作,我一直很喜欢它。我决定也学习其他一些,以便不专注于某种语言,而是尽可能多地学习。到目前为止,我非常喜欢EVM,特别是Elixir。
所以,我的问题是:在学习Elixir之前学习Erlang对我有多大益处?我对Elixir的语法很感兴趣,但是建立在Erlang之上,我不确定直接进入它是否会受伤。
答案 0 :(得分:2)
我不认为学习Erlang会直接对学习Elixir有用;例如,在Erlang中学习原子的样子并不会影响你如何学习Elixir中的原子。
然而,Erlang还有更多的东西,而不仅仅是Erlang语言。显而易见的是OTP,Elixir可以使用它。现在,没有固有的理由让你无法在Elixir的范围内学习OTP,但是Erlang在整个Erlang生态系统上积累了文档,教程,书籍等多年,Elixir可以使用它。如果您想了解OTP的详细信息,可以选择 Erlang和OTP in Action 这本书,但所有代码都是Erlang。如果您同时了解Erlang和Elixir,那么将您从本书中学到的知识应用于Elixir会更容易。
或者想一想用Erlang编写的第三方工具。 Elixir可以使用它们,但是文档很可能会假设你正在使用Erlang,所以再次知道Erlang会帮助你将你学到的东西应用到Elixir。
通过rvirding编辑: 我认为你的第1段错了,因为你在Erlang学到的一切都直接适用于Elixir。所有数据类型都完全相同,并且行为方式与您期望的完全相同,因为它们是底层BEAM提供的内容。所以Elixir原子和Erlang原子是相同的,并且即使语法(稍微)不同,也以完全相同的方式使用。您在功能和模块中具有相同的基本控制结构和组织代码的方式,同样它们也是底层BEAM提供的内容。因此,虽然Elixir提供了一些额外的高级构造,但它们是相同的。
这对于评论来说有点太大了,因此它最终会在这里结束。