软件不是工业
几个月之前我参与了一个日本银行软件的开发工作,大家都知道,银行软件是个对软件正确性和数据保真性要求很高的系统,但是世界上面有没有软件能保证这个要求呢?
我看没有,无论什么平台,什么架构,再好的软件都会有数据的错误和bug,这样看来,软件还能是工业产品吗?
什么叫工业产品?比如福特公司制作汽车,他生产出来的汽车也不是没有问题,但是问题应该被局限在客户可以承受的地步,比如说,汽车不能自燃,比如说,汽车的刹车不能失灵,因为汽车一旦出事,就是人命关天,就是大问题。所以我们说汽车是工业,因为它制作出来的东西耐用,因为它制作出来的东西值得大家信任。可是软件呢?
我做的日本银行软件,用了业界最时髦的NEXWEB技术,自吹为业界最稳定最强大的J2EE开发平台,可是呢,我们在实际开发和测试中间看到,这个软件其实十分脆弱。在软件产品里面没有所谓的重量级问题和轻量级问题之分,任意的一个小小的数据的缪误都会导致整个系统的崩溃,软件真的是工业吗?我看不是,我看软件不值得工业界信任,至少目前不值得。
SUN公司是个强大的公司吧,你们看看SUN的程序员在程序里面怎么说的,他们说“* You acknowledge that this software is not designed, licensed or intended
* for use in the design, construction, operation or maintenance of any
* nuclear facility.”
我觉得中国的软件人很多都不自量力,或者说喜欢跟风。
当年国外流行开源操作系统,于是就一窝蜂作LINUX,现在时兴外包,就一窝蜂作外包。
美国卡内基大学说软件工程应该是CMMI标准,于是大家就一窝蜂去做CMMI认证。
我认识很多学生(我自己当年也是这样),在大学里面不好好学相对论,学学线性代数就跑出来做程序员,学会了JAVA就觉得自己很牛比,一不小心会用STRUTS的就更加开心,这些都是社会上面浮躁的软件风气的影响。
软件不是工业,做的好的话,软件是艺术品,做的不好如中国,软件就是游戏机。
所以我劝所有的同志们,去做数学家,去做物理学家,去做历史学家,如果你没能力做学问,那么就请来做中国软件吧。你会发现到处都是和你一样沙蔽的程序员和BOSS
[解决办法]
你对软件理解的太肤浅了。不过我同意不应当盲目追赶时髦。
软件不是艺术品,软件里面到处都是确定性的形式,无论是对是错,艺术好像不是这样的。
艺术可以说美或不美,软件只能用正确和错误来评价。
现在物理学家,天文学家都需要软件啊,小型核武器的设计,图像识别,而仅仅有算法是不够的,而是要通过作为产品的软件来完成的。
硬件也会出差错,不然怎么有所谓死点,只不过概率很小就是了,软件中也一样,有的bug触发的条件形成的概率很小。每一起交通事故都有真正的原因,梵高的画好不好看那取决于每个人的看法。
[解决办法]
有一定道理,但是软件也可以做出类似容错性能好的,包括模块化设计,就能减少错误的扩散.你可能使用NEXWEB发现了一些问题,但是不能以点概全.
[解决办法]
什么叫工业产品?比如福特公司制作汽车,他生产出来的汽车也不是没有问题,但是问题应该被局限在客户可以承受的地步,比如说,汽车不能自燃,比如说,汽车的刹车不能失灵,因为汽车一旦出事,就是人命关天,就是大问题。所以我们说汽车是工业,因为它制作出来的东西耐用,因为它制作出来的东西值得大家信任。可是软件呢?
> > 刹车失灵 没有过吗??工业产品不出问题吗?? 那还要修理厂 干什么??
记住 只要是人造的东西 就会出问题.
软件 发展的时间毕竟还很短,还很不完善 出现问题也是很正常的.
[解决办法]
在大学里面不好好学相对论,学学线性代数就跑出来做程序员,学会了JAVA就觉得自己很牛比,一不小心会用STRUTS的就更加开心,这些都是社会上面浮躁的软件风气的影响。
> > 相对论,线性代数学的再好 也不能凭那找工作呀!! 能吃饭吗??
公司是我们的客户 我们只有自己适应他们,而不能要求他们适应我们.
如果你在大学里光学些自以为是的理论(数学 物理 ) 那你出来不还是要饿死???
我们是工科 就是要实在一点 做出东西才是硬道理.
数学 物理 能解决什么是面象对象吗??能直接知道你写出良好的软件吗?
[解决办法]
数学 物理 能解决什么是面象对象吗??能直接知道你写出良好的软件吗?
> >
数学是软件的根本,没有数学知识,你试试看?
[解决办法]
软件确实不是艺术品。
软件就是工业。
工业化程度越高,软件的开发就越简单。
[解决办法]
日本银行系统和中国软件行业有么的关系?
[解决办法]
有好的思维能力的人就能写代码
到时候数学知识只是随用调用的知识而已,并不是能力。
[解决办法]
多读一些品管方面的书就知道了……