• 11712阅读
  • 3回复

【转载】Java在中国 十年栽树 何年歇凉(很有意思的,大家多看看) [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2005-09-09
原文见:http://www.linuxaid.com.cn/infos/4/9/495731488.shtml

国外芳菲尽 国内始盛开

  如果我们随便在北京街头拉住一个用手机的人问,是否知道彩信?应该所有人都会说知道;但是如果我们再问,知不知道Java技术?能够回答上来的人就非常稀少——事实上,彩信业务正是采用了这一并不为普通人熟知的Java技术。正像很多Java技术人员一再强调的那样——Java就在你身边,并且无处不在。

  从全球来看,有关Java的故事可谓充满传奇,比如那些不可思议的成功,比如失之交臂的良机,还有更多纠缠不清的官司。十年来,Java编程语言及平台已经成功地应用在网络计算及移动等各应用领域,比如移动电话、个人电脑、跨国金融系统和卫星通信等。历史上从没有过像Java这样能够如此广泛地被应用的平台,目前全球Java经济价值已经超过1200亿美元。当初Sun公司推出Java时提出的口号是:“编写一次,到处运行”。十年来,Java 的跨平台和开放特性已经得到公认,此外,Java语言还具有面向对象、类似于C和C++的表达语法、良好的安全性等优秀特性,在许多方面成为Cobol和 C++等语言的继任者,受到全球开发人员的青睐,并已成为企业级应用的首选开发平台。就在今年7月份, IBM与Sun 刚刚宣布将两家公司签署的Java技术协议延长10年,目标是为全球Java团体中的将近400万开发人员提供长期稳定性保证。BEA公司也宣布了一个一揽子计划,开发业界首个全面支持各种主要开源框架的J2EE应用环境。这些举措都肯定了跨平台Java兼容性的价值和必要性。

  而在中国市场,Java无论在企业级应用,还是在面向大众的服务方面都取得了不少进展,尤其在中国的电信、金融等关键性业务中发挥着举足轻重的作用。目前,在中国政府有关部门的支持下,中国移动和中国联通已经正式推出基于Java的无线增值服务,并在积极准备基于Java的3G增值服务。在 Java Card方面,Sun公司与中国银联共同建立了Java Card联合实验室,从技术到方案进行全面合作。此外,很多业内公司也以Java的标准体系为基础开发了相当多的应用软件,比如用友公司从1998年开始在Java上进行开发。目前,用友的ERP 5正在研发中,明年即将推出。但是如果在全球范围内进行横向比较的话,我们只能说,中国Java似乎从来没有吸引过足够多的目光。

  “Java的发展如同火箭升空,当初没有人会想到它能飞这么远”,Sun总裁兼首席运营官Jonathan Schwartz曾在Java十周年庆典上这样说。然而,我们在欢庆之余,应该注意的是,对照国内外Java的发展,我们似乎看到一个“国外芳菲尽,国内始盛开”的局面。就在2005 Java中国开发者大会召开前不久,Sun中国工程研究院院长宫力转任微软互联网技术部(中国区)总经理,作为Java在中国最具代表性的人物之一,他的出走或许从一个侧面显露了中国Java发展之路上的一丝阴霾。
Java易得 一将难求

  Sun大中华区软件、ISV和Java业务总监黄震认为,Java入门容易,但是精通不易。这就好像会画中国画的人不少,业余爱好者很多,但真正能够成为画家的很少。而在中国的Java人才,似乎不只是精通者不够多,真正愿意学习运用Java语言的爱好者数量也不容乐观。

  小李是北京某高校计算机系研究生,对Java技术研习颇深,一度担任该校BBS论坛Java技术讨论版的版主。但他表示,他并不准备去考Java认证(即Java开发者资格认证考试),原因是他不想交那个1500元钱的认证费。

  事实上,在全国范围内像小李这样能够运用Java但是没有得到认证的技术人员并不少。这种情形造成今天我们在统计国内Java开发者数量的时候总是不够精确。数据显示,今年全球Java开发者达到了450万,而在中国,这个数字只有10万不到。对此,有“中国Java之父”之称的清华大学计算机系教授王克宏表示,如果真正把统计范围严格界定在“开发者”上的话(即便把像小李那样未取得认证的技术人员考虑进去),中国真正的Java开发者或许也仅有5万人左右。这与中国这个拥有13亿人口的大国地位以及Java的巨大市场潜力相比,是极其不相称的。

  那么,为什么中国的Java开发者如此之少呢?

  王克宏教授是国内最早关注Java、同时也是能够坚持至今的专家之一。他表示,从总体情况看,Java在中国并不被“学院派”看好,比如直到现在,北京大学计算机系仍然没有系统地教授Java课程。从全国来看,500多所高等学校的计算机系也只有不到一半在开设Java 课程。

  但是,在Java1995年刚刚出世的时候,它在中国的情形并非如此。王克宏教授形容当时科技人员对Java可谓“穷追不舍”,甚至在全国掀起了一个“学Java、用Java、推广Java”的热潮,全国性的Java 技术交流会陆陆续续也开了7届。当时,《网络世界》报社(当时名为《国际电子报》)曾经举办了Java技术讲座连载和一次全国性的Java大赛。从那时起,王克宏教授等人发表了一系列的技术文章来推动Java在中国的发展。

  然而,就在几年之后,当年参加Java大赛的很多人却都远离了Java。王克宏教授认为那些人之所以选择放弃,大多出于三种原因,一是因为 2000年的网络泡沫;二是嫌弃Java速度不够快(当然,今天Java的开发速度和运行速度已经有了质的飞跃),三是因为总是看不到有说服力的实用案例。至今,甚至也有人偏激得认为Java不过是一种“玩具”而已。

  王克宏教授表示,国内 Java与国外相比,除了人数较少之外,其差距还表现在: 能开出高档的Java课程(如J2EE, Web Services)的培训单位并不多, 难以满足培训高级Java人才的需要。其次,媒体对Java的宣传报道力度还不够强,这就制约了Java技术在中国的发展。

  当然,在中国的Java人才数量上,也存在不同意见。Sun中国公司负责Java网上社区的高级技术社区经理蒋清野说,目前中国Java的相关社区可谓蓬勃发展,比如CSDN、Java Research、水木社区的Java版等,其中,规模最大的Java社区是Sun中国技术社区,其注册用户已经达到16万;CSDN的注册数达到80 万,其中Java用户占到一半。中国Java用户协会在全国200多所大学成立了用户分会。从具体数量上讲,蒋清野认为,中国用Java进行过商业开发的人员大约在45万左右,像中国电信行业80%的软件都是采用Java编写的,短信和手机游戏等业务全部是采用Java编写。

  据黄震透露,这次9月份的Java中国大会将会有140多位专家直接从美国来到中国,同大家进行技术交流。他认为,目前国内缺乏的正是这样的Java技术交流学习机会,而中国的合作伙伴提出的最多的要求也正是培训。

  不管如何,无论Java人才是多是少,技术人员的用武之地还在于能够找到足够多的用户。或许事实正如黄震所说——在中国,有创意的Java开发人员相对较少,同时,有创意的用户也比较少。
应用之间 橘枳之变

  和黄震的意见一样,在王克宏教授看来,Java在中国不被“学院派”看好是一方面,另一方面的事实是Java在中国同样也并未被“市场派”看好。现在的情况是,在Java应用的广度与深度方面,中国内地不只是比不上欧美地区,而且比中国港澳地区也略显不足。

  我们在采访王克宏教授的过程中,王教授一共出示了三个版本的名片,其中除了在清华大学的教授职衔之外,“清华- iT Frontier株式会社知识工程联合实验室”主任的头衔更值得注意。

  故事开始于《网络世界》报社(当时名为《国际电子报》)在1996年举办的那次全国性Java大赛。比较出人意料的情节是,就在Java在国内的发展慢慢沉寂之时,日本人却通过那次大赛认识了王克宏等人。很快,日本iT Frontier株式会社派专人找到了王克宏教授。这家株式会社是由日本三菱商事和日本IBM在2001年将原AST等在内的五个主营信息产业的公司合并后成立的以信息系统集成为主营业务的软件企业。双方随后成立了“清华- iT Frontier株式会社知识工程联合实验室”,由王克宏任主任,从此双方开始了至今已经长达8年的国际合作。

  王克宏教授谈及Java技术在国内一些企业那里的遭遇时颇为激动,他说:“如果我们的技术不行的话,日本人不会来找我们。但是为什么这么好的技术在国内一些企业和用户那里得不到应用和重视呢?” 比如,王教授带领下开发出的Webform(电子表单自动生成系统及其可视化开发工具)采用Java标准,便于电子表单的网络传输,同时解决了浏览器 /Web服务器应用环境下的打印问题。日本的建设省就采用了这一系统并要求所有的人员都要学习掌握。然而,这样一个系统却在国内的推广使用中在一些部门和企业那里遭到了冷遇。王把其中的主要原因归结为渠道问题和关系问题(或者说机制问题和观念问题)。但是,作为一个纯粹的技术人员,王教授显然并不愿意把宝贵的时间浪费这些事情上。

  具体在行业软件中,王教授认为,国内用Java开发的应用软件还不多,可以说在中国,应用推广的局面还没有完全打开,尤其是在能充分体现 Java特色(跨平台、多线程)的领域,如金融信息管理、电子政务与电子商务、远程教育等行业,成熟的Java应用软件还不多见。而对于一些企业对自己研究成果的合作事宜,王克宏并不赞同,他表示:“有的企业(甚至校办企业)都曾经找过我们洽谈有关的合作事宜,但是他们提出的条件都是要一次买断产品的知识产权。这是典型的‘种树的时候不来,等到摘桃的时候就做得很绝’。这种合作方式我们当然不会答应。”

  除了中国企业和从业人员对Java的自行学习摸索外,Sun、BEA和IBM等国际公司在中国对Java的推广也很重要。尤其是当中国的很多企业对于能从Java技术上能否及时赚到钱心里没底的时候,这些公司在中国的活动就具备了更大的意义。

  黄震对Java在中国的发展就颇为乐观。他表示,目前北京的软件产业规模占到了全国的三分之二,90%的企业都有Java部门。根据中国软件产业协会的统计,超过三分之二的软件企业在采用Java进行开发。比如东软目前有超过4000人的Java开发人员;中国工商银行的开发部门中有许多 Java开发人员,开发银行自身的系统。中国台湾的保健卡和中国香港银行的网上银行都是由Java开发成功的。据悉,在9月份的Java中国大会上还将评选出5个Java优秀应用企业。

  此外,Sun在中国市场的JCOE(Java技术应用中心)目前已经达到了35家。Sun公司正是借助着这个“JCOE”帮助众多企业成功地提高了其Java技术应用水平。比如用友软件工程、神州数码软件、东软软件、北京华胜天成和MDCL都是全球第一批通过Sun的JCOE认证的合作伙伴。

  作为中国市场成功用户的代表,中国联通在今年4月8日举办了“2005中国联通UniJa开发商大会”。在2004年11月1日UniJa业务正式商用的半年时间内,UniJa业务的注册用户数已经突破14万,应用数量也增加到近300款。美国Sun公司董事会主席兼首席执行官斯科特·麦克尼利的到会似乎表明,中国市场的潜力之大并未被忽视。

  黄震在接受采访中把十年前Java进入中国比作播种,但是种子播下了,Sun还要为把种子培育成森林做很多工作。王克宏教授也表示,Sun在中国推广Java的力度并不够。这样看来,避免Java在应用上上演一出新版的“橘枳之变”还需要中外企业一起加快努力。
十年树木 未为晚也

  “当初我开始宣传Java的时候,就有同行说王克宏是不是要搞自己的Java虚拟机。但是我们认为,集中精力做应用会更好一些”,王克宏在谈及自己的联合实验室时表示,“我们的优势在于,已经有过8年多的国际合作经验;但是我们的缺点也很明显,就是市场意识不强,制约了我们的发展。”

  据了解,从1998年开始,清华- iT Frontier株式会社知识工程联合实验室共有77人次参加了在旧金山的Java大会,而最近的两个项目是中标了新华社的新闻标准管理系统和国家环保总局的项目。目前前者已经在试用,后者也已接近完成。

  对于将来Java的发展,王克宏主要强调了七个方面。一是工具的优化,开发工具的集成优化。比如IBM的Eclipse的集成开发环境就做得很好。二是开放源代码。王表示,其实他并不太看重开源,但是他认为工具要开放,比如功能上的选择、扩充开放等,但内库系统就不用开放,要适可而止,适度开放。三是重视中国市场;四是行业软件;五是抓住网络计算模式下的主流模式即 Web服务。六是抓住J2EE 平台的核心技术。所谓的“J2EE与 .NET之争”,人们已经不再关心谁长谁短,而是关心谁能用它尽快赚到钱。实践证明:能同时支持J2EE和.NET的架构更为用户所接受和欢迎。七是抓住移动计算(移动Java)的关键技术。不少厂商能提供各色各样的用Java实现的电子设备,而这些移动设备均是在J2ME平台的支持下,例如Sun公司开发出“移动信息开发平台”(MIDP, Mobile Information Development Platform),已经成功应用到手机。

  而作为Sun大中华区软件、ISV和Java业务总监,黄震对Java在中国的发展认为在质量、性能和安全性等三方面存在不足。首先,Java 的标准体系在中国还没有建立起来。只有建立起完善的标准体系,才能够保障质量标准。因此,质量标准体系的建立非常关键。其次,Java的性能要求还没有完善。最后,Java的安全研发环境还没有建立。中国应该尽快建立起Java的安全架构。他指出,在美国有一个Java标准化组织JCP(Java Community Process),BEA和IBM都是JCP的成员。而在中国没有JCP,因此,在中国目前没有Java的标准,也没有人去监控。从政府层面来看,记者也从信息产业部有关部门获悉,目前,信息产业部下属的中国通信标准协会正在制订Java终端规范,审批后将作为政府标准推行。信息产业部产品司亦将作为此次 Java China大会的支持单位出现。Sun公司首席执行官斯科特·麦克尼利在2005年上半年的第五次访华期间,拜会了信息产业部、科技部、教育部、中国软件协会以及北京市政府等部门,专门参加了关于Unija的技术交流活动,并获得了中国政府有关部门的肯定。

  用友公司作为Sun在中国市场的几十家JCOE之一,其在Java应用上的实践和观点无疑很大程度上也代表了中国企业对Java的态度。用友公司NC技术总监樊冠军表示,就Java技术本身来看,J2EE的推出是一个分水岭,Java从此变得越来越易于使用,大家看法也发生变化,编程更稳定,几乎不存在宕机。普遍的看法是,J2EE偏重后台,微软的.NET偏重在前台。正是基于这一观点,目前用友公司分成两条开发线,一个是采用微软架构,另一个是采用Java。用友公司共有250名Java开发人员。Java主要应用在高端行业,高端用户很认可。此外,樊冠军也表示,希望Java在Web界面方面将来易于使用,希望制订出一些更好的规范。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线XChinux

只看该作者 1楼 发表于: 2005-09-09
然后后面是一些网页的回复,呵呵,更有意思
网友:PP      发表时间:2005-09-07 10:53:57

我就不喜欢JAVA,Java与C/C++这类语言不同,Java很大程度上是Sun和一些商业公司控制的语言。

Java 在语言上创新性主要是完全的面向对象,自动内存回收器,安全指针以及中间层代码。这些在当年都算是一些新技术新概念,但是现在,从C到Perl等等不同语言都正在迅速实现类似的技术,GLib/Parrot就是这么一个著名的例子,我现在没有看到这么做的好处是什么。

做为一个程序员完成任务最重要,然后根据合适的任务选择最简单的语言。Sun的Java则相反,里面充斥了版本/平台/标准的争吵。Java是我见过有史以来在语言本身绑定如此多标准的语言,每一步都被Sun/IBM/MS 等等给你规定的死死的动弹不得。Java 恐怕剩下的干货也就是 if/for/class几个关键词了。这个东西80%语言上面都有。

Java 我现在不知道它到底目标是一个操作系统,应用程序集,应用程序接口,还是一个完善的语言。Java最奇特的地方就是应用程序不是按照任务而是按照语言安排的。比如Java Desktop 或者100% Pure Java等等奇怪的逻辑。甚至Sun开发的输入法标准里面都必须嵌入一个Java的虚拟机。

这么多奇怪的东西加在一起让开发一个严肃的Java程序的可能几乎是一个笑话。就说做一个简单的动态页面网站来处理一些请求。做为一个10来年的C程序员。一个下午我就开始使用Perl的Mason开发出最初的网站模型。后来因为服务器的问题,借助Perl杰出的正则表达式支持,三个小时后我把他们全部转成 PHP──再此之前我从未严肃学习过任何有关PHP的知识和HTML::MASON模块,但是毫不影响我的开发任务。如果你要用Java处理,恐怕你需要理解无数Java的标准/概念。至于任务本身靠边站吧!

这些就是我不喜欢JAVA的根本原因──别的语言都试图缩短语言学习时间并且有按需使用的库,Java正好相反,它不仅要求你学会语言,还要学会那无数不成熟的标准和应用程序接口。

网友:yananay      发表时间:2005-09-07 12:01:40

楼上的,你不懂就别说,说出来多丢人啊

网友:言论自由      发表时间:2005-09-07 12:26:36

楼上的,不要阻止别人发言,就算你是一个JAVA的权威又如何。

网友:to PP      发表时间:2005-09-07 12:58:41

你对 java 真的很无知
有一句话对java 描述很精妙:
java的编码是完美的
运行效率是有欠缺的。

java的学习周期比 c++要短很多很多。

网友:to 言论自由      发表时间:2005-09-07 13:22:30

不是想阻止别人说话,但PP的的说法的确显得不了解Java。

网友:to pp      发表时间:2005-09-07 13:25:15

Perl,C的十年老专家嘛,看不上Java,难怪。

网友:d.c.b.a      发表时间:2005-09-07 13:39:11

拷过SCJP就是高手了?

高手才不考这些玩意呢.

网友:PP      发表时间:2005-09-07 14:59:51

除了 MS Visual Basic 或者 XX SQL 这类特定语言以外,你听说过有什么基础语言 如C/C++/Perl/Python/LISP/PHP/Shell,像 Java 这样需要考试认证的吗?

第二,Java号称是最安全的语言,怎么又要建立所谓的Java的安全架构?

顺便,瞧瞧那个叫王克宏说的话:“王表示,其实他并不太看重开源,但是他认为工具要开放,比如功能上的选择、扩充开放等,但内库系统就不用开放,要适可而止,适度开放。”──这都是什么乱七八糟的!!!还适度开放,哈哈,新鲜,新鲜啊!诸位JAVA专家们给我解释解释这是JAVA中的什么新技术?

网友:言论自由      发表时间:2005-09-07 15:24:08

to “to 言论自由”:
你的这句话是绝对错误的“不是想阻止别人说话,但PP的的说法的确显得不了解Java”。
按你这个意思,James Gosling 是JAVA的发明人,他对JAVA显然比大多人都懂,是不是只有他及少数几个人能说JAVA有不足,其他人都只能说 JAVA 好?

所以,就算是白痴也不能阻止他说话

网友:PP      发表时间:2005-09-07 15:34:09

顺便讲一个有关Java的笑话和具体事例,我有一个朋友前几个月在处理电信企业的 “复杂事物处理”号称这是J2EE的特长。其中有一个任务是把传进来的上千文件进行转化,排序,和归类和合并,并且对其中的信息进行筛选。他老兄用 Java写了一整天然后和我闲聊。我看了两眼,花了十来分钟用sed 和 grep 一行话就解决了这个“复杂事物处理”。 呵呵!

网友:Feraligatr      发表时间:2005-09-07 16:04:32

To PP:
Java也可以一行做到,只是你朋友不会而已……

网友:PP      发表时间:2005-09-07 16:05:20

http://www.armadilloaerospace.com/n.x/johnc/Recent%20Updates

关于Java自我吹嘘的手机业务,为何不看看这篇文章?作者对java "Write-once-run-anywhere".的结论就是:Ha. Hahahahaha.

网友:crouzet      发表时间:2005-09-07 16:15:01

上海凯胜信息技术有限公司是高诺斯Crouzet指定国内专业微动开关产品代理商 (进口微动开关)。公司成立以来在国内已有多家常年客户,由于公司所代理的进口高诺斯Crouzet产品品质优良,科技先进,服务周到,深受客户欢迎,以至用户源源不断,我公司将始终坚持以最优良的产品,最优质的服务诚信回馈广大国内用户。


高诺斯介绍:
高诺斯,来自欧洲的微动开关专家!
Crouzet, Micro Switch Expert From Europe!

高诺斯Crouzet,是位列世界500强的施耐德电气集团旗下著名的微动开关独立品牌,有着超过80年的微动开关研究制造经验。
高诺斯Crouzet为客户提供各类小型微动开关,超小型微动开关,密封型微动开关,超小型防水微动开关,双刀双掷型微动开关,超小型四脚开关,蘑菇头微动开关,投币开关,防爆型微动开关,耐高温型微动开关(工作180摄氏),超低温型微动开关,肯定断开型微动开关,汽车用微动开关,枪开关,按钮开关,特种开关,行程开关,安全开关。




高诺斯 Crouzet
联系人:冯彦
联系电话:021-58314259 58314297
电子邮件:microswitch@gmail.com
阿里巴巴商铺:http://crouzet.cn.alibaba.com/
公司网址: http://www.kshcontrol.com

网友:PP      发表时间:2005-09-07 16:25:08

Java也可以一行做到,只是你朋友不会而已……
======
哈,哈哈哈哈,我们都不会,来来,演示一下让我开开眼界,把你某个目录里面所有的文件按照字母顺序排序归并到一个文本文件下,开头是这个目录。 这个工作简单来说可以用下面命令完成,当然不能处理“企业级应用”。

ls * | sed "s,\([ '();]\),\\\\\1,g" | sed "s,.*,echo & >> f; cat & >> f," | sh

对于一行话我的上限是标准终端长度,也就是80个字符左右,嘿嘿。'

网友:toline      发表时间:2005-09-07 16:29:36

Java 跟 哈哈 发音很像耶。

网友:to pp      发表时间:2005-09-07 16:49:07

你太无知了~~~

你那个80个字符,自己玩玩还行,企业应用谁会用?
哥哥,拜托你考虑点企业应用,OK?

无知不可怕,可怕的是无知还无畏

网友:to PP      发表时间:2005-09-07 17:05:54

如果你要批评java,请先看看jakarta.apache.org的那些 project. 还可以上网搜搜这些年的技术热潮。不要只关注语言本身,从软件工程的角度,软件资源的角度多看看。你也许是个好的perl/c/regexp开发员,但是你离state of the art有点远了。

网友:java      发表时间:2005-09-07 17:26:41

Java
一次编码
到处调试

就应用开发来讲跟C/C++差不了多少。

别跟我说C/C++不跨平台,你用了系统特有的库当然不跨平台了。

Java靠的是盒子才能跨平台,AWT当年的跨平台效果大家应该还记得吧,一样的代码不同的平台效果是不一样的。

如果你在Windows下用jni写点东西出来,我看看他还能跨平台。

如果靠字节码解释器跨平台,那么perl/python之类的语言跨平台性能要比Java好的多了。

网友:to 'to pp'      发表时间:2005-09-07 17:35:17

> 你太无知了~~~
>
> 你那个80个字符,自己玩玩还行,企业应用谁会用?
> 哥哥,拜托你考虑点企业应用,OK?
>
> 无知不可怕,可怕的是无知还无畏

1. 你知道那行 Shell 程序是什么意思吗?
2. 无论是企业还是个人,需要的是解决问题。当初发明 Java 的目的是控制复杂性,而不是使解决问题变得更复杂。中国人就是因为过多地追求新技术才使一些本来可以简单地处理好的问题变得复杂了。

都说在中国工资低、找工作难,实际上都是你们这类人造成的。

网友:to 'to pp'      发表时间:2005-09-07 17:37:50

现在只求解决问题,而不思考怎样才简单而优美的人太少了。在所有学习计算机的人中,真正理解计算机科学、理解数学对计算机的影响的人我看还不到 5%。

网友:PP      发表时间:2005-09-07 17:38:59

你那个80个字符,自己玩玩还行,企业应用谁会用?
哥哥,拜托你考虑点企业应用,OK?
=======
还是您懂得多,向您致敬!我现在想看的就是“企业应用”或者如何处理这个问题!你把程序贴上来吧?敝人手上十几台机器都是用这些玩意管的,咱土了,想看看“state-of-the-art”的“企业应用
的“软件工程”“软件资源”解决方法。。。。

网友:to 'to pp'      发表时间:2005-09-07 17:42:14

软件工程的目标也是控制复杂性;现在中国有多少软件公司利用“软件工程”使项目变复杂了?又有多少中国公司利用“软件工程”使程序员、系统设计师和项目经理变得更累了?我想大多数人把软件工程看作是一种形而上学,一种同**个**代表理论类似的东西。可事实上是这样吗?

网友:to 楼上的      发表时间:2005-09-07 17:48:49

你就永远小米加步枪吧。

网友:to 'to 楼上的'      发表时间:2005-09-07 17:56:40

呵呵,我还没那么惨

不过你似乎还没有理解我的意思

我只是想说,理性而自然地发展才是正道。对于一个非常小的项目来说,用大项目的方法来管理显然是不合适的。如果项目大到了一定程度,软件工程的方法才重要;但目前中国*理性地*使用软件工程方法的公司有几家?

楼下回复的请务必先理解我的话,如果没有理解就不要发言。

网友:to 楼上的      发表时间:2005-09-07 17:59:53

同意。 我的意思是不能"永远"用那种方式来对待软件开发/项目。不要局限于小项目。当然也不要杀鸡用牛刀。

网友:PP      发表时间:2005-09-07 18:11:01

中国人就是因为过多地追求新技术才使一些本来可以简单地处理好的问题变得复杂了。

呵呵。做为一种语言,我对Java意见不大,对Java的一般性批评,比如速度慢等等,我这里都没有提起。我有意见的是所谓的Java技术,就是Sun等商业公司滥用Java语言用来骗钱骗时间的一堆东西。这些技术把普通程序员如同蠢货一般对待,极为简单的事情弄的无比复杂。等你搞清楚了,下个版本,下个标准又冒出来了...又要把一些无比简单的东西按照那些标准又重新来一遍...

别的语言并不过分干涉你如何组织总体程序设计和目标,但是JAVA技术这么做,一旦用了就什么事情必须将就它。Sun公司要求你必须按照他们给你制定的方法按照他们的思路开发任何东西。这个是他最主要的问题。

网友:PP      发表时间:2005-09-07 18:30:32

王克宏吹嘘了半天的Java 下面的Webform ,我去看了,哈哈哈,来点实在的,让爷也开发一个类似系统,这个星期五开始,我看看需要多少时间。

网友:to PP      发表时间:2005-09-07 19:10:11

你真的是蠢货。世界上就你一个开发人员啊? 不按标准走,不同的系统怎么一起工作,都让你一个人写啊。到你这什么都是无比简单,IT产业消亡得了,你一个人全搞定。

网友:wecoh      发表时间:2005-09-07 19:49:58

我搞了编程都差不多20年了,CPU 由最初的Z80单板机,apple II,到现在的SSE3 CPU,语言由最初的机器编码,到C++,现在最常用的是gcc 和 gtk+库,对于Java 来讲,对于我来讲的确是一点都不感冒,而且我相信对于大多数10年前已经很好的用C和C++解决问题的人来讲基本感觉都和我差不多,但我觉得在这十年间加入程序员行列的人和10年前刚会用VB的人,Java 的确是一个不错的选择。好像有句谚语叫“存在就有它的合理性”(我读书小,具体可能会写错,但我想这句话的意思大家都明白了,另外还请那位知道的高人指正一下。)。最后,其实编程语言只不过是我们完成目的的一个工具,不同人,不同项目,可能选择都不一样,我觉得可以在合理的时间内正确地解决问题才是重点吧?这样就很大程度上关系到你对那个语言的熟悉程度,灵活运用程度,和编程的修为了。

网友:to 'to PP'      发表时间:2005-09-07 19:58:39

请问标准是怎样产生的?就 C 和 C++ 来说,标准是在语言经过长期使用,合适的模型已经到了必须统一的时机时产生的。例如,在 C 有了许多*有效*的实现以后,有必要为 C 的实现定义一个统一的标准以使不同实现之间可以*在一定程度上*具有某种共同特点。

这个原则也同样适用于其他的标准,而不仅仅限于语言的标准。

Java 的这套标准经过时间的考验吗?有很多 Java 的实现吗?有那么多的裂痕吗?在某种程度上,Java 是在做实验,并逐步改进。这当然没错,但标准的迅速变化和不合适是这样做的缺点。

一句话,在提供机制的同时提供策略将失去灵活性。这固然可以使更多的人理解一门技术,但却并不是好的解决方案。

网友:ailantian      发表时间:2005-09-07 22:22:54

说实话,心底里有些排斥java,说不出来什么原因
:)

