从程序员的角度来看,Erlang是一种简洁的语言吗?

时间:2009-03-18 07:23:52

标签: syntax erlang

Erlang在简洁性方面落在简洁的范围内,比如简洁的Java / .net和更简洁的结尾的Ruby / Python?我有一个RSI问题,因此出于健康原因,简洁对我来说尤其重要。

4 个答案:

答案 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 ++相比,也令人惊讶地快速(可靠):

  

http://www.erlang.se/euc/06/proceedings/1600Nystrom.ppt

(减少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