2007-04-24

有感于“以复杂性为生的行业”

关键字: 复杂性
Rod Johnson在“without EJB”中说了很多真诚的话,其中就有“以复杂性为生的行业”这样的说法。

说句实话,大多数B/S系统用asp、php就可以轻松搞定,而大多数C/S系统用传统的VB、PB、Delphi也很容易完成。硬件要求低,开发周期短。也就是说,90%的问题都可以用这些简单的技术解决。
可是,asp、VB太easy了,easy的东西自然就不值钱了。于是国际巨头们盯住了那10%,声称必须运用新一代的高级技术,如J2EE、.NET等等,可以轻松解决所有问题。新的价值链得以产生,巨头们又开心了。而程序员们怀着极大的期望投入新一轮的技术竞争。但结果是,为了那10%的复杂问题得以较容易地解决,我们把原先那90%的简单问题变得复杂。这正是笼罩在软件业头上的一道魔咒。

本人原先一直是新技术的狂热爱好者。好似一个新技术的追星族,精疲力尽之后才明白新老技术的共通性。其实做应用系统,你是用asp还是J2EE并不重要,重要的是你对业务的领悟能力和对技术的运用能力,而这种精通的功力是需要很多时间及经验的。有些业务是该重型武器,你得上J2EE;有些业务却是asp这样的小刀来得顺手,不可一概而论。asp用得精纯,也可以做到相当高的稳定和性能,以至于好的扩展性和可维护性;而生手弄出的J2EE,很多时候跑都跑不起来,再大的口号也是白费。
总之用什么技术并不重要,重要的是你熟不熟,精不精。整个IT技术圈子如果不能有这样的共识,就只能活跃着一大群满口新鲜术语的菜鸟,搞出一大堆费钱费力的豆腐渣工程。而国内的IT界也只能在这种烂泥潭中挣扎下去。
一个雕塑家好不好,没有关心你用的是凿子还是激光。大家评价的标准是你的作品好不好。
同样,软件好不好,也不应看你用的是asp还是J2EE,用的是过程式方法还是OOP。唯一的标准应该是软件产品本身的质量,即稳定、高效、设计合理。而程序员的价值,也不能以运用什么技术予以衡量,而应以分析解决业务问题的能力而定。只有这样,软件界才能走上良性发展竞争的道路。
评论
dlee 2007-04-27   回复
taowen 写道
应该批判的应该是以技术复杂性为生的行业吧。我们写的软件大都都是操作数据的企业应用,真正赖以为生的是业务的复杂性。要软件就是为了处理业务复杂性的。应该以简单的技术直白地处理复杂的业务为荣。

简单和复杂其实也是相对的,要看你试图解决的问题本身。例如GoF的设计模式,其实相当地精炼,这里的一些同学可能已经觉得平常之极。但是在完全不了解这些模式的开发者看来,这些模式还是很复杂的。但是实际上如果你不使用某种设计模式,当你遇到相同的问题的时候,你需要写的重复代码要多的多。甚至在你不了解某种设计模式之前,你都根本就没有意识到存在着这样的问题。

EJB2.x确实很复杂,Spring其实已经进行了极大的简化,但是仍然有很多开发者认为Spring还是很复杂。我的回答还是上面那句话,简单和复杂其实也是相对的,要看你试图解决的问题本身。如果你试图解决的业务问题本身确实很复杂,甚至目前都很难找到非常简单的解决方案,那么你就应该先去尽力把目前能够解决这种问题的方案学习好,然后再去寻找更加简单的方案。我并不赞成一遇到这样的问题就骂娘,骂EJB2.x并不等于走到另外一个极端,热情讴歌ASP和PHP。ASP和PHP也有它们自己的问题,只是你不清楚而已。你现在认为它们非常棒是在这山看着那山高。其实客观来说,它们要解决的问题的复杂度与Spring并不在一个数量级上。

所以,关键还是你一定要非常清楚你要解决什么问题,现在很多人design by buzzword的根本原因还是他们连自己究竟要解决什么问题都没有搞清楚。
shaucle 2007-04-27   回复
不过倒锻炼了很多人的学习能力
当然,适者生存...

另一方面,大厂就靠这个吃饭了
一项新的JSR,不知就要赚多少
rbible 2007-04-27   回复
自行删去--》:\
JerryZheng 2007-04-27   回复
楼上的几位指出了一些甲方的问题
不过从开发商的角度讲,真正理解甲方需求和业务模型的有多少?更别说在此基础上做更高的抽象了。真正在一个领域中做的成熟的系统必须经过几年甚至十几年的考验,经过和最终用户的反复沟通确认和技术选型上的稳定。有时候我们系统的复杂从技术原因上是有(过度追求新技术),但有很多时候也是我们并不清楚用户真正要的是什么,我们与用户的沟通总是显得不够,我们总是在猜用户想要这个,用户想要那个,其实用户真正要的东西很简单,我们根本犯不着为了这么简单的东西用一些非常over的技术
yumeyume 2007-04-27   回复
工作两年之后
中秋节看到被包的里三层外三层华丽无比的月饼
突然能理解这种怪异商品的存在了
taowen 2007-04-27   回复
应该批判的应该是以技术复杂性为生的行业吧。我们写的软件大都都是操作数据的企业应用,真正赖以为生的是业务的复杂性。要软件就是为了处理业务复杂性的。应该以简单的技术直白地处理复杂的业务为荣。
抛出异常的爱 2007-04-26   回复
现阶段ibm在这行业中的垄断性日亦显露出来
lgx522 2007-04-26   回复
qqeerr20012001 写道
简单问题复杂化,不然巨头们怎么卖服务啊


单位上用了IBM的TSM(存储软件),功能爆强。但配置复杂得很,出了毛病非找专业人士来搞定。其实本单位用的不过是操作单个磁带库进行最基本的备份-恢复功能,用Win2000Adv自带的程序既可搞定。领导们偏偏听信了集成商和IBM的谗言,缠上这么个超强超难用的东东。一年过后,IBM的服务费可是每年4w(4次服务)啊,现在只好少出点钱找有经验和专业枪手了。
qqeerr20012001 2007-04-25   回复
简单问题复杂化,不然巨头们怎么卖服务啊
dovecat 2007-04-25   回复
抛出异常的爱 写道
引用
为了那10%的复杂问题得以较容易地解决,我们把原先那90%的简单问题变得复杂。


这才是我说的j2ee的精髓。。。

-----------------------
由于新的技术的初始费用低,
所以应该造出的东西便宜。

但是有了j2ee,ibm,oracle,websphere,ms,eclipse
之后软件的价格升了两到三个数量级。。。。
1KW左右的项目想想最少可以花多少钱作出来呢?
ROR估计在10W以下吧。。。


好!要的就是这效果,要不,怎么显得我们重要呢?!每天学习更新,加班攻坚,压力大才能卖个好价钱.
gufeng 2007-04-25   回复
wangwenpinghello 写道
真是说出了我们的心声啊,我们每天都在学新技术,总是学最新的,可是等学完了,又有了新东西,唉,没办法啊
只要现在的你能精练,我想你可以不用那么悲观,自己想想,也就是那么多东西!
wangwenpinghello 2007-04-25   回复
真是说出了我们的心声啊,我们每天都在学新技术,总是学最新的,可是等学完了,又有了新东西,唉,没办法啊
抛出异常的爱 2007-04-25   回复
引用
为了那10%的复杂问题得以较容易地解决,我们把原先那90%的简单问题变得复杂。


这才是我说的j2ee的精髓。。。

-----------------------
由于新的技术的初始费用低,
所以应该造出的东西便宜。

但是有了j2ee,ibm,oracle,websphere,ms,eclipse
之后软件的价格升了两到三个数量级。。。。
1KW左右的项目想想最少可以花多少钱作出来呢?
ROR估计在10W以下吧。。。
lgx522 2007-04-25   回复
这种“以复杂性为生”的局面整个IT行业都有,但国内尤其明显。
产生的根源却是一致的,那就是用户对IT技术的幼稚认识,而国际巨头们利用的也正是这根深蒂固的“硬伤”。
应用系统最终仍要落实到用户需求上。但国内大多数用户需求是由对IT技术毫不知情的单位领导拍脑袋的愚蠢决策,加之对技术一知半解的信息管理人员技术追星所产生的。愚蠢的需求只能产生愚蠢的项目,搞到最后单位的终端用户叫苦,维护人员叫苦,开发商的程序员也在叫苦,以至于系统经常在半瘫痪的状态下挣扎。

明明系统连正常运转都艰难,只要贴了J2EE、.NET的标签,立刻身价以万计;而很多久经考验的ASP、PHP、VB精品,业已被无数实践所证明其价值,只因它们是“过时的技术”,千数都难谈。而君不知,很多贴了高档品牌的垃圾,不过是一群缺乏经验的生手仓促上阵的试验品;而那些久经考验的所谓“低端”精品,经过了多少岁月的磨砺,费了多少高手的心血。
在中国的IT界,这种“外行领导内行”,或者说“外行驱动内行”的造成了整个行业的浮躁和混乱。

好在这种愚蠢的局面正在艰难地改观。领导们在久经磨难之后,才会真正认识到IT决策的高度复杂性,才会尊重信息管理人员的意见和薪水;而信息管理人员尝尽了技术追星的辛酸苦辣之后,才会切合实际地选择技术,成长为称职的信息系统管理工程师以至于CIO。只有这样,国内的IT行业才能走上尊重知识、尊重劳动、尊重创造、尊重经验、尊重实践的健康良性的发展道路。
blueoxygen 2007-04-24   回复
我感觉能用PHP ASP搞定的东西,J2EE中间件厂商再怎么忽悠,现在绝大多数还是在用PHP ASP搞定,而他们赚取的是本可以用J2EE轻量级解决方案但是被忽悠成使用他们的产品解决方案的项目的钱。
lkfnn 2007-04-24   回复
物品价值的多少并不是以物品本身来衡量的,而是完成物品所付出的成本,以及替代此物品所付出的成本来衡量的。
歆渊 2007-04-24   回复
程序员也想买房买车啊, 只有做的东西值钱, 用的东西值钱, 才容易拿到够买房买车的钱呢.

弃置那些简单实用的工具, 也就是为着能提高自己对那些复杂但值钱的项目/工具的经验, 往那10%的市场空间里挤啊.
rainlife 2007-04-24   回复
引用
楼上深得j2ee的精髓

又要灌一次水了,个人觉得,这不是J2EE的精髓,而是整个软件开发的精髓,用贴近生活的一句话来说,“只买对的,不买贵的”,用在软件开发上,就是只用适合的技术,而不是一味地去追求新技术。
Lucas Lee 2007-04-24   回复
说得好。
但同时似乎也没有什么用?
对于国内这样没有核心竞争力的产业链,还不是水中浮萍,只能随波逐流?
giscat 2007-04-24   回复
一条长长的产业链,动了谁的奶酪都不好
心知肚明就好
发表评论

该博客是同时发布到论坛的,无法评论在论坛已被锁定的帖子

lgx522
搜索本博客
存档
最新评论