网友:shhgs      发表时间:2005-09-08 04:20:25

Java很热,但是我并不喜欢。

Java太啰嗦了。

PP的那个例子我也没看懂。

程序员和管理员的思路是不一样的,很多管理员的常识,程序员都不知道。很多程序员根本就没有用管道连接多个命令的意识。

顺便说一下,Java在这种地方非常弱智,用Java处理这种事情,其复杂程度只有汇编能相比,连C和C++都比它简单。

网友:test      发表时间:2005-09-08 09:09:09

其实pp说的有一定道理
不过不能那么比较
你用C++来完成你说的功能所需要的代码量也比你的那一句要多得多,就能说明C++是垃圾么
因为C++,JAVA和Perl是定位不一样的语言
大家擅长的地方不一样
人家C还能写操作系统呢,你perl行么
以己之长攻彼之短,是战术上的东西,理论上却并没有什么说服力,不能说明谁好谁坏

网友:to pp      发表时间:2005-09-08 09:16:31

我不知道你在多大规模的公司工作,不过你的思维方式,还是停留在小规模上。

网友:to pp      发表时间:2005-09-08 09:24:29

给你举个例子吧

对于一个项目来说,除去技术因素,最重要的就是稳定,
包括开发人员的变动。
所以,这就是很多项目不会升级系统,或者从windows随便的迁移到linux,或者unix 到 linux.

