【发布时间】:2010-11-19 17:52:19
【问题描述】:
我目前正在参加一个编程竞赛 (http://contest.github.com),其目标是创建一个推荐引擎。我开始使用 ruby 进行编码,但很快就意识到它对于我所考虑的算法来说还不够快。所以我改用 C,这是我所知道的唯一非脚本语言。当然,它很快,但每次我不得不编写 for 循环来遍历数组的元素时(这种情况很常见),我都会感到畏缩。
这才恍然大悟:我希望我知道一种快速但高级的语言,可以轻松地对所有这些密集的计算进行编程!
所以我查看了我的选择,但现在有很多选择!这是我几个月来找到的最好的候选人,每个人都有一些让我烦恼的事情(希望你能弄清楚):
-
Clojure:我不确定我是否想了解整个
lisp的内容,我喜欢我的语法和粗俗。不过,我可以相信。 - Haskell:太学术了?我并不真正关心 pure 功能,我只想要一些有效的东西。但它有很好的语法,我不介意静态类型。
- Scala:奇怪的语言。我试过了,但我觉得它很乱/不一致。
- OCaml:还想知道这是否过于学术?糟糕的并发支持也让我很困扰。
- Arc:Paul Graham 的口齿不清,太晦涩难懂了,再说一遍,我不确定我是否想学口齿。但我相信这个人!
有什么建议吗?我真的很喜欢函数式语言,因为它们能够轻松操作列表,但我也对其他选项持开放态度。我想要一些和 Java 一样快的东西..
我希望能够用列表做的事情就像(ruby):
([1, 2, 3, 4] - [2, 3]).map {|i| i * 2 } # which results in [2, 8]
我也更喜欢开源语言。
谢谢
【问题讨论】:
-
-
LISP 到底有什么困扰你的地方?
-
如果您认为自己可以在一种全新的语言中变得高效并在两周内使用该语言赢得比赛,那么您必须有很多时间。
-
哈哈我没那么疯狂。更多的是意识到我将来会面临类似的问题,应该做好准备:)
-
没有“开源语言”,只有“开源实现”。
标签: language-agnostic programming-languages