软件是艺术科学的结合

10-04-26 banq
Jason Gorman对刚刚成立的SEMAT组织有自己的思考,SEMAT是软件工程方法和理论Software Engineering Method and Theory,试图统一目前混乱的软件工程领域。作者认为任何将软件只和工程 "engineering"和"科学"挂钩的说法都是有失偏颇的,作者认为:软件应该是科学和艺术的结合。

原文:Software Is Both Art & Science. Can We Move On Now?

这个观点我相当认可,正是因为对软件开发这个事物基本定位存在争论,所以才诞生各种混乱,而试图统一这种混乱的SEMAT组织如果对这个基本问题都没有定论,相信其权威性是缺乏认同的,虽然都是由一些大牌推动的,最后又成为学术院墙中看上去很美的蜡枪头了。

如果软件是艺术科学结合,那么软件工程专业就不应该只能是理科生报考,也许文理分科是造成国内软件阳痿的罪魁祸首。同时,这些以科学思维强奸软件,并且获得所谓成功地位以后,再反复加深对这种误解,这应该是目前中国软件行业最大的畸形。

为什么我认同软件是艺术和科学结合,原文因为本人水平有限,没有完全理解,但是从个人经验来看,软件很多方面都散发着依赖个人感觉和素质的地方,比如重构中的坏味道,虽然我们可以靠一些工具找出BUG,但是误报漏报还是经常出现,而如果你有深刻设计模式背景,有很强的OO经验,你对坏味道的辨别能力就比别人强,别人闻不到的你可以发现,你甚至可以依靠职业直觉发现一些潜在设计问题。

我们知道软件分析设计是一个创造性工作,而创造性是不可以被科学的,创造性是科学发展的动力,但不属于科学范畴;同样,软件设计是一个追求巧妙设计的过程,大道至简,如何去繁复简呢?需求是那么复杂,如何抽象呢?除了算法数学之道以外,还有一个巧妙之道。

我们经常讲“数学之美”, 而美属于艺术范畴,数学属于科学范畴,最后,数学科学不也是在追求艺术中一种美的极致吗?

软件应该是科学和艺术的结合,它应该是哲学,至少是一种方法论,如果不能从这个角度来认识软件,恐怕就会发生盲人摸象的笑话,做了一辈子软件,居然软件是什么都无法准确定位,这应该是一种耻辱吧。

转贴一句,对于软件开发同样需要:止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得!

相关:

关于设计模式的心里话

[该贴被admin于2010-04-27 09:18修改过]

         

2
Antinomy
2010-04-27 09:14
深表赞同,我也一直认为软件和艺术在深层次的地方有相同的本质。特别是《对象设计:角色、责任和协作"(Object Design: Roles, Responsibilities, and Collaborations)》一书,作者完全就是用拟人的手法去看待软件设计的(“人”要有责任啊,要跟“人”协作,甚至还会“背叛”。。。),和日常思维一样容易让人接受,这何尝不是一门艺术呢?

[该贴被Antinomy于2010-04-27 09:19修改过]

lendo
2010-04-27 10:37
2010年04月26日 16:50 "banq"的内容
止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得! ...

现在中国的软件行业,有几家公司能够有这样的心态?在做软件的从业者又有多少人有这样的心态呢?国人智力并不差,差的是总结经验的能力,差的是一览大局的能力,差的是沉下来的能力,除此之外,现在的高校教育,职业教育也都应该反思一下了。

[该贴被lendo于2010-04-27 10:38修改过]

jentrees
2010-04-27 11:05
强烈赞同。

软件本身作为工具,帮助人们的提高工作效率,促进生产力发展。

一件好的工具就是一件好的艺术品,软件也不例外。

EvenNever
2010-04-27 11:38
其实我对软件的看法就如江湖

会有很多门派 都有自己的绝学 每种功夫代表语言 和对语言的理解使用程度

因为人的原因所以江湖混乱了...

想要一统江湖 是个愿望。虽然你的绝学是公开的 但是会不会有人接受

那就不很确定了。毕竟人嘛从没有两个相同的。思想就更是千奇百怪。

一旦绝学被划定阵营(正派 邪派)那就是很难解决的事情。

一点点见解。

参与争斗的都是人

[该贴被EvenNever于2010-04-27 11:40修改过]

猜你喜欢
2Go 1 2 下一页