五大最适合学习AI开发的编程语言, 你喜欢的语言上榜了吗
准备学习AI的你,知不知道选择哪种编程语言合适呢?以下列举的五种编程语言,被认为是最适合用来学习AI。大家可以参考一下。
1.PYTHON第一名毫无疑问是Python。尽管Python有些特性令人不爽(whitespace、Python2.x和Python3.x之间的巨大差异、五种不同的包机制都在不同程度上有缺陷)但如果你正在从事AI工作,你几乎肯定会在某些时候用到Python。
Python中可用库的数量是其他语言所无法企及的。NumPy已经变得如此普遍,以至于几乎成为了张量运算的标准API,Pandas将R的强大而灵活的数据帧带入Python。对于自然语言处理(NLP),您可以使用久负盛名的NLTK和快如闪电的SpaCy。对于机器学习,有经过实战检验的Scikit-learn。当谈到深度学习时,当前所有的库(TensorFlow,PyTorch,Chainer,ApacheMXNet,Theano等)都是在Python上首先实现的项目。
(在LiveEdu上,一位德国的AI开发者教大家如何使用Python开发两个简单的机器学习模型)
Python是人工智能研究的前沿语言,这是拥有最多机器学习和深度学习框架的语言,也是AI研究者几乎都掌握的语言。由于这些原因,尽管笔者每天都要咒骂一次whitespace问题,Python仍然是人工智能编程语言之王,您没法绕过它。
2.JAVA和相关语言
JVM系列语言(Java,Scala,Kotlin,Clojure等)也是AI应用开发的绝佳选择。无论是自然语言处理(CoreNLP)、张量运算(ND4J)还是完整的GPU加速深度学习堆栈(DL4J),您都可以使用大量的库来管理流水线的各个部分。另外,您还可以轻松访问ApacheSpark和ApacheHadoop等大数据平台。
Java是大多数企业的通用语言,在Java8和Java9中提供了新的语言结构,这使得编写Java代码的体验不再像我们过去所记得的那样糟糕。使用Java编写人工智能应用可能会让人觉得无聊,但它确实能完成工作,并且您可以使用所有现成的Java基础架构来开发、部署和监视。
3.C/C++
在开发AI应用时,C/C++不太可能成为您的首选,但如果您在嵌入式环境中工作,并且无法承受Java虚拟机或Python解释器的开销,那么C/C++就是最好的解决方案。当你需要榨干系统的每一滴性能时,你就得面对可怕的指针世界。
幸运的是,现代C/C++写起来体验还不错(实话实说!)。您可以从下列方法中选择一个最适合的:您可以一头扎进堆栈底部,使用CUDA等库来编写自己的代码,这些代码将直接在GPU上运行;您也可以使用TensorFlow或Caffe以访问灵活的高级API。后者还允许您导入数据科学家用Python写的模型,然后以C/C++级别的速度在生产环境中运行它们。
在未来一年中,请密切留意Rust在AI领域的一些动作。结合C/C++级别的速度与类型和数据安全性,Rust是实现产品级性能却不会造成安全问题的最佳选择。并且它现在已经可以与TensorFlow绑定了。
4.JAVASCRIPT蛤?!JavaScript?我没听错吧?其实,谷歌最近发布了TensorFlow.js,这是一个WebGL加速库,允许您在Web浏览器中训练和运行机器学习模型。它还包括KerasAPI以及加载和使用在常规TensorFlow中训练过的模型的功能。这可能会吸引大量的JS开发者涌入AI领域。虽然JavaScript目前能够访问的机器学习库与其他语言相比有所局限,但在不久的将来,开发者在网页中添加神经网络就和添加React组件或CSS属性一样简单。这听上去既强大又恐怖。
TensorFlow.js仍处于早期阶段。目前它可在浏览器中运行,但不适用于Node.js。它还没有实现完整的TensorFlowAPI。不过,我预计到2018年底,这两个问题都将基本得到解决,并且JavaScript将在不久之后大举进军AI界。
5.RR在这份榜单中排名最末,并且看上去将会越来越没落。R是数据科学家喜欢的语言。但是,其他程序员在第一次接触R时会感到有些困惑,因为它采用了以数据帧为中心的方法。如果您有一组专门的R开发者,那么将R与TensorFlow、Keras或H2O搭配使用,进行研究、原型设计和实验是有意义的。但基于性能和操作方面的考虑,我不愿意推荐将R用于生产。虽然您可以写出能在生产服务器上部署的高性能R代码,但将这种用R语言编写的原型重新编码为Java或Python肯定会更容易。
本文为转载,内容有删减,原文出处:《AI开发,究竟哪种语言强?》
编程都该学什么语言?几个流行编程语言对比
随着科技的快速发展,软件开发行业迅速火起来,无论是人工智能还是大数据分析,都是需要用到编程来实现相应的功能。编程的广泛被利用,提升了编程的价值,现在无论是成人还是小孩都开始学习编程。我们应该怎样去学习编程?编程狮在给您介绍几个流行的热门编程语言的对比,相信你就会明了,有目标了。
在最新TIOBE编程语言排行榜中,Java排在第一位,然后是C,python,C++,Visual Basic.NET、C#。
1. Java语言
Java是过去二十年来最流行的语言之一,它统治着服务器端应用程序开发的世界。它还在使用Android和企业Web开发领域的移动游戏和应用程序开发中占有相当大的市场份额。
Java是以WORA的简单概念(在任何地方编写一次运行)开始的,但随着时间的推移,Java实际上已经到处运行。
您应该学习Java以构建健壮,可伸缩的服务器端应用程序。您可以在Java中构建具有不同复杂性的项目,并且它具有很好的工具,技术和社区。
你为什么要学习Java?您将学习如何专注于应用程序设计和代码结构,而无需担心系统特定的细节和内存管理。JVM将负责它。
如果您决定学习Java,那么Udemy的The Complete Java Master Class就是一个很好的课程。它详细介绍了Java的所有基本概念。
顺便说一句,如果您需要更多选择并且不介意从免费课程中学习,那么您也可以查看这个免费Java课程列表,供初学者使用。
Java被一些最大的组织使用,你可以通过编写Android应用程序来吸引很多人。如果您仍然不相信,我建议您查看学习Java的这10个理由。
2. Python语言
Python是世界上学校和大学中教授最多的语言之一。在美国,Python已经取代许多学术课程中的Java作为首选语言。学习Python会获得什么?很多。
Python是可以用作脚本语言的语言之一,也可以用作大型项目的适当面向对象语言。
包括Reddit在内的许多热门网站都是基于像Django这样的Python框架构建的。最近,许多大型组织也在转向基于Python的框架。
它也越来越多地用于新一代技术,如机器学习,人工智能和数据科学。难怪,因为它有一些很棒的机器学习库,如TensorFlow,Scikit-Learn 等。
我个人使用Python编写脚本,它对于快速执行某些操作非常有用,例如,您可以在5分钟内在Python中编写UDP消息侦听器,而不是在Java中编写20分钟。忘记编译,打包,然后使用,只需为临时任务编写Python脚本。如果有兴趣学习Python,那么完整的Python BootCamp是一个很好的开始。
如果您需要更多选择并且不介意从免费资源中学习,那么您也可以为初学者查看这个免费的Python课程列表。
此外,如果您对开始使用Java或Python感到困惑,请查看此信息图,该 信息图将Java与Python进行比较。
而且,如果您仍然不相信,那么您应该查看我的帖子,了解在2018年学习Python的10个理由。
3. JavaScript语言
您可以用C ++替换Java并用Ruby替换Python,但老实说,在当今世界中没有替代JavaScript。在过去的五年中,JavaScript完全统治了全世界。
它不再是客户端脚本语言,使用Node.js,Angular和React等框架和库,您可以在服务器端使用JavaScript以及用户界面开发。
JavaScript取得巨大成功的部分原因在于 jQuery,它真正改变了客户端使用JavaScript的方式。
作为一名从事基于JSP和Servlet的应用程序的Java程序员,我有很多机会同时使用jQuery和JavaScript。
了解这种语言有助于我们决定哪些功能应该在服务器端实现,哪些功能可以在客户端处理,例如,我们过去在服务器端执行的许多验证都已迁移到客户端。
如果您想从头开始深入学习JavaScript,那么Udemy的The Complete JavaScript课程是您可以加入的最佳在线课程。
如果您需要更多选择并且不介意从免费资源中学习,那么您还可以查看此Web开发人员免费JavaScript课程列表。
4. C/C ++语言
如果不了解C或C ++,你就不能成为程序员。这是一个非常强烈的声明,但我从我的经验中说出这一点。
知道C的软件工程师或开发人员比不懂C的程序员更好,而且不仅仅是巧合。
这是你必须知道的那些语言之一。我在学术培训期间学习了C,并学习了许多关键的编程概念,例如结构,数组,指针,内存管理等。
C仍然是系统编程最受欢迎的语言,并且在过去的两年里,它已经让Java在竞争中处于领先地位。如果你想学习这门精彩的语言,那么C Programming for Beginners就是一个很好的起点。
它也是 最古老的主流语言之一,并且已经存在了四十多年。
如果你想学习C ++而不是C,因为它们非常相似,并允许你为系统和驱动程序编写低级代码,请查看我的初学者免费C ++课程列表。
5、Visual Basic.NET
Visual Basic.NET最大的新特征就是其利用了CLS(Common Language Specification,公共语言规范)和CLR(Common Language Runtime,公共语言运行时)。因为Visual Basic.NET遵从CLS,这就使得任何遵从CLS的语言都可以使用你用Visual Basic.NET编写的类、对象和组件。同样的,Visual Basic.NET开发人员也可以自由使用其它遵从CLS的语言编写的类、对象和组件,而不用担心语言之间的差异。
6、C#语言
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。它与Java很相似包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java又有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,并且它是微软公司 .NET windows网络框架的主角。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。它尤其擅长于Windows桌面应用程序和游戏开发。
编程都该学什么语言?这个是得结合自己的实际情况和预期的工作,不要盲目的学习,在学习的过程中要注重实践,同时学习一些数据结构、算法方面的知识点,这样才能让你所学的编程语言发挥它所具有的最大潜力。
相关课程推荐:
Java:23天零基础完全入门
Python3零基础入门到爬虫实战
小白学前端:JavaScript入门到进阶
从零开始学C语言
C++微课
C#微课