这个问题就好比:为什么学校要有语文数学英语物理化学生物体育音乐老师?为什么不能语文老师教全部学科或者体育老师教数学?
因为术业有专攻,编程语言也一样。每个语言都有其擅长的领悟,能做和能做得最好是两码事。
然后回到问题,人工智能无论是训教模型或者执行,都有极高性能要求,而GPU对这些场景是有天生优势的,这时,我们需要做的就是深入底层深入硬件,去驱动这些硬件去帮我做事,这就明白为什么需要c++。而一个跑在jvm上的Java是没办法也不适合干这种活。Java本来就是被设计出来用作顶层应用开发而非底层,它的优势是跨平台可移植,但它的优势对于人工智能却是劣势。
那为什么Python会火?首先,它是一门脚本语言,这意味着跑起来既不需要编译,也不需要运行在虚拟机上。其次,它的语法简单,小白学习三两天也能上手撸项目了。然后,它的适用范围广,web开发、服务器运维、移动应用、爬虫、黑客工具,哪里都有Python的身影。最后,Python是由C语言开发而来,所有C/C++的类库它都能轻松调用。
你可能会疑问,既然人工智能对性能要求这么高,为啥Python如此低性能缺可以应用其中?因为,Python压根就不是给你在AI上做最终落地的,结合上面所说的特点,它真正用途是给算法工程师和AI科学家用来快速调整算法和调试验证AI程序。待算法正式通过以后需要大规模落地,此时就会换上C++。
最后再提一下Java吧,虽然在AI方面没什么用武之地,但与AI想近的大数据却是Java的天地。 |