Chinaunix

标题: Java死气沉沉,Python生机不断 [打印本页]

作者: ziggler    时间: 2008-12-19 09:36
标题: Java死气沉沉,Python生机不断
Java死气沉沉,Python生机不断
[收藏此页] [打印]
-- Python生机不断
作者:csdn  2008-12-18


  【IT168 资讯】

  Python的Version 3.0已经发布。Notably Python又做了一些Java一直很反对的事情:打破了与Python 2.x的向后兼容(Backwards compatibility),Notable修改了一个更加理智的基于Unicode的字符串处理模型。Pythonista的同仁告诉我很多其他不合理的东西如print operator也已经清除。尽管如此,我还是不建议所有的Python开发者立马升级(version 2.x仍将在接下来的几年中得到支持。)version 3.0显然是一个比version 2.x更加简单、更加优秀和合理的编程语言,这将提高开发者的效率并让他们的工作更加富有乐趣。显然,Python是一个充满生机的、不断进步的语言。

  相比较而言,Java则死气沉沉。像Python 2.x 一样,它也包含许多不合理和错误设计的地方(或许Java更多),但Sun一直拼死反对做任何事情来修补这些众所周知的问题。相反,在过去的12年里Sun不但不给这个脏兮兮的家伙洗澡刷牙,却对它喷香水、抹唇膏。(意指Sun不但不修补这些问题,还纵之任之)

  对version 1.4的Java而言,向后兼容(Backwards compatibility)是一个利于维护很有用的功能,但在Java 5 中,当泛化(generics)和自动装箱机制(Autoboxing)改变了语言的核心时,向后兼容(Backwards compatibility)彻底地出现问题。自动装箱机制(Autoboxing)是一个错误的选择,它试图掩盖住Java早期对原始(primitives)和对象(objects)采用隔离的类系统(type system)的决定。那是Java的Plessy v. Ferguson决定,原始(primitives)和对象(objects)是独立但等同的。一个独立的原始类型系统(primitive type system)在1995年的时候很有意义,那时CPU缓慢而且虚拟机技术并不先进。现在原始类型除了将编程语言更加复杂化之外,别无他处。

  泛化(generics)是另一个例子:在这儿向后兼容(Backwards compatibility)出了个好主意,最后却变成恐怖的东西。多线程设计(Multiple design)能够使代码运行在老的VM上,也即著名的类型擦除(type erasure)。最后,不管怎样,二进制兼容破碎。然而,如果他们不担心落后的二进制兼容而重新设计,没有人考虑泛化(generics)多么简单有力。

  闭包(Closures)如果现在加入,只会将形式更加恶化。当且仅当在Java同时移除内部类(inner classes)并做出所有的语法改变来支持真正的闭包(Closures)时,闭包(Closures)对语言而言才是好的特性。同样的,新的特性不能够添加到现有的羸弱基础之上,除非我们回到语言设计的初期从头设计。

  我无法想到还有像Java一样老的主流语言并试图维护version 1.0的兼容性,实际上,我能想到的有C#,但C#年龄只有Java的一半。除非我们做出艰难的抉择,并像Python一样摒弃那些传统,否则Java将注定将像C++和Cobol一样:留着长长的白胡子的开发者工具,自编程语言之初就存在并其后不断发展添加,花大量时间用在维护十年前的代码上。与此同时,新一代的开发者将因为更加现代的语言如Python而抛弃Java,就如同当年我们为了Java抛弃C++一样。

  承认存在问题只是解决问题的第一步,但Java甚至都没有承认他有问题。这个语言很大,很复杂•-。在单核奔腾2、100Mhz处理器和32位存储空间实用的东西,现在已经远远落伍。向后兼容(Backwards compatibility)已经成为缠绕在Java脚上的沉重枷锁。除非摘掉这个枷锁、更正以前的错误,Java和我们才能迈步向前。

  很难相信,五年前我就发出了这样的声音,然而至今仍然没有任何改变,而且事实反而更加糟糕。看看C++当年被Java替代的历史,也许Java也败局已定,是时候有新的语言来取代这个语言了?

http://publish.itpub.net/a2008/1218/260/000000260669.shtml
作者: james.liu    时间: 2008-12-19 15:17
爱用啥就用啥
作者: machine    时间: 2008-12-19 15:42
这文章的说法有一定的片面性啊,Python年轻所以抛弃很多东西可以无障碍的实行,java可不是这样,这些年积累的大量的共享库,开源组件,所以大的不兼容的变革几乎不可能啊
作者: starxing    时间: 2008-12-19 15:47
原帖由 james.liu 于 2008-12-19 15:17 发表
爱用啥就用啥

支持。
作者: bzl2121    时间: 2008-12-20 18:02
标题: 一专多能吧
一专多能吧,靠一个东西吃饭总有下岗的时候
作者: realmon    时间: 2008-12-21 20:31
其实,python出现比java早.
现在还是非主流,也算比较可怜的语言.
作者: sgxiao    时间: 2008-12-25 16:10
这篇文章翻译得很差。。。
作者: ASEE    时间: 2009-01-19 17:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiaoyu9805119    时间: 2009-01-19 17:42
大家都去py版把。。(*^__^*) 嘻嘻……
作者: iwlk    时间: 2009-09-15 22:42
其实,python出现比java早.
现在还是非主流,也算比较可怜的语言.