像你说的那个,确实可以用shell实现,但是为了系统的稳定,维护,尽量不会那么去做。但是也不能排除你那个朋友的项目要求,有的项目就的确需要java call script.

java在这一点上非常适合企业的要求,你不能理解,也没办法了。

网友:to pp      发表时间:2005-09-08 09:35:52

中国的软件业为什么落后?就是pp这种人太多了。你以为你很了不起?你也不过是用别人不同的工具而已。对你的问题不太清楚,如果就是目录排序放入文本文件的话,根本不用那么麻烦。用ls 命令就可以搞定,也不用那么长吧?

网友:PP      发表时间:2005-09-08 10:22:48

我不知道你在多大规模的公司工作,不过你的思维方式,还是停留在小规模上。
=======
我承认这点,我们开发组目前只有4-5个人。

对于一个项目来说,除去技术因素,最重要的就是稳定,
=======
那条命令至少80年代甚至更早就可以使用了,我相信它在未来10年内还能工作,这还要怎么稳定?

用ls 命令就可以搞定,也不用那么长吧?
=======
我没有说过这个方法最简单,但是我想的最快写的也最快,检查修改也很容易。把你的ls命令写出来看看?让我开开眼界,瞧瞧你们企业级别的人怎么写的,虚心向你学习学习嘛!

