Home  >  Article  >  Backend Development  >  Java相比Python3有哪些优势?

Java相比Python3有哪些优势?

WBOY
WBOYOriginal
2016-06-06 16:22:171287browse

这些优势主要体现在哪些领域和什么样的情景?

回复内容:

双方都可以列出很多优点,然而这个问题太过草率了……

这里替Java说几句话:
JVM的质量远胜于 Python 的虚拟机。在JVM环境可以构建起高质量的Python解释环境,反过来不行。
Java对IDE更友好。





你要想骗Python程序员加班,得谈人生理想,谈股权,谈加班费,谈情怀。跟Java程序员谈加班,告诉他这是编程规范就好了。 没有什么谁比谁好,只有谁更适应。
java:用的人多,平台,工具,库很成熟。企业级应用比较多
python3:灵活,现在正在流行中,后台开发用它也是很快的。 可以把小项目轻而易举地写成大型项目。 Python写一些简单的脚本,小项目比较方便,迭代也快。
当项目大到一定程度java就有优势了,项目易于维护管理。


动态类型用起来方便,然而并不是很让人放心 除了500行上下的临时脚本之外,Java几乎在任何场合都比Python好
  1. 绝对性能好;又是真多线程
  2. 绝大多数Java的库都是Pure的(即纯Java字节码),可以随便部署到目标机上不用担心跑不起来。Jar格式可以自己任意合并
  3. 有JMX植入式对象监视器/控制器
  4. 强静态类型系统意味着编译器和静态检查器自动帮你写了N多测试
  5. 没有2 or 3版本大分裂(绝杀)
说Java不好的人一般都是嫌Java常见框架累赘 -- 这个完全可以用自己写的轻量框架代替。还有些人嫌某些Java IDE不Sexy,这简直是现代版买椟还珠(何况我觉得IntelliJ IDEA够好看的了) 我有个比较“激进”的观点:你要是采用面向对象方式开发软件,特别是那些规模大些的包容复杂逻辑和处理流程的软件系统,从分析、设计、再到实现,面向对象 一条线贯通下来,那就请把动态类型的诸如Python之类编程语言给忘了吧,动态语言的灵活性在这种场合,带来的不是好处是麻烦,使用Java/C#之类是更合适的选择。
举两个例子,使用面向对象思路进行软件系统的分析与设计时,一个基本的原则是:类和对象的职责一定要尽可能地明确。还有一个基本原则:找出变化点,然后封装它,让它的变化对系统其他部分的影响最小。
看到没有?为了提升系统的可维护性,我们是希望尽量地控制“可变”因素对系统所带来的影响的。既然如此,一个方法与属性可以随时添加与移除的对象,与面向对象设计原则是不是有冲突?
你非要在分析设计时想着:“哟,我用动态编程语言实现的,因此对象方法与属性是可以随时变化的,我要按照这个特点进行设计”,当然没人拦着你这么做。但做过真实商业项目的人一定有体会,那不是几个十几个类,通常是数百上千个类,彼此之间还有着复杂的关联,它们创建的对象之间的交互相当复杂,通常必须遵循一堆的业务规则,就算是基于相对稳定的静态的类进行分析设计,己经够头大了,你再来几条“动态”的“变色龙”搅在里头,那滋味,自己体会吧! 这话反过来问估计会比较容易 两者的适用面都非常广。都算是万金油型的,只要你敢想,就可以用。。
当然java各种开发库更多。话说,python 91年就出来了,比java和Php都要早。。现在才熬出头。。我一直以为它是一个比较新的语言来着。。

然后,大项目开发上,java更合适。甚至,如果是不是那种密集计算型的,是比c++要好的。
因为java开发效率虽然比不上python。。
但两者是可以一起鄙视c++的。
所以对于创业公司来说,c++在前期是完全不用考虑的,什么时候用?用户千万级别。不过大部分活不到哪个时候就跪了。。所以,Python和java是创业公司不错的选择。

然后,java更适合大项目,是因为java在中期,用户在百万级别左右,但是千万不到。。发现并发,内存各种不够,但好像优化一把也可以用的时候。。
虽然用Python可以拓展c,但终究还是麻烦。
这个时候,jvm的强大之处就出现了。可以各种优化,找个熟悉jvm的人,优化效率就能提升不少。

大点的项目,都是选c++或者java为主,然后Python或者lua做边角料,缝缝补补。。 用java写了个程序爬点小资料,扩展的时候听说python不错,就想拿来试试。
结果写了三天了,控制台还没打出中文来,据说是beautifulsoup的问题 java岗位多,好找工作。
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn