【发布时间】:2011-04-04 12:46:29
【问题描述】:
我在语言枪战游戏by their code size only 中比较了语言。这是我得到的摘要(最短的优先,按相似分数分组)。
- Python、Ruby、JavaScript、Perl、Lua、PHP、Mozart/OZ
- OCaml、Erlang、Racket、Go、Scala、F#、Smalltalk
- Pascal、Clean、Haskell、Common Lisp、C#、Java、C
- C++、Ada、ATS
我想知道为什么。获胜者似乎是普通的老式动态语言。 Erlang、Racket(née PLT Scheme)和 F# 运行良好。 Haskell 和 Common Lisp 看起来并不比自称冗长的 Java 简洁。
更新:
我找到了一个关于这个主题的insightful post 图表。我还找到了similar comparison of languages for a larger program(一个简单的光线追踪器)。总而言之,我不会说我得到了“答案”,但我得到了一些思考。
【问题讨论】:
-
您能否进一步解释一下枪战游戏在做什么?您链接的网站令人费解。
-
是什么让您认为每个示例都是由该特定语言的专家编写的?查看 F# 代码,我看到从 C# 到 F# 的直接移植,它本身是从 Java 移植的。几乎没有惯用的功能代码。由于代码似乎主要由对 C++ 库的 P/Invoke 调用组成,我什至不确定这个基准测试应该测量什么——我猜是 Mono 的 P/Invoke 速度,因为基准测试显然甚至没有运行在 MS 运行时...
-
我认为 haskell 做得很差,因为一旦你开始优化它以提高速度,haskell 代码就会膨胀很多。
-
我不知道为什么有人会关心代码的长度?这并不是我衡量编程语言有多好的指标。
-
@igouy - 这个问题从讨论函数式语言的简洁性开始。请告诉我衡量 F# 与 GMP 库互操作性的基准如何告诉我 F# 语言的简洁性。我的观点只是,我为我熟悉的函数式语言找到的第一个源代码本质上并不是特别实用 - 这让人质疑使用这个特定基准作为衡量函数式语言的简洁程度的想法。跨度>
标签: programming-languages functional-programming comparison code-size