当前位置:  开发笔记 > 编程语言 > 正文

未来的投资:Erlang vs. Scala

如何解决《未来的投资:Erlangvs.Scala》经验,为你挑选了3个好方法。

由于并发编程变得越来越重要,我想知道你在这方面对Erlang与Scala的看法.在我看来,Scala拥有更大的用户群,并且可能比Erlang更加光明.此外,Scala是一种java.

我知道这些问题总是有点主观,但未来的投资会更好:Erlang或Scala.甚至是另一种语言?



1> romusz..:

Erlang专为并发容错通信系统而设计.您可以轻松编写处理大量网络连接的服务器(并且由于每个Erlang进程有一个垃圾收集器),服务器可以保留软实时特性(即,在GC完成之前,整个服务器不会暂停).您还可以热交换Erlang代码,将其分布在多个节点上等.这就是为什么(可以说)最可扩展的XMPP服务器(ejabberd)是用Erlang编写的.Yaws(Web服务器)是Erlang擅长的另一个例子,请参阅:http://www.sics.se/~joe/apachevsyaws.html.Riak/Couch是使用Erlang构建NoSQL DB的示例.这些是Erlang是一个很好的选择的问题.

但是在原始计算方面,Erlang VM并不像JVM那么快,因此只要你需要做一些计算密集型工作(例如财务建模),JVM就会成为你的首选平台.此外,Erlang的并发模型(演员)在语言中被烘焙.如果这不符合您要解决的问题,那么您将不会对Erlang感到满意.

在并发性,水平可伸缩性或容错性不是语言的一部分的情况下,Scala是更"通用"的语言.它在库级解决(这就是为什么Scala中至少有3个actor的实现).好处是您可以选择适合您的域的并发模型.例如,如果你需要软件事务存储器(STM),只需选择Akka就可以了(http://akka.io/).

此外,还有一个充分的论点,即使用Scala,您可以利用"JVM投资"和大量JVM库.

您没有提供任何有关您希望使用这些语言编写的软件类型的信息,因此很难给出明确的答案.话虽如此,鉴于以上所有,Scala可能比Erlang"更安全"投资(根本不打击Erlang/OTP,它是一种优秀的语言/平台).

BTW.如果单机并发对您很重要,不应忽视Clojure(http://clojure.org/)(也称为JVM语言).

UPDATE1:如果您喜欢Erlang提供的内容而不是它的语法,请查看elixir-lang.org

UPDATE2:STM已从Akka中删除 - 现在您可以在actor(无类型或类型)和流之间进行选择(混合/匹配).


@expelledboy'在Erlang中有很多错误'听起来有点苛刻,但是,是的,Erlang中有些东西可以改进(可以说任何PL).如果你看看elixir-lang.org,那正是他们想要做的事情(因为他们对'更好'的定义).
所以问题实际上是Java库+处理速度> Erlang容错+大规模并发?喜欢静态打字,你不可能有一个真正的"字符串"类型...你会认为阿姆斯特朗会在地图之前考虑一个字符串类型吗?显然,名称间距有帮助.总而言之,在Scala中解决的Erlang存在很多错误,但是Scala为您提供了足够多的绳索来吊死自己.

2> Robert Grein..:

没关系只需选择一个并坚持一段时间.学习一些东西,做一些很酷的东西,要么继续使用那种语言,要么继续使用另一种语言.

关于学习并发编程,要么一切都会好的.这里的关键是你将学习一些新东西,除非有一个职位空缺,你试图聘请Erlang专门用它,这真的没关系.另外,即使这个开放确实需要Erlang,如果你真的很了解Scala,你仍然可能有很好的机会.

试想一下,如果你刚刚选择了一种并且已经开始学习它,那么你花在尝试选择一门新语言的所有时间本来都会花得更好.


我刚刚获得了第一份Erlang工作,所以...这并不重要.如果你是一个优秀的程序员,那么你几乎掌握了所有语言.了解你喜欢什么!也就是说,由于Java集成,可能会有*更多的Scala作业.例如,查看functionaljobs.com.大多数工作都与Scala/Erlang有关.
哈,是的 我不知道.虽然有一些任何语言的辅助项目可以帮助你找到工作,所以我想在一个方面,Scala可以帮助你找到一份工作:P

3> Diego Sevill..:

两种语言的核心并不难以学习,也学习它们提供的并发功能.事实上,Scala演员受到Erlang演员的影响.我会去他们两个,花时间看他们的构造,做并发问题的一些测试等.

如果你了解Java,Scala会更自然,因为Erlang更像是prolog.相反,如果你更倾向于数学或逻辑类型的语言,那么从Erlang开始.


Scala不难学?请.Erlang就像是带有粘合剂的10个关键字.根据上下文,Scala有13种不同的"_"含义.Erlang是*更容易学习的语言.
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有