我正在开始一个新项目,不知道使用哪种语言。
我的'必须'要求是:
我很高兴有'要求':
我现在正在考虑Haskell,但也要记住OCaml。
更新: 此应用程序旨在成为一个简单的语言解析和操作实用程序。
如果我的选择正确,请提供建议。
答案 0 :(得分:14)
Haskell中:
1:它在Linux,Windows和OS X上运行,在许多情况下无需更改源代码。
2:生成本机二进制文件。没有VM。
3:完全支持Unicode。支持所有UTF变体。
4:完全线程支持,如果你只想要并行化,那么你可以使用“par”,100%保证它只影响所用的时间而不是语义。
5:与C一样快,虽然可能需要进行一些调整,但目前所需的技能相当模糊,而且显然微小的调整可能会产生多个数量级的影响。
6:包含标准库,“Hackage”包含更多包,包括一系列解析器库。
7:IRC(#haskell)和此处的友好社区。 p>
编辑:关于“很高兴有点”:
1:Haskell是一种毫不妥协的纯函数式语言。
2:它通常具有良好的字符串操作,如果你需要它们的正则表达式。正如有人在后来的评论中所说,要注意内置“String”类型的效率(它将字符串表示为字符的链接列表),但是ByteString和Text库将为您解决这个问题。
3:难以学习吗?它远不如C ++复杂,可能比Java甚至Python更简单。但其纯粹的功能性意味着它与命令式语言非常不同。问题不在于学习Haskell作为学习困难的思维模式。
答案 1 :(得分:4)
Haskell听起来很完美。 GHC在OS X,Linux和Windows上生成本机代码就好了,并且通常具有比Python好得多的性能(对于很多东西,而不是所有东西)。
唯一奇怪的要求是需要OS线程。 GHC生成的程序使用轻量级线程,它比OS线程执行得更好,并且比pthreads更容易使用。
Haskell也非常适合语言分析,使用像Parsec这样的库。
我们也非常了解社区围绕Haskell的字符串和帮助。
答案 2 :(得分:2)
对你的第三个好人:看看Real World Haskell,它是免费的,非常好的介绍,包括你需要的所有要点的介绍。 (例如并行计算,字符串解析等)。
答案 3 :(得分:1)
也许'很高兴':