网友:to 'to pp'      发表时间:2005-09-08 11:03:42

请问是 1 行的程序容易维护呢,还是 500 行的程序容易维护呢?

网友:to 'to pp'      发表时间:2005-09-08 11:05:11

还有,是使用别人已经仔细测试过的程序组装起来的程序更稳定些呢,还是自己写的、没有经过测试的程序稳定些呢?

网友:to pp      发表时间:2005-09-08 11:12:26

我建议你呢,好好学习学习,谦虚点。

不能说那个shell用了20多年了,就稳定。我指的稳定是广义的,你指的稳定是狭义的,单指程序运行稳定。

小伙子,还是多学习学习吧。

网友:to 'to pp'      发表时间:2005-09-08 11:17:24

其实有些事情就是这样,空间与时间,项目组的规模与项目组成员的水平就是矛盾的。鱼与熊掌不可兼得,有了这样就牺牲了另一样。在这种现实下,选择适合自己的解决方法始终是正确的。但是如果一个民族的绝大多数都选择了一样,这种失去多样性的做法就是绝对不可取的。

网友:to 'to pp'      发表时间:2005-09-08 11:23:52

> 我建议你呢,好好学习学习,谦虚点。
>
> 不能说那个shell用了20多年了,就稳定。我指的稳定是广义的,你指的稳定是狭义的,单指程序运行稳定。
>
> 小伙子,还是多学习学习吧。

