人工智能(AI)开创了应用程序开发的新时代。通过使用机器学习和深度学习,可以完成用户配置优化,个性化设置和建议。此外,您还可以集成更多智能搜索结果,提供语音界面或智能帮助等,以优化程序本身。您甚至可以构建视觉和听觉且能够做出反应的智能应用程序。
哪种编程语言可用来学习深度AI?拥有大量优秀的机器学习和深度学习库的语言当然是首选。此外,它还应具有良好的运行性能,出色的工具支持以及一个聚集了大量软件工程师的开源社区。
以下是我为AI开发选择的五种最佳编程语言。其中一些语言正在兴起,而另一些则似乎正在下降。几个月后,您可能会发现这些排名已更改。
1.Python
首先,毫无疑问它是Python。尽管Python仍然存在许多问题,例如空格/制表符缩进以及Python 2和Python 3之间的不兼容性。但是,当您面对与AI相关的工作时,仍然建议选择Python。
Python提供的第三方工具无与伦比。例如,NumPy变得无处不在,它几乎是张量操作的标准API。 Pandas将R强大而灵活的DataFrame带入Python;对于自然语言处理(NLP),可以使用NLTK和快速的SpaCy。对于机器学习,有经过实践检验的scikit-learn;为了进行深度学习,所有当前的第三方库(例如TensorFlow,PyTorch,Chainer,Apache MXNe和Theano)都是针对Python量身定制的。
阅读有关arXiv的深度学习的前沿研究论文时,您一定会找到相应Python版本的源代码。 Python还有其他优点。尽管IPython已逐渐被兼容更多语言的Jupyter Notebook取代,但是大多数Jupyter Notebook用户和大多数在线共享的Notebook都使用Python。
Python是人工智能研究的前沿语言,是拥有最多机器学习和深度学习框架的语言,也是AI领域几乎每个人都使用的语言。因此,无论人们每天如何抱怨空格/制表符缩进问题,Python都是人工智能编程语言中的首选。
2.Java系列
JVM系列语言(Java,Scala,Kotlin,Clojure等)也是AI应用程序开发的绝佳选择。无论是自然语言处理(CoreNLP),张量运算(ND4J)还是完整的GPU加速深度学习堆栈(DL4J),都可以使用大量数据库。此外,您可以轻松访问大数据平台,例如Apache Spark和Apache Hadoop。

Java是大多数企业的通用语言。 Java 8和Java 9提供了一种新的语言结构,以减少编写Java代码的痛苦。用Java编写人工智能应用程序可能会有些无聊,但它可以确保完成工作并将所有现有Java基础结构用于开发,部署和监视。
3.C / C ++
要开发AI应用程序,C / C ++可能不是您的首选,但是如果您在嵌入式环境中工作并且无法承受Java虚拟机或Python编译器的较慢运行速度,那么C / C + +是最佳选择。
幸运的是,当前的C / C ++代码要简单得多。您可以使用CUDA和其他库来编写自己的代码,然后直接在GPU上运行。您还可以使用TensorFlow或Caffe获取灵活的高级API访问权限。后者还允许您导入数据科学家使用Python构建的模型,然后以C / C ++的速度在环境中运行它们。
此外,您还可以在来年关注Rust的应用。结合C / C ++的速度,类型和数据安全性,Rust是可以实现功能而不会引起安全性问题的最佳选择。
4.JavaScript
JavaScript怎么了? Google最近发布了TensorFlow.js,它是一个WebGL加速库,可以在Web浏览器中训练和运行机器学习模型。它还具有Keras API,可以加载和使用在常规TensorFlow中训练的模型。这可能会吸引大量开发人员进入AI领域。尽管JavaScript当前以与其他语言不同的方式访问机器学习库,但在Web页面上添加神经网络就像添加React组件或CSS属性一样简单。
TensorFlow.js仍处于早期阶段。它当前在Node.js中不起作用,并且尚未实现完整的TensorFlow API。但是,预计到2018年底,这两个问题都将基本解决。届时,JavaScript在AI应用程序中的地位将越来越高。
5.R
R排在前五名的底部,呈下降趋势。 R是数据科学家最喜欢的语言,因为它以数据框架为中心,所以其他程序员在初次接触R时常常会感到困惑。如果团队中有专门的R开发人员,则可以将TensorFlow,Keras或H2O集成在一起研究,建模和实验。但是,出于性能和使用方面的考虑,我不建议在实际生产中使用R。尽管可以在生产服务器上部署高性能R代码,但用R编写原型并将其重构为Java或Python即可运行。