Python 相比 Java的优势是什么?缺点又是什么?
程序员文章站
2022-04-13 10:53:13
...
回复内容:
了解的不全,抛个砖等大神吧。优点:
1. Python作为动态语言更适合初学编程者。Python可以让初学者把精力集中在编程对象和思维方法上,而不用去担心语法、类型等等外在因素。而Python清晰简洁的语法也使得它调试起来比Java简单的多。至于哪个更“优雅”纯属个人喜好,但对于初学编程的人Python更直观应该没什么异议。
2. Python有一些Java没有的强大的架构2.1. Advanced Python Constructs,可以表达非常复杂的Logic
3. Python有非常强大的支持异步的框架如Eventlet Networking Library,而据我所知Java要实现这些功能要麻烦的多。也因此Python适合一些可扩展的后台应用。(但除此以外Python可扩展性是不如Java的)
2. Python作为脚本语言,更适合开发小的应用,而且极其适合在应用发展初期时用来做原型
缺点:
1. 由于Python的优点也无可避免会有牺牲------由于是动态语言,比Java还慢。你可以想象一下编译器对于没有typing的变量,需要一个一个check具体type所耗得时间。而Java相比起C++等等本来就不快,可想而知更慢的效果... 但很多人觉得Python code更短小精悍,所以实际跑起来不见得比Java耗时。
2. Java很适合发展跨平台应用,几乎常见的电脑、智能机都能跑Java。而Python就不一样了...
关于他们的异同可参考Python vs Java: Key Differences
说得不对的地方请大家指出 :) 多范型 怎么写都行 -
为了回报题主的感谢,我想再多说一点。我也只是刚刚入门不久,只能给不太了解的人一点简单的信息。
Python有着跟C/C++相似的基本语法,比如逻辑结构上有判断,循环,数据结构上有更灵活的列表、字典,也有面向对象方面的类。在这些基本的方面,Python都比C++/Java 更灵活,易理解,给人的感觉就是作者在发明Python时应该是受够了C++/Java中一些别扭、冗余的规范。由于没有各种条条框框,Python在做一些简单的数据处理的时候很方便,跟MATLAB很像。
Python另外一个强大的地方就是各种各样的库(module),这些库功能强大到你感觉你用他们写代码似乎没有技术含量一样。比如你想把一些网页上的数据抓取下来,保存成符合要求的格式,只需要利用urllib.request库写5行左右代码把网页抓取下来,然后再利用beautifulsoup库用10行左右的代码把网页里的数据解析成一定的格式。而这只是Python应用的一个小方面。
-
欢迎各种赐教和讨论。 写着爽. 很直观的感觉是,python写出来的代码,每一行的平均长度往往比java少。 Python开源,收费困难 优点:没有Java流行
缺点:没有多大存在感的语言 我觉得缺点是:
1、Python有点慢,似乎CPython(官方实现)没有开发JIT解释器的计划。现在有个PyPy项目做的就是这件事,进度不错,值得期待。
当然,Python快点慢点这个真没什么重要的,Python主打的特性不是这个。需要更快、更小的动态语言可以选择Lua。
2、很容易被反编译。公开的商业项目用之前可能要掂量掂量……
3、类库命名风格不统一,随意性大。 不说缺点了,两者都是好语言,随便说下优点吧(其实缺点也可以从各自优点里体味得到,另外本人小白,如果说错请指正)
Java的优点:
1.将JDK和Java虚拟机分离,JDK就是用Java写的,而Java虚拟机则是用C/C++编写,开发者不需要花很大的功夫就能理解它的来龙去脉;
2.跨平台:一次编译,到处运行;
3.静态语言,速度快~
Python的优点:
1.接口简单,对初学者上手应用很容易上手,开发效率高;
2.应用领域广,什么都能干~ 优势:写的爽。平均行长度和平均行数都小得多,表达能力以五到十倍计。
劣势:没有编译器检查,没有足够强大的 IDE 支持,蠢人写不来。
某司内训格言:随便抓一个本科生,培训三个星期 Java 就可以进项目了。
推荐阅读
-
java语言的主要特点是什么(python与java的区别)
-
java语言的主要特点是什么(python与java的区别)
-
曹操和袁绍相比 如果汉献帝是在袁绍的管控下又是什么下场
-
谁影响了澶渊之盟的走向?又是什么武器让宋朝占了优势?
-
相比于其他王朝相比 宋朝在历史上的地位又是什么样的
-
使用 Python、Perl、PHP、Ruby 等脚本语言开发 Web 程序,跟使用 Java 开发 Web 程序相比有什么优势?
-
曹操和袁绍相比 如果汉献帝是在袁绍的管控下又是什么下场
-
国内很多基于python的网站开始招聘java工程师,原因是什么?
-
关于python中“赋值就是建立一个对象的引用”,大家怎么看?Python一切皆为对象又是什么意思?
-
国内很多基于python的网站开始招聘java工程师,原因是什么?