Erlang在简洁性方面落在简洁的范围内,比如简洁的Java / .net和更简洁的结尾的Ruby / Python?我有一个RSI问题,因此出于健康原因,简洁对我来说尤其重要。
答案 0 :(得分:8)
作为一种语言特征的简洁性定义不明确,可能并不统一。根据问题,不同的语言或多或少可以简洁。
Erlang作为一种功能语言可以非常简洁,超越Ruby或Python。特别是模式匹配经常替换if语句和递归和列表推导可以替换循环。
例如Java会有这样的东西:
String foobar(int number){
if (number == 0) {
return "foo";
} else if (number == 1) {
return "bar";
}
throw new Exception();
}
虽然Erlang代码看起来像:
foobar(0) -> "foo";
foobar(1) -> "bar".
除了固有的例外,因为除了0或1之外没有输入的子句。这导致了一个问题,非常适合Erlang风格的开发。
一般来说,任何你可以定义为转换的东西都会特别匹配一种函数式语言,并且可以写得非常简洁。因为许多函数式语言狂热者都认为编程中的任何问题都是转换。
答案 1 :(得分:2)
与我在Java和Python中的经验相比,Erlang允许您在极少数代码行中实现功能。过去只有Smalltalk或Scheme接近我。您只需要很少的开销,但通常倾向于为模块,函数,变量和原子说出标识符。它们使代码更具可读性。而且你有很多正常,卷曲和方括号。所以这取决于你的键盘布局是多么舒适。你应该试一试。
MUE
答案 2 :(得分:1)
Erlang非常简洁,特别是当您想要获得性能和可靠性时。
即使与Haskell相比,Erlang也很简洁:
http://thinkerlang.com/2006/01/01/haskell-vs-erlang-reloaded.html
即使与C ++相比,也令人惊讶地快速(可靠):
(减少18倍的SLOC并不令人意外)。
无论如何,它总是取决于你的偏好和目标。
答案 3 :(得分:1)
你必须花一些时间,编写代码,了解erlang的最佳点,与所有其他新兴工具,DHT,doc商店,mapreduce框架,hadoop,GPU,scala,......如果你试图这样做,说SIMD类型的应用程序在最佳位置之外,你可能最终会打击范式并编写冗长的代码,而如果遇到需要无缝扩展服务器和中间件的问题,它会自然流动。 (而且,我认为,斯卡拉在其最佳位置的崛起也是不可避免的)
好看的是几年前Tim Bray Wide Finder实验(提取大型apache日志文件),以及他对erlang的失望。
我一般不建议在Alioth枪战中投入太多商店,因为你不可避免地要比较真正好的和坏的代码,但如果你需要把数字的LOC,erlang与C,ruby,无论什么
https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/erlang.html