4

我目前使用 Perl、Python、C#、C、C++、Java 和其他一些语言进行编程,并且我正在寻找一种新的语言,以便在进行个人项目时用作主要语言。

我目前的标准是:

  • 可以作为解释语言运行(即无需等待编译即可运行);
  • 可以编译为本机代码;
  • 是强类型的(即使是可选的);
  • 支持你想调用的宏/模板/代码变形/wtf;
  • 有相当数量的图书馆,或者很容易访问它;

想法?建议?

4

3 回答 3

5

我建议 Haskell 适合您的标准。

  • 可以作为解释语言运行吗?是的,通过 GHCI。
  • 可以编译为本机代码吗?是的。
  • 是强类型吗?非常如此。甚至可能是当今最强类型的语言,除了一些定理证明器,如 Agda。
  • 支持宏/模板/变形?如果你使用模板haskell。然而,这是该语言的可选扩展,因此大多数库不使用宏。我自己没有使用过模板haskell,所以我无法评论它是否有好处。
  • 有体面的图书馆支持吗?标准库还不错。还有 Hackage,一个开放的 Haskell 库库,有点 CPAN 的风格。

此外,听起来您已经了解很多命令式/面向对象的语言。恕我直言,如果您学习另一种语言。它可能是您在其他地方已经看到的功能的稍微不同的排列。将另一种编程范式(如函数式编程)添加到您的工具箱中可能会是一种更好的学习体验。虽然我猜这是否是一个优势取决于你是想学习新事物还是快速提高生产力。

于 2010-12-20T18:35:02.320 回答
3

Common Lisp 适合:有一个可选的类型,可以使用高效的本地编译,强大的 REPL 使它成为脚本的完美选择,还有一个强大的宏元编程。

OCaml 也适合用于元编程的 CamlP4。

于 2010-12-20T17:29:59.550 回答
-1

斯卡拉?它确实运行脚本,尽管它们首先被编译(透明地)。我不确定您所说的代码变形等是什么意思,但这对 DSL 来说非常好。它满足您的所有其他要求 - 与 Java 一样编译、强类型,并且拥有合理数量的自己的库以及所有 Java 库。我仍然是它的初学者,但到目前为止我喜欢它。

于 2010-12-20T17:28:32.340 回答