在这方面可能我确实是狭隘了一些。请问除了程序稳定之外还要求哪些方面稳定呢?您的意思是指很少有人能做到这点,所以必须选择简单但笨一些的方法,来满足大多数人的需要,以此来达到项目组的”稳定“吗?

网友:to 'to pp'      发表时间:2005-09-08 11:33:00

最后,这种争论实际上是真正的计算机专业人员与用计算机作为工具的人之间的争论。前者是从计算机科学和数学的角度考虑问题,而后者是从其他学科项目经验的角度考虑问题。引起这种争论的原因,一方面是由于后者对计算机科学的理解不够,另一方面是由于真正的计算机专业人员太少了。计算机科学从数学继承来大量的理性思考,这种思考在数学之外通常是很少见的。理性地思考总是没错的,但中国文化本身似乎就不太理性。

无疑,这种争论是没有结果的。前面有人说过,存在即合理。Java 这样的语言确实为专业之外的人提供了表达他们思想的方法,尽管在专业之内的人看来这方法是如此的愚蠢。对于专业之外的人来说,这已经足够了,因为对他们来说保证质量远比灵活的方法重要,而思考灵活的方法并不是他们的长处。

所以,PP 一方的人也不用再说什么 Java 的缺点了,而 to PP 一方的人也不用再说什么 PP 的方法不行的了。

