转自:微点阅读 http://www.weidianyuedu.com
好多初学编程的小伙伴在问:“Python和Java到底有什么区别?到底是学Python还是Java。“
一副惆怅的样子,难以下手。
今天,给大家总结了关于两者的十二点区别。
一、实话实话,Python虚拟机没有java强,java虚拟机是java的核心
Python的核心是可以很方便地使用c语言函数或c++库。
二、Python是全动态性的
可以在运行时自己修改自己的代码,java只能通过变通方法实现。
Python的变量是动态的,而java的变量是静态的,需要事先声明,所以java ide的代码提示功能优于Python ide。
三、设计思想
Python的产生几十年了,几十年前面向过程是主流,所以用Python有好多程序用的是面向过程设计方法,很多概念从c语言过来的,class在Python中是后加入的,而java是为了实现没有指针的c++(当年com组件用的引用记数,java用的虚拟机),主要采用面向对象的设计方法,很多概念是oop的概念。
面向过程,相对简洁直观,但容易设计出面条程序,面向对象,相对抽象优雅,但容易过度抽象。
四、在实际使用的Python入门简单
但要学会用Python干活,需要再学习Python各种库,Python的强大在于库,为什么Python的库强大,原因是python的库可以用python,c语言,c++等设计,再提供给python使用。
所以无论gpu运行,神经网络,智能算法,数据分析,图像处理,科学计算,各式各样的库在等着你用。
而java没有Python那么多的开源库,很多库是商业公司内部使用,或发布出来只是一个jar包,看不到原始代码。
Python虚拟机因为编译性没有java的支持的好(或者说故意这么设计的),一般直接使用源码(linux),或源码简单打个包(如pyexe)。
五、Python有很多虚拟机实现
如cython,Pyston,pypy,jython, IronPython等等,适合用于业务语言,或插件语言,或面向领域语言,而java因为虚拟机巨大,很少用于插件语言,发布也不方便。
六、java主要用于商业逻辑强的领域
如商城系统,erp,oa,金融,保险等传统数据库事务领域,通过类似ssh框架事务代码,对商业数据库,如oralce,db2,sql server等支持较好,软件工程理念较强,适合软件工程师的多人开发模式。
Python主要用于web数据分析,科学计算,金融分析,信号分析,图像算法,数学计算,统计分析,算法建模,服务器运维,自动化操作,快速开发理念强,适合快速开发团队或个人敏捷模式。
七、java的商业化公司支持多
如sap,oracle,ibm等,有商业化的容器,中间件,企业框架ejb。python的开源组织支持多,如qt,linux,google,很多开源程序都支持python, 如pyqt,redis,spark等。
八、Python用途最多的是脚本,java用途最多的是web
Python是胶水,可以把各类不相关的东西粘在一起用,java是基佬,可以通过软件工程组成几百个人的团队和你pk,商业化气息重。
不过我认为还是Python强大,因为可以方便调用c或c++的库,但软件工程和商业化运作没有java好,适合快捷开发。
九、关于钱
如果你想写程序卖软件用java,可用上ibm服务器,上oracle数据库,上EMC存储,价格高,商业采购公司喜欢这种高大上。
如果你要直接用程序生成金钱用Python,Python可以实现宽客金融,数据回测,炒股,炒期权,炒黄金,炒比特币,对冲套利,统计套利,有很多开源库,数据分析库,机器学习库可以参考。
十、java和Python,都可以运行于linux操作系统
但很多linux可以原生支持Python,java需要自行安装。
Java和Python强于c#的原因大于支持linux,支持osx,支持unix,支持arm。java和python比c++受欢迎的原因在于不需要指针。
十一、对于移动互联网
Python只能通过运行库运行于安卓或ios,java原生支持安卓开发,但不能用ios中。
十二、对于大数据
Hadoop用Java开发的, Spark用Scala开发,Scala基于JVM,Flink也是基于Java.大数据开发选Java,Python主要用于大数据分析。