Zub*_*air 72 erlang programming-languages functional-programming
你真的"试过"(意味着编程,而不只是阅读一篇文章)Erlang并决定反对它的项目?如果是这样,为什么?此外,如果您选择回到旧语言,或使用其他功能语言,如F#,Haskell,Clojure,Scala或其他类似的东西,那么这也很重要,并说明原因.
Edw*_*ETT 49
为了Haskell惊人的类型系统的简单优点,我从Erlang返回了Haskell的个人项目.Erlang为您提供了大量工具来处理出错的时间.Haskell为您提供工具,让您在第一时间避免出错.
使用强类型系统的语言工作时,每次编译时都可以有效地证明代码的自由定理.
你也从Haskell的类型类机器中获得了一堆重载糖,但这在很大程度上是次要的 - 即使它确实允许我表达一些在Erlang中非常冗长或非惯用且无法使用的抽象(例如Haskell的类别的演员).
我喜欢Erlang,我喜欢它的频道和轻松的可扩展性.当这些是我需要的东西时,我转向它.哈斯克尔不是灵丹妙药.我放弃了对空间消耗的更好的操作理解.我放弃了神奇的一通垃圾收集器.我放弃了OTP模式和所有轻松的可扩展性.
但是我很难放弃安全毯,就像通常所说的那样,在Haskell中,如果它有类似的话,它可能是正确的.
Sha*_*aun 26
我们使用Haskell,OCaml和(现在)F#,因此对于我们而言,它与缺少类C语法无关.相反,我们跳过Erlang,因为:
可能还有其他我现在想不到的原因,但这些是主要观点.
War*_*ung 25
避免Erlang的最佳理由是当你无法承诺编程的功能时.
几周前我读了一篇反Erlang的博客咆哮,作者对Erlang的一个批评是他无法弄清楚每次用相同的参数调用函数时如何使函数返回不同的值.他真正没想到的是,Erlang是故意的.这就是Erlang如何在没有显式锁定的情况下在多个处理器上运行良好的方式.纯功能编程是无副作用的编程.你可以像我们的咆哮博客一样武装扭曲Erlang,添加副作用,但这样做会丢掉Erlang提供的价值.
纯函数式编程不是唯一正确的编程方式.并非一切都需要在数学上严谨.如果您确定您的应用程序最好用滥用术语"功能"的语言编写,最好将Erlang从列表中删除.
Jon*_*tar 16
我已经在一些项目中使用过Erlang.我经常用它来提供宁静的服务.我不使用它的地方适用于复杂的前端Web应用程序,其中Ruby on Rails等工具要好得多.但对于幕后的权力经纪人,我知道没有比Erlang更好的工具.
我还使用了一些用Erlang编写的应用程序.我稍微使用了CouchDB和RabbitMQ,并且我已经设置了一些EJabberd服务器.这些应用程序是其领域中最强大,最简单和最灵活的工具.
不想使用Erlang,因为它不使用JVM在我看来很傻.JVM不是一个在世界上做所有事情最好的神奇工具.在我看来,能够从不同工具的武器库中进行选择,而不是陷入单一语言或框架,这就是专家与代码猴子的区别.
PS:在上下文中阅读我的评论后,我注意到它看起来像是在叫oxbow_lakes一个代码猴子.如果他这样做,我真的不是并且道歉.我正在概括程序员的类型,我绝不会根据他的一条评论称个人为负面名称.他可能是一个优秀的程序员,尽管我鼓励他不要让JVM成为某种交易破坏者.
虽然我没有,但互联网上的其他人也有,例如
我们研究了C++和Erlang在为美国海军实施并行声线追踪算法时的相对优点.我们发现并行Erlang的学习曲线和调试环境要小于基于pthreads的C++编程.我们的C++实现比Erlang程序至少提高了12倍.Erlang的内存占用使得在IBM Cell BE微处理器上使用Erlang的尝试受挫. (资源)
更接近我的心,我记得在ICFP比赛结束后回顾:
编码非常简单,将伪代码转换为C++.我本可以使用Java或C#,但我现在正处于C++高级编程同样容易的程度,而且我想保留快速下降到一些低级别比特的选项,如果它来的话到它.Erlang是我最喜欢的黑客入侵语言,但担心会遇到一些我无法自拔的性能问题.(资源)
对我来说,Erlang动态输入的事实让我很谨慎.虽然我确实使用动态类型语言,因为它们中的一些非常注重问题(使用Python,我解决了很多问题),我希望它们是静态类型的.
也就是说,我实际上打算让Erlang尝试一段时间,我刚刚开始下载源代码.所以你的"问题"毕竟取得了成就.;-)
原因如下:
因为它看起来与任何习惯于C系列语言的人都不同
因为我希望能够在Java虚拟机上运行以利用我所了解和理解的工具(如JConsole)以及JIT和GC多年来的努力.
因为我不想重写我多年来建立的所有(Java)库.
因为我不知道Erlang"生态系统"(数据库访问,配置,构建等).
基本上我熟悉Java,它的平台和生态系统,我已经投入了大量精力来构建在JVM上运行的东西.这是比较容易迄今为止移动到斯卡拉
我从大学开始就认识Erlang,但到目前为止我从未在自己的项目中使用它.主要是因为我主要开发桌面应用程序,而Erlang并不是制作漂亮GUI的好语言.但是我很快就会实现一个服务器应用程序,我会尝试一下Erlang,因为这是它的好处.但我担心我需要更多的图书馆,所以也许我会尝试用Java代替.
我决定不使用Erlang来实现我的项目,该项目将在单个多处理器系统上运行大量共享数据,然后使用Clojure,因为Clojure实际上获得了共享内存并发.当我处理分布式数据存储系统时,Erlang非常适合,因为Erlang真的很喜欢分布式消息传递系统.我将项目与语言中的最佳功能进行比较,并相应地进行选择
| 归档时间: |
|
| 查看次数: |
40006 次 |
| 最近记录: |