网友:xyz      发表时间:2005-09-08 11:36:37

要是能结合两者的优点就好了,可中国人就是喜欢窝里斗啊 :)

网友:linuxaid      发表时间:2005-09-08 11:56:01

不能说那个shell用了20多年了,就稳定。
================================

你的评判标准是什么?如果让你为公司招人,两个应聘者一个有 30 年的相关工作经验,另一个只有 3 年的经验,但水平上两者相同(3 年的那个做起事来有些哆嗦),你会招哪个?你会说,有 30 年经验的那个,经验是很多,但还是不行吗?

如果时间和已有的事实不是判断的标准,什么会是标准呢?主观的意识?这也在形而上学了吧。

网友:哈哈,看得出来to pp不怎么懂shell      发表时间:2005-09-08 13:15:44

至少对sed没什么概念!

网友:to '哈哈,看得出来to pp不怎么懂shell'      发表时间:2005-09-08 13:41:58

是啊,当今中国的计算机开发人员中能有 5% 的人真正掌握 Shell 就不错了。理解 UNIX 的哲学的人就更少了。Windows 的高手会用一些特别的方式来表达自己的思想,但能这样表达思想的人就更少了,因为 Windows 本来就使人不去追求理性地思考。

网友:柏杨      发表时间:2005-09-08 14:02:36

中国人就是喜欢窝里斗,以上就是明鉴...

网友:小小程序员      发表时间:2005-09-08 14:12:14

针对不通的问题,采用最有效率和成本最低的方法这是最正确的,可是最正确的方法未必是最合理的。在软件中,正确代表你有效率,但在更高层面未必是有效益的。PP,使用Shell进行那样的处理,是它的代表特征,shell依然存在是因为它的优势,java不能那么做,也不需要那么作,因为不是作为shell的替代物出现的。java的出现,昭示着其他语言的死亡么?谁也不会这样人物。整个行业的迅速发展,应用厂商提供的服务无限扩大,最终害了没?是用户。你去看看J2EE的发展史,就是持续的市场洗牌,大的有实力和规模的留下,扩大话语权,小的淘汰。在这个角度上你需要公平公正么?摆脱,软件行业依然是一种商业行为。
哦,ps,我认为那个什么什么java中国之父,说了很不符合他个人这个称谓的话。我也不认为他有资格承受那个封号。

网友:这不是什么斗不斗的问题      发表时间:2005-09-08 14:32:33

这个问题涉及的面太广,而个人的学识难免很有限,所以就会产生一些笑话。大家没必要去较真。

在上面的那个shell和java的具体例子上,我认为一个人或者一个小组中即懂shell又懂java,那么首先就会选择shell而不会去选择java,毕竟这个应用无论从开发、维护还是使用效率来讲,shell都要比java有优势。

