@守护石AI:我们来对比一下编程语言,看看到底是学Java,还是去用Python?
编程语言分为三大阵营,一类属于标准技术委员会维护,例如C/C++,第二类就是商业公司作为主要维护者或贡献给开源社区分支,例如Java、C#、Go,第三类就是开源社区的作者创造并由社区贡献者来维护,Python就是如此。
这三类编程语言的区别就是灵活性和更新速度(内置特性和标准库功能),标准委员会最慢但标准库的地位极高,那么大家学习语言和库的共识就极为稳定,更多问题在于语言和库考虑太全面,学起来很吃力。
商业公司会定期对SDK的发行版迭代,尤其像Java,这样核心比较稳定,第三方开源库可以围绕着商业公司的发行版定期维护升级,就是为什么数年来大家都要根据不断升级的SDK版本不断学习新的特性与适配新库。
社区做事风格和前两者不同,他们的灵活性很高,参与者变化有时候较大,有些团队很稳定,说不准,例如像Python之父说退休也就退了,这对于社区是常态,但总有新的贡献者加入团队,这种开放性就使得语言一旦流行起来整个生态迭代的效率非常高,最关键社区的特色就是实用,就是为了解决问题,而不是像专家委员会一样对语言反复嚼碎的研究。
那么Python学起来就很容易,大家都是为了实用,往往底层实现细节都被语言或SDK自带库一层层封装掉了。但社区做事容易形成版本碎片,例如Python2还是3,就让很多人纠结,更不用说各种第三方库了!
因此从组织体系、不同文化和做事风格上你就能看得出来,小而精的事情最适合C/C++;反之规模化,工程化特征明显的事情Java,C#,Go这些有稳定周期的商业化支撑就很合适;怕麻烦,就想快速解决问题的人或业务就特别适合社区的产物—Python。
因此也就有了底层系统,通讯系统,高性应用非常适合C/C++,另外C++的面向对象设计可以承担更具有工程化特点的应用,例如云平台基础设施或游戏开发。
而Web大型应用,大数据系统,OA,ERP等等这些上规模的工程系统就必须Java,C#了,Go在云端和大数据框架方面则兼备了性能与工程规模化。
对于运维过程最需要的就是快速运行解决问题的脚本,那么Python;对于黑客瞅准机会快速搞个脚本试探效果,那么Python;对于数据科学家突然在数据水池中抓住一个线头,必须马上找到对应的AI库去实验自己的新想法,那么Python,对于财务人员快速写个查询统计脚本并生成Excel,那么Python。
- 复制链接
- 举报