--------------------

嗯。  这说明python 有致命的却点.
作者: nrzhong    时间: 2009-09-24 10:39
给你五万/月要你做pb你会做不?
作者: yulihua49    时间: 2009-10-06 20:29
原帖由 ziggler 于 2008-12-19 09:36 发表
Java死气沉沉,Python生机不断
[收藏此页] [打印]
-- Python生机不断
作者:csdn  2008-12-18


  【IT168 资讯】

  Python的Version 3.0已经发布。Notably Python又做了一些Java一直很反对的事情: ...

无论JAVA还是Python,玩具而已。五十步笑一百步。
玩玩相控阵雷达,玩玩制导,我比你快1ms,你就死定了。那时候,谁玩你们那些劳什子?
作者: r111ddb    时间: 2009-10-08 11:11
java高手没到这来呗了
作者: isaacxu    时间: 2012-07-01 03:03
本帖最后由 isaacxu 于 2012-07-01 03:27 编辑

回复 12# yulihua49
其实,google一下“java developer afb”会发现美空军对java程序员的需求是比较大的,基本上每个空军基地都会配备java程序员。附图是波音开发的美军 未来战斗系统的架构图。需要说明的是F22使用的编程语言是Ada,F35使用的是Ada,汇编,C和C++。


   
作者: 方兆国    时间: 2012-07-01 13:39
回复 4# starxing


    你的签名中的那个小乌龟是用来鉴定是否有ipv6的那个小乌龟么
作者: 方兆国    时间: 2012-07-01 13:42
ziggler 发表于 2008-12-19 09:36
Java死气沉沉,Python生机不断
[收藏此页] [打印]
-- Python生机不断


其实我也感觉有些兼容是没有意义的.还不如划分为两个版本,一个古典版,一个潮流版.因为不是每一个人都会用到老的程序的.速度和性能才是王道
作者: _Rayx    时间: 2012-07-03 20:17
python上哪找这么多库框架来用啊?
作者: 方兆国    时间: 2012-07-04 11:11
怎么没人再java'版发帖呢?我还是每天一贴,顶一下吧
作者: 方兆国    时间: 2012-07-04 11:12
回复 10# iwlk


    我感觉还是java好
作者: goldenfort    时间: 2012-07-06 18:13
回复 19# 方兆国


    用python 开发程序,保密性太次,很容易反编译。

作者: babyblue_993    时间: 2012-07-08 22:45
其实Java也存在这个问题哦
回复 21# goldenfort


   
作者: pitonas    时间: 2012-07-13 09:31
尽管如此,我还是不建议Python
作者: sxtylhg    时间: 2012-07-18 15:13
嗯,也许是船小好调头的缘故。
作者: dyllove98    时间: 2012-07-23 19:03
谁说java死气沉沉了.............
作者: s0z0y    时间: 2012-08-04 22:43
sun入oracle之后,java现在确实在走下坡路。tomcat是基于java的一个容器,就存在很多问题。

【转】
笔者应用tomcat从3.1开始,已经有10来年了。那时候tomcat刚刚并入apache基金会,出于apache影响力,在产品中选用了tomcat作为webmail服务。有几年,每天都跟tomcat打交到,只是最近几年才将tomcat抛弃不用。回顾用tomcat的历程,犹如一场梦魇,随着对tomcat彻底从产品铲除而结束。

Tomcat致命的缺陷有如下几个,相信用tomcat做过实际应用的都碰到过:

①        假死。高并发量的项目中,很容易造成内存不足而Tomcat没有任何征兆就自动停止。这种情况好多网友叫“假死”,网上可以搜到大量事例说明tomcat假死的状况,在实际应用还是比较普遍存在的:http://t.cn/zWaEyoS
②        内存溢出。java.lang.OutOfMemoryError 。相信真正用过tomcat的人都碰到过。网上可以搜到大量事例:http://t.cn/zWaEJnk

网上大量的资料说设置SET JAVA_OPTS=-Xms64m –Xmx1024m ,但笔者试过各种硬件环境下,各种操作系统下,基本没什么效果。Tomcat是常驻内存的,要想做到内存完全回收,零消耗那是绝无可能。假如tomcat每次消耗2k,1个100人的企业,每人每天邮件收发点击20次页面,2k*20*100 = 4M,默认设置的虚拟机内存只需要1周左右就会耗光了,这时候tomcat就会停止响应,出现假死现象,需要重启才能解决。您或许加大内存,即使再大,那也毕竟是有限的。严重的情况每天都需要重启,更有甚者,用户多的时候每个小时都需要重启。网上又有大量资料介绍如何定时重启,http://t.cn/zWaEjFi 。一个系统需要重启才能维持运行,觉得这是一种无奈和悲哀。

用tomcat做办公OA应用也许是个不错的选择,OA毕竟在内网用的多,另外OA没有邮件那么消耗内存。用tomcat做webmail绝对是一场噩梦。如果你有坚强的体力和精力,能够随时在睡梦中一跃而起,或者在休假的时候能随时打开笔记本登录到服务器上重启,您可以尝试用tomcat  JSP的做的webmail,一定会对您的减肥有帮助。


作者: _Rayx    时间: 2012-08-05 18:22
再怎么死气,也死不了。python死不死还真不一定。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2