java再好,也不是什么都好,起码java的解释器和编译器就不是用java写的。

网友:烙印      发表时间:2005-09-08 15:20:40

真理越辩越明!
我觉得PP的解决方法简单可行,
但是不能就因此说JAVA是无用的,因为这样我也可以说其他编程语言无用。
重要的是JAVA适合做什么,咱们的古话不是说扬长避短嘛。咱们不要跑题了。

网友:无双 loveunix.net      发表时间:2005-09-08 18:29:24

语言不是万能的 所以不要想用一种语言来解决所有的问题
java适合在电子商务中应用 因为客户端已经有浏览器和jvm 不需要安装软件 这是它的特点 同时使用时也会根据这个特点使用
另外它有很多现成的库 后面随着计算机性能的扩大可能会在桌面应用程序上有一席之地吧

c/c++用于系统程序或是嵌入式 或是c/s perl shell用于系统管理
没什么好争的

网友:yanany      发表时间:2005-09-08 18:59:57

上面几个朋友说了我不懂shell
呵呵,DOS也是shell,shell只是一个概念,看你们只把
shell定义成unix下的或者linux下的shell,就足以看出
你们的理解能力了。

PP,你有了项目管理的经验后自然会明白我说的。

网友:to yanany      发表时间:2005-09-08 20:15:06

我们不把 DOS 称为 Shell 是有原因的。是的,DOS 也提供了诸如 for、if 这样的命令,但它对进程、函数的支持太差,也没有像 UNIX 里那样一大堆工具来处理日常应用,所以 DOS 这个“Shell”模仿地太不到家了。

我们所说的 Shell,并不是 UNIX 或 Linux 下的 Shell,而是 POSIX Shell。它是一个精巧的程序设计语言。UNIX 或 Linux 下的 Shell 只不过在这门语言中加入了更丰富的功能,但 DOS 无论如何都不是兼容 POSIX Shell 的。现在,POSIX Shell 的地位被 Perl 这样的语言逐步取代了,但 POSIX Shell 对于处理日常的应用来说仍是游刃有余的。

这就是我说的:对于计算机专业之外的人来说,以普通的工程的角度来看待问题是很正常的;但由于对专业工具的了解不够,与计算机专业的人产生分歧是在所难免的。当然,这并不是说专业之外的人理解力差,只能说明他们对计算机科学和数学的理解不够,或者说,他们的“工具箱”里除了专为他们准备的工具之外没有其他的工具了。

在这种情况下,选择是重要的。如果让计算机专业之外的人使用专业的工具,不仅效率不会高,反而可能根本出不了活。这时,Java 这样的语言就相当重要了,因为它为这类人提供了简便的表达方式和更接近于计算机科学之外的项目管理的方法。

网友:上海铠胜电气      发表时间:2005-09-08 20:28:52

上海铠胜电气有限公司(原上海凯胜信息技术有限公司工业控制产品事业部)是法国高诺斯Crouzet国内首家指定专业微动开关产品代理商。公司在国内已有多家常年客户,由于公司所代理高诺斯产品品质优良,科技先进,服务周到,深受客户欢迎,以至用户源源不断,我公司将始终坚持以最优良的产品,最优质的服务诚信回馈广大国内用户。

高诺斯介绍:
高诺斯,来自欧洲的微动开关专家!
Crouzet, Microswitch Expert From Europe!
高诺斯,是位列世界500强的施耐德电气集团(Schneider Electric)旗下著名的微动开关独立品牌,有着超过80年的微动开关研究制造经验(施耐德微动开关)。
Crouzet 高诺斯为客户提供各类小型微动开关,超小型微动开关,密封型微动开关,超小型防水微动开关,双刀双掷型微动开关,超小型四脚开关,蘑菇头微动开关,投币开关,防爆型微动开关,耐高温型微动开关(工作180摄氏),超低温型微动开关,肯定断开型微动开关,汽车用微动开关,枪开关,按钮开关,特种开关,行程开关,安全开关,管状电机微动开关。

其中:
Crouzet V3系列微动开关,完全覆盖及可替换OMRON的超小型SS系列。
Crouzet V4系列微动开关,完全覆盖及可替换OMRON的小型V系列,VX,D3V系列以及D2MV系列。
Crouzet V3,V4系列防水开关,完全覆盖及可替换OMRON的防水型开关。
Crouzet V3,V4系列微动开关,欧洲最受欢迎的微动开关!(进口微动开关Micro Switch)

网友:yanany      发表时间:2005-09-08 21:55:26

呵呵,我倒想请教你谁这么定义的shell?
shell 究竟是什么我想请问你弄清楚了吗?
“我们不把 DOS 称为 Shell 是有原因的”请问你们
究竟是和群体?“国际shell标准委员会”?抱歉,
这个名字我胡诌的:)

网友:to yanany      发表时间:2005-09-08 22:09:28

IEEE 1003.2 POSIX Shell Standard

http://standards.ieee.org/catalog/olis/posix.html

这是国际标准。用 Google 搜索一下就可以找到的。你是不是为了说明自己的观点正确不学任何东西了?

网友:to yanany      发表时间:2005-09-08 22:10:54

Portable Operating System Interface (POSIX®) Standards Subscription
Below is the list of current standards available in this subscription. Please enter your user-id and password when requested. Use your Web browser (Netscape 2.02 or above, Internet Explorer 3.0 or above) and your PDF reader (Adobe Acrobat 3.0 or above) to view the standards.
Pricing and Licensing.
IEEE 1003.1, 2004 Edition
  Information technology---Portable Operating System Interface (POSIX®)---Part 1: Base Definitions
IEEE 1003.1, 2004 Edition
Information technology---Portable Operating System Interface (POSIX®)---Part 2: System Interfaces
IEEE 1003.1, 2004 Edition Information technology---Portable Operating System Interface (POSIX®)---Part 3: Shell and Utilities

网友:to yanany      发表时间:2005-09-08 22:12:37

你要是连 IEEE 都不知道是什么我就不和你说了。

网友:yanany      发表时间:2005-09-08 22:34:02

我们当然不把 DOS 称为 Shell 是有原因的──DOS不是Shell,它是一个操作系统。它的Shell叫做command.com

引用你的一句话:shell 究竟是什么我想请问你弄清楚了吗?

网友:PP      发表时间:2005-09-08 22:34:49

