哪种编程语言最适合用于人工智能目的?
请注意,使用建议的语言,我必须能够使用任何 AI 技术(或者至少是大多数技术)。
回答:
在人工智能研究领域剩下的那些酷酷的、留着胡子的专家们都在使用 Lisp 🙂
主要有两个阵营:Common Lisp 和 Scheme。 它们的语法等都不同。 两者都有很多好的资料。
Java 是一种非常流行的通用语言,但在 AI/函数式编程中,很多有趣的东西,例如将闭包作为一等对象传递,在 Java 中做起来很笨拙。
我个人更喜欢远离 C# 和 F# 这样的 Windows 风格的语言。 厉害的人都在 Unix 下开发。 如果他们很厉害但很穷,就在 Linux 下开发。
有些厉害但古怪的人用 Haskell 编程。 一种相当现代的、具有良好性能的 FP 语言。 我试过一次,弄得我头疼;但你可能比我聪明。
更新: 对 @人名 问题的回答。
-
我不会自己花钱购买 Unix 变体;那是公司和研究所做的事情。 想法是,你想为一个在硬件上投入数百万美元,并且不会犹豫为操作系统支付几千美元的机构进行人工智能研究。 这样的机构很可能在自助餐厅里有美味的食物和/或为做有趣的工作支付丰厚的报酬。 但我当然不是在贬低 Linux。
-
F# 可能很酷,但我看到一大堆让它在 Linux 或任何其他 Unix(这就是我所说的“windowsy”)上运行的问题,而且我不想在 Windows 下工作(这就是我所说的“个人偏好”)。
-
详细阐述一下“windowsy”的主题:你提到 F# 是 OCaml 的一个变体。 从我自己承认简短的研究来看,F# 似乎缺少 functors、OCaml 风格的对象、多态变体和 camlp4 预处理器。 没有 functors 的函数式语言? 真的吗? 如果有人不喜欢微软,正如我承认的那样,人们可以得出结论,他们已经抢先将一种非常好的函数式语言 OCaml 塞进了他们可以在 CLR 中运行的东西,以便他们可以声称“拥有”一种函数式语言。 最后,因为我不怀疑,我知道微软总是将市场主导地位置于产品质量之上,我不打算碰 F#。 但这是我的个人偏好,并且明确地如此标识,而我们实际上更关心的是为 @人名 提出好的建议。
我更有理由推荐 Lisp 而不是 F# 甚至 OCaml 和 Haskell。 这些主要基于 Lisp 在 AI 领域历史上比任何其他语言都占优势。
-
大多数 AI 文献都是基于用 Lisp 或 Prolog 编写的程序。 退一步说,对 Lisp 的良好了解将使学生能够理解示例程序。 我个人最喜欢的人工智能大型项目 Cyc,在 Common Lisp 或 C 中都有运行时。
-
在编程语言的 TIOBE 指数(在工业中看到和使用)中,Lisp 排名第 15 位,而 Haskell 排名第 43 位,F# 和 OCaml 排名低于第 50 位。 在市场上的存在自然与就业机会相关。
也就是说,许多较年轻的“AI 有趣的”语言很可能蓄势待发。 如果某个主要的研究所发表了一些开创性的、定义领域的研究,例如,用 Scala,你就会看到 Scala 的受欢迎程度在研究社区中迅速提高,并且在一段时间的滞后之后,在工业界也是如此。
我(显然)无法评论 F# 的其他品质,但你和我一样欢迎提出建议。