Questions tagged «erlang»

一种非常适合于分布式,并发和容错应用程序的功能性编程语言。

5
什么时候在akka / erlang中使用actor不好?
我每天与akka合作7-8个月。当我开始时,我将在应用程序上工作,并注意到actor基本上会在actor系统内部的任何地方用于大多数对象之间的通信。所以我也做同样的事情-为x / y / z旋转另一个演员。 在我看来,这可能太过随意了,在不需要的地方增加了复杂性-但是我找不到关于应该使用参与者与普通同步甚至是期货的异步逻辑的讨论。我的同事提到类似的内容后,我开始思考自己的立场。我最近才意识到有几种情况,我在考虑一个任务,然后避免创建另一个参与者,因为我可以在不可变的实现中安全地实现相同的结果-例如,从数据库或文件中获取配置值的地方,而这些地方很少访问并且会等待结果是实际用例。 尤其是在我看来,在任何情况下,如果您正在使用不可变状态,参与者都会造成复杂性并限制吞吐量-例如,对象中的纯函数可以在没有任何并行级别的情况下并发调用,但是演员一次只能处理一条消息。另一个考虑因素是,如果您需要等待结果,除非您开始使用期货,否则就将线程停放,但是在不需要担心异步消息传递或扩展的情况下,聘请演员似乎过大。 所以我的问题是-使用演员的时间不好吗?我很好奇erlang看起来如何并且真的希望别人的见识。或者,如果有一些有关演员使用的原则。

3
学习Erlang与学习Node.js [关闭]
我在线上看到很多关于Erlang如何在几乎所有可能的类别中踢出node.js屁股的废话。所以我想学习Erlang并试一试,但这就是问题所在。我发现拿起Erlang比拿起node.js困难得多。使用node.js,我可以选择一个相对复杂的项目,并且一天之内就能完成工作。使用Erlang,我遇到了障碍,并且发展得不那么快。 因此,对于那些有更多经验的人来说,Erlang学习起来是否很复杂,或者我只是想念一些东西?Node.js可能不是完美的,但是我似乎能够用它完成工作。
41 erlang  node.js 

8
什么时候需要“成千上万”的线程?
Erlang,Go和Rust都以一种或另一种方式声称它们支持使用廉价的“线程” /协程进行并发编程。在转到FAQ状态: 在同一个地址空间中创建数十万个goroutine是很实际的。 该防锈教程说: 由于创建任务比传统线程便宜得多,因此Rust可以在典型的32位系统上创建数十万个并发任务。 Erlang的文档说: 为了支持具有数十万甚至数百万个进程的Erlang系统,默认的初始堆大小为233个字是非常保守的。 我的问题:哪种应用程序需要这么多并发执行线程?只有最繁忙的Web服务器才能同时接收数千名访问者。当线程/进程的数量远大于物理核心的数量时,我编写的老板/工作调度型应用程序命中率递减。我想这对于数字应用程序可能有意义,但实际上,大多数人将并行性委托给以Fortran / C / C ++编写的第三方库,而不是这些较新一代的语言。

3
Web服务的Haskell vs Erlang
我正在尝试使用一种功能语言来开始一个实验项目,并试图在Erlang和Haskell之间做出选择,而这两点我都非常喜欢。 我喜欢Haskell强大的字体系统和纯正的风格。我有一种感觉,它将使编写真正可靠的代码变得更加容易。而且我认为Haskell的强大功能将使我想做的事情变得容易得多。 不利的一面是,我觉得在Haskell上做Web东西的某些框架(例如Yesod)不如其Erlang计数器部分那么先进。 我更喜欢Erlang的线程和容错方法。我觉得Erlang的可伸缩性可能是一个主要优点。 这就引出了我的问题,人们在Haskell和Erlang中实现Web应用程序后端有什么经验。Haskell是否有软件包提供Erlang中一些轻量级线程和actor?


3
F#性能vs Erlang性能,是否证明Erlang的VM更快?
我一直在花时间学习函数式编程,现在我想开始编写项目,而不只是涉猎教程/示例。 在进行研究时,我发现Erlang在编写并发软件方面似乎非常强大(这是我的目标),但是用于开发的资源和工具并不像Microsoft开发产品那样成熟。 F#可以在Linux(Mono)上运行,因此可以满足要求,但是在Internet上四处寻找时,我找不到F#与Erlang的任何比较。现在,我倾向于Erlang只是因为它似乎拥有最多的压力,但是我很好奇两个系统之间是否确实存在性能差异。 由于我习惯于在.NET中进行开发,因此使用F#的速度可能比使用Erlang快很多,但是我找不到任何资源可以说服F#与Erlang一样可伸缩。 我对仿真最感兴趣,它将把大量快速处理的消息发送到持久节点。 如果我的要求做得不好,请要求更多验证。
19 f#  erlang 

