看了这个排行榜,达妹只想说:流水的编程语言,铁打的java,c/c++!!
人工智能的前景已经不用多说了,越来越多的人看重人工智能的前景,想要在这互联网的风口有一番作为。要做到这点,首先要确定进入人工智能行业,该学习哪门语言!
rankred 网站发布了该网站评出的2017年7大最佳的人工智能编程语言——python第一!
1.python
近来,尤其是在机器人领域,python 已经有了翻天覆地的变化。其中一个原因是python(和 c ++)是 ros 中的两种主要编程语言。
如同 java 一样,它也是一种解释性语言。但与 java 不同的是,python 的重点是易用性。python 不需要很多时间来做常规的事情,如定义和强制转换变量类型。这些在编程里面本是很平常的事。另外,python 还有大量的免费库,这意味着当你需要实现一些基本的功能时不必“重新发明轮子”。而且由于它与 c / c ++ 代码之间可以进行简单的绑定,这就意味着代码繁重部分的性能可以植入这些语言,从而避免性能损失。
随着越来越多的电子产品开始支持“开箱即用”python(与 raspberrypi 一道),我们可能会在机器人中看到更多 python。
2. c/c++
很多人都认为 c / c ++ 对新的机器人科学家来说是一个良好的开端。
为什么呢?
其主要原因是如今有大量的硬件库都使用这两种语言。它们适用于低级别的硬件,允许实时性能,是非常成熟的编程语言。现在,你可能会使用 c++ 远超过 c,因为 c++ 具有更大的实用性。c ++ 是 c 语言的扩展,从基础的 c 学起,你也会收获很多,特别是当你发现一个硬件库是用 c 编写的。但是 c / c ++ 编写的硬件库不像 python 或 matlab 那样简单易用。使用 c 来执行类似的功能,可能需要相当长的时间,并且需要更多的代码行。尽管如此,由于机器人极其依赖实时性能,所以 c 和 c ++ 是最接近机器人科学家心目中“标准语言”的编程语言。
3. lisp
lisp 是世界上第二古老的编程语言(fortran 更古老,但只差一年)。相比本文提到很多其它编程语言,它的应用并不广泛。不过在人工智能编程领域它还是相当重要的。ros 的一部分是用 lisp 写的,虽然你不需要掌握这个来使用 ros。
4. java
java 对程序员“掩盖”底层存储功能,这使得 java 对程序的要求要比 c 语言对程序的要求更低一些,但这意味着你对底层代码的运行逻辑了解比较少。从软件工程的基础到探索机器人技术的未来,你很可能已经学习了 java。
像 c# 和 matlab 一样,java 是一种解释性语言,这意味着它不会被编译成机器代码。相反,java 虚拟机在运行时解释指令。使用 java,理论上让你可以在不同的机器上运行相同的代码,这得感谢 java 虚拟机。在实践中,这不总是可行的,有时会导致代码运行缓慢。但是 java 在一部分机器人学中非常流行,因此你也许需要它。
5. prolog
prolog是一种与计算语言和人工智能相关的逻辑编程语言和语义推理引擎。它具有灵活而且强大的框架,被广泛应用于定理证明,非数字编程,自然语言处理和ai。
prolog 是一种具有形式逻辑的声明语言。ai开发者重视其预设计的搜索机制,非确定性,回溯机制,递归性质,高级抽象和模式匹配。
6. javascript
javascript 是一种高级、面向对象的直译语言,主要用于使网页交互和创建在线程序,包括游戏。
在javascript中,学习对话模型并不重要。学习服务器端的数据,然后通过ajax调用学习者进行预测。 javascript有很多好用的库,我们总结其中3个:
conventjs:实现深度学习的库——在浏览器中训练卷积神经网络。它支持完全连接的层以及非线性神经网络模块,分类和回归成本函数。
synaptic:一个用于node.js.的神经网络库。 其通用算法是无架构的,可以用于开发和训练几乎所有类型的一阶和二阶神经网络架构。
mind:它使用矩阵实现来处理训练数据。你可以完全自定义网络拓扑和上传/下载已学习的minds。
7. haskell
haskell 是1990年开发的强静态类型,非限定性编程语言。由于haskell开发人员不多,小公司很少尝试haskell。
haskell 做得很好的是抽象(抽象数学,而不是java oop)。它允许具有表达性的、高效的库表达ai算法。例如,hlearn使用常见的代数结构(模块,单群等)来表达和提高简单机器学习算法速度。
虽然你可以用任何语言编写这些算法,但haskell相比其他语言更具表现力,同时保持不错的性能。例如,haskell写的faster cover trees 。