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

2012-09-26 00:01:28 +08:00
 tedd
且Python也是There's only one way to do it,相信多人协作代码的控制也不是问题,此外Python也能跨平台。是因为大型项目一半不用解释型语言,因为效率的考虑吗?
96567 次点击
所在节点    Python
151 条回复
bwlinux
2012-09-26 21:56:01 +08:00
java已经建成了很大的生态链。很多大公司都是靠java吃饭。
套进去的,就出不来了。继续用。
bitsmix
2012-09-26 21:59:25 +08:00
RT@werty "...相对Java,精通的人Python很少;..."
Kymair
2012-09-26 22:26:46 +08:00
@jamiesun 我说的是JetBrains系列的IDE起码是用Java写的,各方面都经受住了考验,Guido van Rossum也是用的PyCharm。
你关注的Python东西,就是值得期待,或者不破不立;其他语言的,就是叫好不好座,就是“探索性的东西”,流行度不够 =_=... 双重标准太明显了
Ricepig
2012-09-26 23:26:18 +08:00
@cloudzhou "注解,声明式事务"是从java开始?C#表示内牛满面啊!
Ricepig
2012-09-26 23:27:21 +08:00
@cloudzhou 此外a = [i.name for i in xx]这种在java里暂时不支持也不是静态语言的问题,参见LINQ
Ricepig
2012-09-26 23:41:22 +08:00
我认为主要的问题就在于没有大公司支持。

Python虽然Google内部支持,但是并没有特别有力的工具释放出来,可能性有两个,一、Google只拿Python做脚本,并不用它来构建应用程序。二、Google雪藏了自己的大杀器。

而Java由于有巨型商用软件支持,因此无论是编译器、运行环境还是类库,都是有质量保证的。这和Python,Ruby这类语言差异很大。

说得极端一点,Python,Ruby这些都是游击队,小而灵活,必须有杀手锏否则就活不下去了。我相信一旦有大厂支持以后,它们也能成为正规军,前途无可限量。但是就现在的情况来说,还是java吧。

再举个栗子,JIT,这种对性能提升很大而广受支持的东西,到了Ruby,Python这里,直到现在还未见成熟~~~

另一个原因,Java已经成为企业开发的common interface了,这个很重要。保不齐什么时候就需要第三方组件、需要系统对接了。碰到小众语言就完蛋了。
skywinger
2012-09-27 00:01:11 +08:00
动态语言谈性能,都很可笑,真要比性能,任何高级编程语言都比不过c,这也就是为啥c语言历久而不衰的原因。
其实c语言也是在不断地更新变化的,目前最新的gnu c的特性也越来越多了。
java语言其实就是对性能的妥协,相对C++而言,java的开发效率提高了很多,真正能够做到了让广泛的程序员熟悉掌握,并用于团队协同开发大型商业系统。这个就是Java语言流行的真正原因。
这么看来真正比较失败及尴尬的语言是C++,特性太多,太复杂了。
Mr_Vangogh
2012-09-27 00:30:04 +08:00
IE 6这么烂,万人骂,为什么份额还这么高呢?感觉是一样的道理,由企业市场的特性决定的。
jamiesun
2012-09-27 00:46:36 +08:00
Guido 大多时间用的是emacs,不要看见提交了几次代码就认定是PyCharm,作为python发明者,关注一下pythonide是很自然的,但显然Guido并不只是只写python,在一次email采访中他提到自己常用的是emacs。

java在gui发展最好的是eclipse rcp,如各种报表系统,mis类系统。

java在新版本里加入各种语法糖不过是取巧讨好程序员罢了,实际反而弄得复杂混乱。那个神马泛型编程自动装箱拆箱就是饱受争议的例子。

python最缺的商业驱动。

从语言上讲,java优势过度夸大,比如对中小企业,java就是泥潭,所谓商业支持不等于保证质量,质量在于你的管理。

而python优势常被人忽略,缺陷被放大,比如性能,比如gil

说起gil,很多人认为python在并发方面难有建树,python的协程模型已经证明了单线程的高并发能力,通过多进程模式,并发根本不是问题,相反java常用的多线程模型在多核利用上并没有太大优势。

对于计算密集型的应用,python可以通过C语言的扩展来发挥优势。

python最让人为之神往的是效率,投入比java团队少得多的成本获得更好的产出,一旦换作java,必将大动干戈。