3
您对演员模型有何看法?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 Erlang使用的Actor模型似乎是进行并发编程的非常不同的方式。您对演员模型有何看法?它将是流行的并发解决方案吗?

1
Erlang真的是演员模型语言吗?
我在读这篇文章: http://www.doc.ic.ac.uk/~nd/surprise_97/journal/vol2/pjm2/ 它提到: 在演员模型中,甚至一个整数也被表示为演员 维基百科确认: 演员模型采用了一切都是演员的理念。 Erlang有许多数据类型,据我所知,这些类型不是参与者。 难道不是说Erlang不是一种参与者模型语言,就像有人说Java不是一种功能语言,就是因为它缺少某些功能性编程功能吗? PS:通过扩展,这意味着Akka绝对不是演员模型,因为除了来自宿主语言的非演员数据类型之外,它甚至还允许继承的演员通过宿主语言工具扩展其行为。

2
有状态库顶部的无副作用界面
在约翰·休斯(John Hughes)的采访中,他谈到了Erlang和Haskell,他对在Erlang中使用有状态的库有以下看法: 如果要使用有状态的库,通常会在其之上构建无副作用的接口,以便随后可以在其余代码中安全地使用它。 他是什么意思?我试图考虑一个例子,但是我的想象力和/或知识使我失望。

6
将函数式编程引入您的开发环境[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 这是一个漫长的故事,但我会尽力总结一下。我们是.NET商店,专门为各种不同类型的基金编写软件。例如,我们编写了健康索赔管理软件,养老金管理软件,401(k)软件和一些其他财务类型的东西。 现在,我们进入了一个新领域:衍生工具和定量分析类型的工作,这似乎非常令人兴奋。有人告诉我,在接下来的8到12个月中,这种情况将会下降。 现在,我已经学会了一些函数式编程,主要是通过这本书对各种语言的肤浅了解,但从未真正深入过它。现在,由于我们是.NET商店,所以我认为F#可能是一个不错的选择,因为我们可以潜在地利用某些.NET库和现有知识。 我的问题是,从哪里开始?我现在很难确定我是否应该使用Haskell,Erlang,Scala,F#等。它们似乎都很有趣且有能力,坦率地说,这可能是摆脱依赖Microsoft的好机会。 有人遇到过类似情况吗?如果是这样,那么您在过渡到功能方面的经验是什么?您选择了什么?为什么?我知道这是一个很大的问题,但是我不知道任何正在使用函数方法的开发人员,因此除了不断地谷歌搜索并在最佳函数式语言上到处发现火焰之战之外,我别无选择。

4
Erlang Web框架调查[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 (受到类似问题的启发) 有许多适用于Erlang的Web框架,例如Nitrogen,Chicago Boss和Zotonic,等等。 它们在哪些方面有所不同?例如: 功能(例如,仅服务器或客户端脚本,轻松支持各种数据库) 成熟度(例如稳定性,文档质量) 可扩展性(例如性能,方便的抽象) 主要目标 另外,使用这些框架的真实网站/ Web应用程序的例子有哪些? 编辑:开始赏金,希望它能引起一些对话

1
Erlang在哪些方面可以防止并发编程中的竞争条件?
阅读有关Erlang的并发信息,使我想起了Akka并发工具包。两者都为您提供了预防或限制比赛条件的工具。但是您可以使用Akka工具包将可变数据的链接发送到其他进程,这仍然是不安全的。我认为Akka是一种有用的工具,但它不能防止对对象和数据的乱序访问,从而导致竞争情况,死锁和/或饥饿。它并不能阻止您以Java或C#保护您免于编写可以在C ++中编写的大多数类型的内存泄漏的方式编写不安全的代码(您仍然可以通过欺骗垃圾收集器来在Java中创建内存泄漏,但是这种情况较少而不是必须记住释放分配的每个字节)。 Erlang是否在并发编程中保证一定程度的正确性,性能和鲁棒性?我认为操作系统在访问系统资源时会提供保护(假设驱动程序编写者的工作做得很好)。ACID数据库为读取和更新提供保护。因此,这似乎是一个可解决的问题。还是通用安全解决方案会消除并发性带来的性能提升?其他语言或工具包是否提供Erlang提供(或不提供)的并发安全性? 这是@Malfist对@ user1249的回答的评论的后续问题,即哪种编程语言生成最少的难以发现的错误?。

3
是什么使Erlang适用于云应用程序?
我们正在开始一个新项目,并在公司的Openstack云实例化上实施(请参阅http://www.openstack.org/)。该项目是我们公司的安全工具。我们目前运行着数百个专用于安全工具的专用服务器,并将它们移至我们公司的openstack实例化。 我公司中的其他项目目前在多个分布式服务器应用程序中使用erlang,而其他Q / A指出,erlang用于几种流行的云服务中。我试图说服其他人考虑将其应用于我们的项目。 erlang在云编程方面的优势是什么?在哪里使用erlang特别合适?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.