Java能做的事Python也都能做,但是为何(企业级)开发项目大多还是会选择Java? 是效率?

2012-09-26 00:01:28 +08:00
 tedd
且Python也是There's only one way to do it,相信多人协作代码的控制也不是问题,此外Python也能跨平台。是因为大型项目一半不用解释型语言,因为效率的考虑吗?
96446 次点击
所在节点    Python
151 条回复
skywinger
2012-09-26 00:05:25 +08:00
那是因为,那些大企业,比如像IBM等原先投入很多资金在JAVA上
powerfj
2012-09-26 00:06:25 +08:00
python做web也有呀,但是确实是太分散了,你说的There‘s only on way to do it,但是你看看python的web框架有多少..
linnchord
2012-09-26 00:11:18 +08:00
java是静态类型语言,可规范性更强;
java相关平台产品在企业开发上更成熟更系统化;
java的平台文化更适合传统意义上的企业级开发;
java运行效率目前仅次于C,相比python高出一个数量级;
ritksm
2012-09-26 00:19:27 +08:00
@linnchord 最后一条未必吧....也得看代码和场景的呗....
zenomac
2012-09-26 00:34:18 +08:00
java像正规军 便于集体培训管理 做事得需要一大帮子人 干什么的都有

python这类的语言 像刺客 像间谍, 小团队搞 甚至单干.
dimfox
2012-09-26 00:49:12 +08:00
<amp-vimeo data-videoid="39283393" layout="responsive" width="16" height="9"></amp-vimeo>Why twitter switched away from Ruby on Rail to Java.
csx163
2012-09-26 09:46:15 +08:00
java运行效率目前仅次于C,相比python高出一个数量级;

那为啥安卓这么慢,能解释一下么
BOYPT
2012-09-26 09:59:42 +08:00
java运行效率目前仅次于C,相比python高出一个数量级;

----胡说
zxwind
2012-09-26 10:02:48 +08:00
因为java有人卖解决方案
jiazhoulvke
2012-09-26 10:10:42 +08:00
@linnchord 我也不太认同最后一条,看eclipse就知道
YUCOAT
2012-09-26 10:29:16 +08:00
Java用的人多……看看Java培训结构的数量就知道了!

Java的运行速度相对Python而言要快。
cloudzhou
2012-09-26 10:29:55 +08:00
@jiazhoulvke
@csx163
@BOYPT
不能拿桌面程序特别是ui来衡量啊,这样的话linux也很“慢”,安卓之类的也是同样的道理。
java关键在于企业级支持和开源世界丰富的生态环境,效率虽然不知道是否一个数量级,但是比脚本语言高是真的。
我开发java几年了,对java是又爱又痛,最近又使用python,还开发一个网站 https://www.gitshell.com ,确实脚本语言开发起来非常惬意。现在很多人对java很有意见,其实不要有这种偏见,java是一门优秀的语言,非常适合中间件和严肃的场合,你如果深入就会发现java以及流行开源的libs都非常好,特别是NIO和多并发,现在java开发也不是ejb时代,同样有轻量方案。
clino
2012-09-26 10:35:48 +08:00
@BOYPT 我喜欢python,但是说起运行效率,java还是普遍比python强的,当然开发效率当然还是动态语言python更好了

@csx163 Android慢是因为Java慢吗?
fwee
2012-09-26 10:36:09 +08:00
@cloudzhou 优秀个P。你说的这些实际上另外的语言完全能做到。语言上来说就是一坨。这就是为什么JVM上这么多语言
cloudzhou
2012-09-26 10:44:44 +08:00
@fwee 不要激动,java的流行不是无道理的。从oo的语言历史来看的话,相当多的属性都是从java开始然后传播到其他语言,比如log4j,面向对象里面的aop,注入,注解,声明式事务,最起码来说wiki里面,这些内容java相关最多。语言上繁琐是一个问题,比如我在python可以使用 a = [i.name for i in xx],但是这是静态语言的问题,就像你不能在c语言里面这么做一样。JVM有那么多语言,这恰恰说明jvm上的优越,就是jvm设计上不单单为java服务,所以你看到jvm上可以跑多种语言,因为jvm是一种规范而已。
kernel1983
2012-09-26 10:52:11 +08:00
主流的语言中执行速度, C/C++, Java, 然后还算快的就是js那个v8

python和ruby真的不快, 但是在后端的都是并行计算, 开发效率才是关键, 不是php也可以写facebook吗?

OO这个东西在1985年已经烂大街了, 1995年出来的Java语言用这个做卖点确实算的上忽悠. 但是人家市场做的好.

不管是60年代的函数编程, 还是80年代的OOP, 都要看情况用, 无贵贱之分
cloudzhou
2012-09-26 10:54:46 +08:00
“另外的语言完全能做到”这个没什么说服力,我敢说使用.net也能给你开发一个大网站,但是我需要去找合适的mq,redis或者memcached的client lib,特别是开源的东西就没那么容易了。举个例子来说吧,我看过一些memcached clien lib的实现,在java实现里面,使用nio建立有限连接,然后网络复用服务调用者请求,而很多脚本语言框架实现很简单,就是每次请求每次都新建一个连接,用完就放弃,这个效率上相差就很大了。java相关的很多东西实现都很小心和严肃,所以是一个可靠的语言,注意,我并不是说其他不可靠,相反现在我更加喜欢脚本语言,如果现在我开发一个web网站,毫不犹豫使用python。
kevinv
2012-09-26 11:06:11 +08:00
暂且先不说执行效率的问题。java流行,人多,开发环境、框架成熟。开发风险小,解决方案多,可维护性高。
reus
2012-09-26 11:08:59 +08:00
jvm比CPython快很正常,jvm优化很多
安卓只是用了java语言,虚拟机是dalvik,跟一般的java开发所用的jvm不是同一个。而且安卓框架那么庞大,慢的瓶颈只在图形渲染策略上(4.1有所改善),跟java语言没啥关系
而且python也有jvm上的实现,jython之类的。“语言”和“实现”是不同的概念,没分清楚就来讨论是没有意义的
eclipse慢,换python写CPython跑会更慢
静态类型,vm又有jit,比python/CPython快是很正常的事,不要因为不喜欢java语言而否定jvm
csx163
2012-09-26 11:14:24 +08:00
@clino 那请问是啥呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/48721

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX