我为什么憎恨Framework (ZT)

tabris17 2006-08-22 03:56:37
我为什么憎恨Framework (翻译)
by oceanwater (灌水日月长)
<本文发表于: 相约加拿大:枫下论坛>
我为什么憎恨Framework

我目前正在规划做一个Java web应用程序(是的, 一定要Java, 这有多种理由, 但我现在觉得这些理由有些站不住脚了). 在这个过程中, 我评估了一堆的J2EE有portlet功能的, 并且JSR兼容
的, 基于MVC角色的CMS web服务应用程序容器Frameworks.

在花费了几十小时来阅读特性说明和文档, 我已经可以把眼睛抠出来了.

假定我要做一个鞋架.

我曾经做过一些小的木工活, 我知道我需要的东西: 一些木头和一些基本工具: 一个卷尺, 一把锯, 一把直尺和一把锤子.

如果我要造一个房子而不是一个鞋架, 我依然需要上面这些工具(还有一些其它的).

于是我到工具店去买工具, 问销售人员锤子在哪里.

"锤子?" 销售人员问. "现在没有人买锤子了. 这些东西已经过时了."
这事让我觉得奇怪, 就问他为什么.
"锤子有一个问题: 有那么多种锤子, 有专门打木桩的, 有拨钉子的, 也有普通的圆头锤子. 如果你买了一种锤子, 然后你发现你需要另一种锤子怎么办? 你不得不买另一把锤
子. 人们发现大多数人很需要一种锤子, 只要这一把锤子就可以满足各种他一生中能需要的需要锤子的地方.
"嗯......, 我觉得这听起来不错. 这种通用的锤子摆在哪?"
"不, 我们已经不卖这种锤子了. 他们已经完全过时了. 后来又发现如果只用一种锤子来做各种锤子所做的事情, 哪种做起来都不顺手. 用打桩的锤子来钉钉子不是很好用, 如果你想干掉
以前的女朋友, 就只有普通的锤子最好用."
"确实是这样. 那么现在就没有人买通用锤子了, 但现在你们又不卖以前的各种老式锤子, 那你们卖什么锤子?"
"事实上, 我们现在根本不卖锤子."
"那么...."
"根据我们的研究, 人们真正的需要并不是通用的锤子. 用合适的锤子来做不同的工作总是最好的. 于是我们开始销售锤子工厂, 这种工厂可以生产出你所需要的任何种类的锤子.
你只需要给工厂找来工人, 启动机器, 买来原料, 付水电费帐单, 你就可以马上得到你正好需要的那种锤子.
"但我不想买一个锤子生产工厂..."
"不要紧, 因为我们已经不再销售它了."
"但我觉得你刚才说..."
"我们发现大多数人不是真正需要整个一个锤子生产工厂. 比如, 有些人永远也不会需要一把圆头的普通锤子(也许他们永远不会有前任女友, 或者说他们会用冰锥来干掉他们). 所以让一些人来买一个
可以生产世间任何种类的锤子的工厂没什么意思."
"是的, 这听起来很有道理"
"于是, 我们开始销售锤子生产工厂的图纸, 让他们自己建造自己的锤子生产工厂, 这些工厂只生产他们需要的锤子."
"让我来猜猜: 你们已经不再销售这些东西了."
"不卖了, 当然不卖了. 后来发现人们不想只为了造几把锤子就建造一个工厂. 让工厂建造专家来建造工厂, 我从来都是这么说的!"
"我在这点上同意你的观点"
"是的. 于是我们停止销售工厂图纸, 开始销售生产锤子工厂的工厂. 每个生产锤子工厂的工厂都是由建造生产锤子工厂的工厂的顶级专家完成的, 你不必关心一个工厂建造的细节, 但你仍然可以得到一
个专为你订做的生产锤子的工厂, 根据你的设计, 生产出专为你订做的锤子."
"可是...这并不真正..."
"我知道你要说什么!! ...我们这些也不卖了. 出于某些原因, 买这种生产锤子工厂的工厂的人不是很多, 所以我们针对这个问题有了一个新的解决方案."
"很好."
"我们回过头来看我们的全球工具架构, 我们断定人们在管理生产锤子工厂的工厂, 以及它生产出来的生产锤子的工厂的时侯, 他们遇到了很多挫折. 如果人们同时管理一个生产卷尺的工厂的工
厂, 一个生产锯子工厂的工厂, 和一个生产直尺工厂的工厂, 还不用说木材加工和管理工厂, 那么这种负担会变得很头痛. 当我们认真审视这种情况的时侯, 我们觉得对于某些
只想做个鞋架的人来说这太复杂了."
"是这样, 不开玩笑"
"于是这个星期我们推出了一个通用工具制造工厂的工厂的工厂, 这样你的所有不同的工具生产工厂的工厂就可以从这个唯一的工厂里生产出来. 这个工厂的工厂的工厂会只生产出你真正需要的生产工具
的工厂的工厂; 然后每个工具工厂的工厂会根据你的需要只生产出一个你需要的工具工厂. 最后生产出来的工具会是你这个项目的最理想的工具. 你会得到正是你想要的锤子,
正是你想要的卷尺, 所有这些只需要按一个按钮(虽然你可能必须发布几个新的配置文件来使所有的工作按照你的预期来完成)."
"那么你们不卖锤子吗? 什么样的都没有?"
"没有. 如果你真的需要一个高质量, 工业标准生产出来的鞋架, 你绝对需要一些高级的东西, 而不是一个从破工具店买来的锤子."
"所有的人现在都这样做吗? 人们只要需要一个锤子, 就都在用通用工具生产工厂的工厂的工厂?"
"正是."
"嗯...好吧. 我猜我也必须这样做, 如果现在事情都是这样做的, 我最好还是学会怎么做."
"你真了不起!!"
"这个东西带了文档, 对吧?"
...全文
9769 205 打赏 收藏 转发到动态 举报
写回复
用AI写文章
205 条回复
切换为时间正序
请发表友善的回复…
发表回复
kkyyff 2006-09-05
  • 打赏
  • 举报
回复
鄙视用JAVA开发软件还骂人的那些嘶;

自己去看看,那些MS下的软件给大家带来的好处比JAVA程序多吧。

MS下的免费软件要比JAVA多吧。别把那些没用的用来教学的JAVA也算做免费软件,会笑死人的。

我是非程人员(需求分析),客户离不开MS,所以我们也一样。
sonyejin 2006-09-05
  • 打赏
  • 举报
回复
没有谁能规定工资按照所用的语言来定,我只是说明事实而已,是的,就是这样,楼上不必激动
yunshiyu 2006-09-05
  • 打赏
  • 举报
回复
国内就目前而言。NET人才需求量是12万,JAVA需求量是7万!
//是啊,12w有一大半都是替小公司做网站的,这是是。net工人收入低的原因

谁规定的工资按照所用的语言来定?你啊?操!
日总是我哥 2006-09-05
  • 打赏
  • 举报
回复
曹,我看个电视,有必要了解电视的构造吗? 我吃个鸡腿,有必要知道鸡是怎么养大的吗,有必要知道怎么烹饪出来的吗? 很多人陷入了一个变态的怪圈,在那里浪费大量的时间,还以高手自居。 我们所做的很多工作都是为了我们在做最主要的工作时能够简单快捷, 为用户提供方便的人才是高手, 为用户和自己制造麻烦的人,只是变态而已。
ironwires 2006-09-05
  • 打赏
  • 举报
回复
原来java程序员都是这素质啊,你们这种滑稽的表演只会让更多的初学者投入到.net的大家庭里,你说你们是聪明还是愚蠢呢?
lichaohui 2006-08-31
  • 打赏
  • 举报
回复
MFC 是很好,不过那是跟 Win32 API 时代 相比而言。

如果MFC实现的很好的话,那为什么没有人能否认很多工具做界面都比MFC方便,
微软为什么还要破费那么大,弄个.net 来吸引大家的眼球?

你懂了事件机制又如何,不是一样的难用吗?
最起码,Java&C#在这方面比它强太多

什么样才算懂Windows程序设计?懂了又如何,
离开了Windows不一样什么都不会,

对很多程序员来说,脱离了编程,还知道什么?

一直认为,好的语言工具是解放生产力&为程序员造福的。

什么都让用户选择,把难题全丢给用户来解决,也是很不负责任的。
xialin168 2006-08-30
  • 打赏
  • 举报
回复
shendl(良少) ( ) 信誉:98 Blog 2006-8-24 21:04:16 得分: 0
04年下半年接触Java之后,Java的开放、开源、先进,赋予你完全的控制力!这才是程序员的感觉。不仅知道怎么用锤子,还能自己造锤子,自己造造锤子的工厂,要的就是这种感觉!
微软,总是造些弱智的工具,以前的MFC的事件机制,Message映射,也是永远无法明白是怎样运作的!前后用了7年微软的开发工具,被愚弄了七年。一直都在糊里糊涂的编程序。
认识了Java,才发现微软之外的世界原来这么美好!
往事皆非,不堪回首!

/////////////////////////////////////////////////////////

那是你根本不懂得WINDOWS程序的真正运作机制吧,MFC实现得很好啊
不要与你争论什么,曾经用过七年还不清楚MFC的事件机制,Message映射.只能说明你不是
怎么地开翘吧(不是有意,不好意思).

我想你的JAVA也好不到哪里去,就算你JAVA精通得很,
起码你对WINDOWS的程序设计也是不懂的,
脱离了JAVA你还能知道什么? 你自己去想想吧
得罪之处还请原谅


Kshatriya 2006-08-30
  • 打赏
  • 举报
回复
.net也是允许你造锤子的,java也有很多人不会造锤子的,这个区别在人,不在语言,OK???

Kshatriya 2006-08-30
  • 打赏
  • 举报
回复
有病,真把自己当个锤子了???
有本事不做工人的,早不在这里混论坛了,都是赚钱的,我就奇怪了,java和.net有区别么???

sonyejin 2006-08-30
  • 打赏
  • 举报
回复
国内就目前而言。NET人才需求量是12万,JAVA需求量是7万!
//是啊,12w有一大半都是替小公司做网站的,这是是。net工人收入低的原因
love_snow 2006-08-29
  • 打赏
  • 举报
回复
什么科班出生就了不起,做JAVA就以为有什么了不起的吗?我民办学校读了两年(四年本科(学历文凭+自考))下岗,毕业证书是走后门弄的结业证书,还不一样做JAVA,经典算法,数据结构,汇编不敢说学向楼上的大哥学的怎么样,至少也敢说一般的俺都能用,能写出来!科班出生就了不起吗?难道不知道现在的硕士生都拿扫地把扫的吗?



国内就目前而言。NET人才需求量是12万,JAVA需求量是7万!
love_snow 2006-08-29
  • 打赏
  • 举报
回复
df
wuhuabucai 2006-08-29
  • 打赏
  • 举报
回复
支持楼上的
jackymann 2006-08-29
  • 打赏
  • 举报
回复
再说两句吧。我也是用.net的。我想反驳一下一些java程序员的一些观点。首先声明,我没有任何鄙视java和java程序员的意思。只是就事论事而已。欢迎砸转。
有些java拥护者说java在国内外市场上的占有率高于.net。这个我承认。但是你有没有想过,java出来了多少年,.net又出来了多长时间?没有.net之前,开发web应用程序的主流技术是java,这么多年来积累下来的东西多了去了,当然java程序员也多了去了。而.net只是一个后来者,还没有那么多积累,从事.net的程序员当然也不如java的多,这样的话,java的占有率第一是理所应当的事。根本没有什么可以炫耀的。就像一个100米赛跑,有人先跑了50米,后边的人才开始跑,当然先跑的人会领先,而且很有可能会先到终点。但是如果是一万米赛跑呢?恐怕这50米的优势就不足以保证结果了吧。我们姑且把java和.net比喻成两个参加一万米赛跑的运动员吧,java先跑了50米,最终结果怎么样,只能拭目以待。现在就说结果,只能是没有根据的猜测。而那些用java现在领先的50米说事的人只能用可笑来形容。
有些人说java可以跨平台而.net不可以,所以java比.net优越。首先我们得承认.net目前是基本不能跨平台。但是这并不是.net从本质上不能跨,而是微软出于自己某些利益的考虑不愿跨。可以说.net和java在执行原理上是有相似的地方的。java把源代码编译成字节码,.net是IL。java靠jVM来解释执行。.net由JIT编译器对IL编译执行。所以说,如果微软开发针对其他平台的JIT编译器的话,完全可以实现跨平台。不要对我说微软没有开发针对其他平台的能力阿,那只会让人觉得可笑。我想如果有一天如果微软真的抵抗不住其他操作系统对市场占有率的蚕食的话,开发针对其他操作系统的.net平台只是时间问题。
有人说java开源的东西多,.net少。我只是想说,等十年后再看吧,看.net的还少不少。
jackymann 2006-08-29
  • 打赏
  • 举报
回复
终于看完了所有的回帖。真不理解有些人为什么非要别人都承认自己会的东西是最好的才觉得舒服呢?尤其是某些java程序员。说实话这有点让我开始瞧不起javaers。当然我瞧得起瞧不起对各位来说也不重要。
我想说的是,无论c,c++,.net,java,deilpi,php,vb,汇编,javascript,perl,等等等等,这些不都是一些工具而已吗?他们各有各的优点和缺点,各有各的适用场合,谁敢说其中的一个是无所不能、完美无缺,天下第一的?某些人非要拿一种东西的长处去和另一种东西的短处比,这样比有意思吗?java敢和.net比开发速度吗?.net敢和java比跨平台能力吗?.net和java敢和c比执行速度吗?这样比的人只有送他们这样的形容词:自欺欺人!
我猜那些所谓某种技术的粉丝们绝大多数也只是个粉丝而已吧?你是大师级人物?恐怕连你自己也不相信。为什么这么说呢?因为他们之所以迫不及待、口不择言的维护自己所用的技术,恨不得把它说成天下第一,正是因为他们的不自信,而这种不自信是来源于自己的实力有限,所以只有歇斯底里的为自己所用的技术摇旗呐喊,声称该技术天下第一,这样才能让别人觉得因为他们在使用这种技术,似乎他们也就成了大师。殊不知这正是最大的自欺欺人的表现。
我们只是从事软件开发这项职业的一个普通人而已,软件行业也和其他行业一样,没有什么特别的。而我们所用的工具,无非相当于木匠手里的锤子,just a 工具而已。至于你要用什么样的锤子,一方面取决于你的偏好,另一方面取决于用户的需要。如果用户觉得你的锤子不适合做他们的东西,而你又不会用其他的锤子,那么对不起,用户只有另请高明了。仅此而已。难道一个木匠应该拿着唯一一种自己会使用的锤子到处宣扬这种锤子天下第一,无所不能?恐怕那样只能让人笑掉大牙了。
说到底,所有开发技术都只是大家赚钱,养家糊口的一个工具罢了,大可不必互相攻击。否则,拿着锤子的你就不像一个木匠,倒像另一个马加爵了。
eaglezhao 2006-08-28
  • 打赏
  • 举报
回复
什么才是牛人?
赚到钱了才是牛人,所以这个社会,拿钱最多的,绝对是做市场的。
所以,拿不到高工资,不是你技术的问题,而是你懂不懂市场的问题。
eaglezhao 2006-08-28
  • 打赏
  • 举报
回复
shendl(良少) 说
.net的很多技术,都是抄的Java老版本的。比如说.net的事件机制,就是AWT1.0的翻版。
-------------------------------------------------------------
错了,老兄,确切的说,.net的事件机制,是使用了Delphi的事件原理。
如果想了解.Net,去读了解一下总架构师Anders的发展历程吧,.Net是这位老兄的,JBuilder的很多思想,也是这位老兄的,所以在.Net中,你能够同时看到 Delphi、java、VB和C++的影子。

shendl(良少) 说
前后用了7年微软的开发工具,被愚弄了七年。一直都在糊里糊涂的编程序。
-------------------------------------------------------------------
如果这样,那么劝你改行吧。

marcal_z(marcal)说:
我最鄙视MS的地方是,他把软件这个行业的开发门槛给降低了,没有基础的人也可以来玩玩。
------------------------------------------------------------------------------------
如果有人,费了很大的力气,才拿到一个东西,现在发现别人用比较省劲的办法,也能拿到同样的东西,于是心理就开始不平衡了,为什么一定要跨很高的门槛来工作才是好的呢?生活简单一些不好吗?


gccr 2006-08-28
  • 打赏
  • 举报
回复
Java也就占了一个跨平台的优势呗。
还说.NET只能快速开发,.NET做不了大项目。呵呵。真是笑话。
别的不说了,我个人感觉,只学过Java的人基本功都不怎么样。
CUG122032 2006-08-28
  • 打赏
  • 举报
回复
是呀,国内软件是什么水平谁还不清楚啊.

在这里吹牛逼有意思吗?

还是回去做你的NetCenter.dll吧.
wtogether 2006-08-28
  • 打赏
  • 举报
回复
这让我想起当年大理天龙寺内本因和枯榕的一段经典对话
枯荣大师道:“本因,咱们练功习艺,所为何来?”
本因没料到师叔竟会如此询问,微微一愕,答道:“为的是弘法护国。”枯荣大师道:
“外魔来时,若是吾等道浅,难用佛法点化,非得出手降魔不可,该用何种功夫?”本因
道:“若不得已而出手,当用一阳指。”枯荣大师部道:“你在一阳指上的修为,已到了第
几品境界?”本因额头出汗,答道:“弟子根钝,又兼未能精进,只修得到第四品。”枯荣
大师再问:“以你所见,大理段氏的一阳指与少林拈花指、多罗叶指、无相劫指三项指法相
较,孰优孰劣?”本因道:“指法无优劣,功力有高下。”枯荣大师道:“不错。咱们的一
阳指若能练到第一品,那便如何?”本因道:“渊深难测,弟子不敢妄说。”枯荣道:“倘
若你再活一百岁,能练到第几品?”本因额上汗水涔涔而下,颤声道:“弟子不知。”枯荣
道:“能修到第一品么?”本因道:“决计不能。”枯荣大师就此不再说话。
加载更多回复(185)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