抱歉,上面一个帖子是我回yanany的话

网友:to PP      发表时间:2005-09-08 22:42:40

狂晕啊 :)

网友:PP      发表时间:2005-09-08 22:42:48

yanany

我们讨论的shell确实是指 Unix/Linux/OSX下面的Shell,因为他们的名字里面几乎都有Shell。一种约定俗成的说法。当然Linux下面的shell很多,通过 Gdm/Kdm/Enterance 进去的 Gnome/KDE/Enlightenment这些都是Shell。但是我们一般都讨论的是普通的Console Terminal,就是BASH/ZSH/CSH/等等。希望这个能够回答你的疑问

网友:xyz      发表时间:2005-09-08 22:43:42

注:楼上的 to PP 和以前的 to PP 不是一个人

网友:to PP      发表时间:2005-09-08 22:46:36

(这个 to PP 和上面的那个是一个人)

呵呵,我想你的这个 Shell 概念是广义的了。对于你前面提出的那个问题,解决时需要用到的 Shell 是 POSIX Shell 或它的增强版。从这个意义上说,包括 Enlightenment/Gnome/KDE 和 DOS 这样的东西都是不能称为 Shell 的。

网友:xyz      发表时间:2005-09-08 22:51:42

另,如果硬要说我们说的是 UNIX/Linux/OS X 里的 Shell 也是没有问题的,因为如果 Shell 的概念是 POSIX Shell 的话,那么无论 DOS 还是 Windows 里的 command.exe 或 cmd.exe 都不是 Shell,换句话说,Windows 的世界里还没有真正的 Shell(像 Cygwin 这样的软件自然应该被排除出 Windows 世界之外了),符合标准的 Shell 都是 UNIX/Linux/OS X 里的。

网友:??      发表时间:2005-09-08 22:54:49

zm开始 讨论shell ???

网友:哈哈      发表时间:2005-09-09 08:56:05

大家跑题的本领这么强啊!!!
大家是在讨论java 好不好的问题啊。
至于那个 shell 能解决的问题不能说明java不好,shell好,你用shell做个 apache 类似的 web 服务器出来我看看???
各种语言有各种语言的用武的地方,干什么事情用什么东西,有什么好争的。

网友:yananay      发表时间:2005-09-09 09:55:42

Portable Operating System Interface

扯 ieee 有什么意思嘛?这个只是shell的一种。

什么是shell? 你们和我讨论的谁写过类似shell
的东西?

shell只是一个壳,拜托,服了。我看也别讨论
java了,连基础的概念都没弄清楚,在往上盖楼,
估计也结识不了。

网友:PP      发表时间:2005-09-09 10:18:06

至于那个 shell 能解决的问题不能说明java不好,shell好,你用shell做个 apache 类似的 web 服务器出来我看看???
=============
当然,在Shell下面开发你既可以用Shell/Java/Perl/C/M4/....,在Java下面你能用什么?你恐怕需要把这些基本功能用Java重新写一遍。

我说过Java只是做为一个语言,我没有意见,但是它现在脱离了应该应用的地方而被不正确地滥用和过高期望了。我觉得它应该是一种特殊环境下面应用的东西。而不是用来构建企业的骨干基础。

目前大部分中国企业都是PC 32/64 Windows + PC Linux + Tru64/IRIX。需要为平台考虑的东西少的可怜。大部分应用,像他们说的彩信业务,根本不需要搞这么多复杂的技术,这最多是一个硕士研究毕业生的设计题目。有你去学Java那些东西的工夫,我们第一个版本的东西早就出来了,而且功能拓展性肯定比Java强,需要强调性能的地方,到时候再用合适的优化库替代。Java性能低,核心处理业务根本不能用Java库做。

实际上,Java搞了这么多复杂的东西,最后解决的往往是一些苍蝇级别的问题,比如那个Shell命令就能解决的问题,为何要调动JVM?就算是我平台敏感,我一个平台开发一个,也就超不过100-200句话,效果比Java好的多,是不是这个道理?

网友:to yanany      发表时间:2005-09-09 10:19:47

正是 IEEE 制定了 POSIX 的标准。的确,Shell 的含义有很多种,但解决上面 PP 提出的问题的 Shell 是特指这一种的。前面有人说你不懂 Shell,也是说你不懂这种 Shell,请你不要偷换命题。

网友:to yanany      发表时间:2005-09-09 10:28:59

> 你们和我讨论的谁写过类似shell的东西?

如果你的意思是用 Shell 完成的程序的话,我写过。你可以到 http://sourceforge.net/projects/dipmt 上看看。我可以接受你的任何批评,因为这个项目刚开始三个月,很不成熟。

网友:》》》》》》》》》》》》PP      发表时间:2005-09-09 10:36:25

在Shell下面开发你既可以用Shell/Java/Perl/C/M4/....
=================================
你无知不无知啊,用java和c那还叫在shell下开发啊???那按你说的什么都叫在shell下开发了,你能在只有操作系统的内核的系统上开发???
用java c++可以写出 shell 你用 shell编写出个 jvm或 c++的编译器出来。

另外请能清楚你说的 shell脚本和广义shell(就是操作系统外壳,用户操作的环境,比如kde、windows图形界面等)的区别。

网友:to 楼上的      发表时间:2005-09-09 10:39:48

你知道 Perl 吗?Shell 是和 Perl 类似的程序设计语言,只是相比之下 Perl 更像一门语言。

如果是为了上面说到的 Shell 是什么含义的话就请不要争论了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线567
只看该作者 2楼 发表于: 2006-04-29
为什么没有人回呢
567
离线kawayide
只看该作者 3楼 发表于: 2006-08-09
Java的优点很明显,但是缺点着实不少

一些细枝末节的缺点就不说,单是虚拟机执行效率低这一点,就会使注重程序效率的程序员敬而远之

执行效率对于一个程序来说相当重要的一环,历史上成功的系统都将效率摆在重要的位置,从而取得成功

技术研究的目的不就是不停的探询方法来提高效率吗?

请问Java3D比起OpenGL更适合真正的3维开发吗?当然不是

所以或许可以放弃java的通用性而追求更高的效率

当然,学习java只是为了挣钱糊口还是值得一学的。毕竟这行现在前景还不错啊。
快速回复
限100 字节
 
上一个 下一个