大多数java程序员观念是非常顽固的,很难说服,没有几个人相信用一个编辑器能完成一个项目,他们不相信少了ide还能写代码发布项目,如果他试探性的学习一下,第一件事是打听用什么ide好。一个快捷键生成一坨坨get/set这就是他们认为的高效率。我身边7,8个java程序员,我和他们在一起工作的几年,我一直悄悄的用python。

如果还是只停留在脚本的认知程度,那你只好继续深陷java的泥潭而浑然不觉。

你觉得商业驱动不够而置之不理,你可以说苦逼程序员要随主流,不然怎么混饭吃,这么想也没错。
luckyduck
2012-09-27 01:11:47 +08:00
①在国内互联网开发用Python的普及率都不及Java,更何况那些对技术选型相对保守的企业级开发?

②Android的慢很明显与Java无关,因为Android开发只不过借用了Java的语法规范,它用的JVM是Dalvik,而Java常用的则是HotSpot,更何况现在的Android真心不慢了,毕竟任何技术都有个成长期。

③Python的确要比Java慢,内存利用率,多线程,I/O等方面都很明显,还有就是JVM把.class解释成机器码时,要比PVM解释.pyc时,优化得更好,整个Rumtime更加高效稳健。

最后还有一篇老文,估计很多人也都看过。
http://www.csdn.net/article/2009-11-16/273155-214803
darasion
2012-09-27 02:12:49 +08:00
从根源上讲,就是 java 里边投的钱太多了。
什么运行效率什么特性什么标准化什么企业级支持什么什么..... 之类的,都是从根源里边一生二、二生三、三生万物.... 出来的..
liuxurong
2012-09-27 09:44:54 +08:00
Python很好。

JAVA属于浪费生命的产物。
RisingV
2012-09-27 10:03:51 +08:00
知道当年java的受欢迎程度吗?sun的销售只要说带java,基本不用费口舌,机器就直接卖出去了。

最害怕的就是拍脑瓜下结论的,一两点微不足道的论据,就下结论;或者连论据都没有,直接下结论。这样的人不适合做技术,对于他做的东西我相信也无法安心让人使用。


小型和IO密集的场景,python可能是更明智的选择。java有效率上的优势,对于支撑大的业务系统,java有丰富成熟而又稳定的中间件,而且更加软件工程友好。

不想为这样的问题,多费笔墨。也请发言的人多为自己的言论负责任,别误导别人。

世上鲜有错的技术,多的是不会正确使用技术的人。
cloudzhou
2012-09-27 10:18:19 +08:00
@liuxurong
看看,其实我最反对的就是这样的言论,对参与者来说一点价值都没有,完全口水贴。
ysong
2012-09-27 11:44:59 +08:00
大家都容易结果导向 ,并将其标为“根本原因”,这是本末倒置。
jamiesun
2012-09-27 11:49:17 +08:00
java程序员总是跳不出“天朝唯我独尊”的怪思想。

各位看官若有自己的想法,根本不会被误导,被误导的都是那些被表象牵着鼻子走的人。

在商业的博弈中,sun已经倒下去了,还拿sun来说事。在整个商业大潮流中,java不过是厂商们博弈的工具而已,那些流水线上java程序员不过是一颗颗小棋子,我敢断定百分之80的java程序员都在流水线上作业,毫无趣味,虽然混的一日三顿全家温饱,但是毫无趣味,浪费生命。要赚钱,早日改行才是正确的选择。java的优势那是对厂商大鳄们的恩赐,不是给程序员的礼物。还在扯性能有意思吗?

小公司学大公司 整自己的java开发框架平台,那是最傻不过的事情了,不知道有多少公司乐此不疲。

python还有一个不同于java的是python是自由开放的,python有一些商业大佬们不喜欢的因素。但是对于程序员绝对是最好的恩赐。“人生苦短,我用python”是有其渊源的。


当然ruby也是很好的。
bulldozer
2012-09-27 12:16:08 +08:00
java沦为鄙视路径最右端了么?“哈哈,你们也有今日!”
khotyn
2012-09-27 12:27:32 +08:00
我看到的程序员里面倒是 Python 的程序员总是带着一种莫名其妙的优越感,他们会人云亦云地去鄙视搞 Java 的程序员;倒是 Java 程序员心胸比较开阔,比较会去包容,接受各种语言的优缺点,为自己所用。
khotyn
2012-09-27 12:29:47 +08:00
在上条的 Python 之前加上有一些~~,有些 Python 程序员还是非常不错的。
newtonisaac
2012-09-27 12:31:06 +08:00
go..............................

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

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

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

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

© 2021 V2EX