这是一个很有意思的问题,我结合当前课题组的实际情况来说说个人看法。
首先,当前Python确实在人工智能领域有比较广泛的应用,但是人工智能领域也在使用其他编程语言,比如C++、Java也比较常用。
以我的课题组为例,当前智慧医疗组采用Python比较多,视觉组的同学采用C++比较多,大数据组主要采用Java和Python。
从课题的类型来说,纵向课题用Python更多一些,而横向课题用Java多一些,这与课题的侧重点不同有直接的关系。
纵向课题的重点是创新,要能够在一个点形成突破,而人工智能领域的创新往往都是以算法模型为突破口,编程语言仅仅是实现算法的工具,所以编程语言的易用性和便捷性往往更重要,而在这一方面,Python语言确实有一定的优势。
横向课题的重点是落地,要能够完成落地应用,此时性能、稳定性和安全性更为重要,而在这些方面,Java和C++往往有一定的优势,所以横向课题采用Java和C++通常会在一定程度上降低风险。
实际上,有不少人工智能领域的横向课题在初期会用Python快速完成原型开发,到后期开始落地时,往往还会采用Java重写,这里面的原因是多方面的,包括考虑到后续的升级维护问题和用户团队的技术构成。
近些年我在跟一些国内外的互联网大厂开展科研合作时,在编程语言的应用上比较偏向于采用Python,这里面有一个重要的原因,那就是大厂的技术平台支撑能力非常强大,终端往往并不需要考虑到性能问题。
相信随着更多研发场景都迁移到云端,未来会有更多的技术研发人员愿意采用Python。
从科研实践的角度来看,以我们的技术论坛为例,目前在开展一些人工智能方面的科研实践活动时,往往也会重点采用Python,包括机器学习、深度学习、强化学习、联邦学习、自然语言处理、知识图谱、计算机视觉等实践活动,所以同学们在参加论坛之后,往往都会重点学习一下Python,以便于方便后续的技术交流和实践。
论坛是开放的,感兴趣的同学可以联系我申请参与,相信一定会有所收获。
最后,如果有计算机领域相关的学习和科研等问题,欢迎与我交流。