对比java和python
2011年04月18日
1.难易度而言。python远远简单于java。
2.开发速度。Python远优于java
3.运行速度。java远优于标准python,pypy和cython可以追赶java,但是两者都没有成熟到可以做项目的程度。
4.可用资源。java一抓一大把,python很少很少,尤其是中文资源。
5.稳定程度。python3和2不兼容,造成了一定程度上的混乱以及大批类库失效。java由于有企业在背后支持所以稳定的多。
6.是否开源。python从开始就是完全开源的。Java由sun开发,但现在有GUN的Openjdk可用,所以不用担心。
7.编译还是解释。两者都是解释型。
我理解,C好比手动挡车(编译型语言),java和python(解释型语言)好比自动档车。跑的最快的车都是手动档,但是对开不好的人来说,开自动档反而更快些。
Knol.google.com有一篇文章谈到选择编程语言,“先确定你的需求”,不要由语言的简单还是复杂去觉定。只有能够编写你真正认为有用的程式,才能获得满足感,学习才能继续。
那么java和python分别适用于什么样的环境呢。由sourceforge.net可以看出:
最著名,久经考验的普通应用程序,基本都是c++写的。例如emule,7-zip,WinSCP,FileZilla等等等。
一部分由java开发,例如最有名的OpenOffice。
python写的很少,如Pidgin,FireBird。
开发语言(有多少个程式由此语言开发)的排行如下:
# Java46,202
# C++36,895
# PHP30,048
# C28,075
# C#13,476
# Python13,379
# JavaScript11,285
# Perl9,216
# Unix Shell3,869
# Delphi/Kylix3,548
# Visual Basic3,186
# Visual Basic .NET
很多框架和类库也和应用软件一样在这个列表里,因此比较公平。
由此可以看出,java不管在GNU还是商业领域都是应用最广的语言。C主要用于构建系统底层。c++和java用于构建中间应用层。如果资源足够,那么会选择c++开发,以求运行速度,否则会用java开发,以求开发速度。python在各方面都比java优秀,可谓次世代语言。可最受争议的是它的速度,纯python比java慢很多,以及背后没有商业支持,稳定性备受诟病。目前为止,python在商业层次上,主要作为一种胶水语言,粘合其他语言(主要是c/c++)的类库。在GNU领域,主要局限于小规模的应用和个人化应用。以及逆向工程(黑客)应用。
为什么java在服务器端被大量应用,在客户端用的却比较少呢。难道服务器端用到的计算量反而少么。我认为这说明对比c++,java的速度还是可以接受的。无法被接受的是JRE平台,以及JRE平台启动时卡的那一会儿。我就曾经为此认为java写就的程式性能低下。
python用户常常拿来说嘴的一点是:python并不慢,因为python运行时调用了大量c库,而c是很快的。反过来想想,这正反映了其胶水语言的事实,任何一种语言都可以调用c库,这么比较有价值么?假如一个库完全由python,那么它的运行效率...不说也罢。编程不能总是用别人的库啊。
2011年04月18日
1.难易度而言。python远远简单于java。
2.开发速度。Python远优于java
3.运行速度。java远优于标准python,pypy和cython可以追赶java,但是两者都没有成熟到可以做项目的程度。
4.可用资源。java一抓一大把,python很少很少,尤其是中文资源。
5.稳定程度。python3和2不兼容,造成了一定程度上的混乱以及大批类库失效。java由于有企业在背后支持所以稳定的多。
6.是否开源。python从开始就是完全开源的。Java由sun开发,但现在有GUN的Openjdk可用,所以不用担心。
7.编译还是解释。两者都是解释型。
我理解,C好比手动挡车(编译型语言),java和python(解释型语言)好比自动档车。跑的最快的车都是手动档,但是对开不好的人来说,开自动档反而更快些。
Knol.google.com有一篇文章谈到选择编程语言,“先确定你的需求”,不要由语言的简单还是复杂去觉定。只有能够编写你真正认为有用的程式,才能获得满足感,学习才能继续。
那么java和python分别适用于什么样的环境呢。由sourceforge.net可以看出:
最著名,久经考验的普通应用程序,基本都是c++写的。例如emule,7-zip,WinSCP,FileZilla等等等。
一部分由java开发,例如最有名的OpenOffice。
python写的很少,如Pidgin,FireBird。
开发语言(有多少个程式由此语言开发)的排行如下:
# Java46,202
# C++36,895
# PHP30,048
# C28,075
# C#13,476
# Python13,379
# JavaScript11,285
# Perl9,216
# Unix Shell3,869
# Delphi/Kylix3,548
# Visual Basic3,186
# Visual Basic .NET
很多框架和类库也和应用软件一样在这个列表里,因此比较公平。
由此可以看出,java不管在GNU还是商业领域都是应用最广的语言。C主要用于构建系统底层。c++和java用于构建中间应用层。如果资源足够,那么会选择c++开发,以求运行速度,否则会用java开发,以求开发速度。python在各方面都比java优秀,可谓次世代语言。可最受争议的是它的速度,纯python比java慢很多,以及背后没有商业支持,稳定性备受诟病。目前为止,python在商业层次上,主要作为一种胶水语言,粘合其他语言(主要是c/c++)的类库。在GNU领域,主要局限于小规模的应用和个人化应用。以及逆向工程(黑客)应用。
为什么java在服务器端被大量应用,在客户端用的却比较少呢。难道服务器端用到的计算量反而少么。我认为这说明对比c++,java的速度还是可以接受的。无法被接受的是JRE平台,以及JRE平台启动时卡的那一会儿。我就曾经为此认为java写就的程式性能低下。
python用户常常拿来说嘴的一点是:python并不慢,因为python运行时调用了大量c库,而c是很快的。反过来想想,这正反映了其胶水语言的事实,任何一种语言都可以调用c库,这么比较有价值么?假如一个库完全由python,那么它的运行效率...不说也罢。编程不能总是用别人的库啊。