• 技术文章 >后端开发 >Python教程

    Java相比Python3有哪些优势?

    2016-06-06 16:22:17原创631
    这些优势主要体现在哪些领域和什么样的情景?

    回复内容:

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

    这里替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岗位多,好找工作。
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:
    上一篇:为什么python代码有时候在命令行下和Python Shell中执行的结果不一样呢 ? 下一篇:python idle 解释和直接 python script.py 解释有什么差别?
    Web大前端开发直播班

    相关文章推荐

    • 详细讲解Python之Seaborn(数据可视化)• 完全掌握Python数学相关模块• Python详细解析之多线程爬虫与常见搜索算法• 完全掌握Python常用技巧之ip代理• 带你搞懂Python反序列化

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网