banq
2008-08-30 13:40
>我只是想说说我们虽然能写出看起来还很好用的软件,其实骨子里对设计的本质的了解还差的远呢,我们只是站

>在程序设计的一个点上,是用别人的设计做设计。

这是典型的向下思维,这个思维其实我已经说了很多遍,你用电视机,不必知道电视机怎么制造的,除非你想制造电视机,如果你想,你花力气,也是会了解,但是这个市场面很小,更大市场面是电视机使用,所以,我们软件教育就应该为这个使用市场服务。

我们是站在程序设计的一个点上,是用别人的设计做设计,这是对的,因为你做的设计就是创新,是别人创新的延伸,火药你设计发明了,你用来做鞭炮,别人继续再设计,发明火器,迎来一个人类文明新时代,你说老外会为火药的开始设计是中国人而一直耿耿于怀,甚至不屑于在火药上继续设计吗?

另外不要小瞧应用领域,应用实践是一切科学的来源,有些学问本来来自应用设计,用处大了,架子大了,上升为一个独立学派了,也至此开始离开应用了。

我们如果把“应用”看成一个对象,很显然,你的学问也是一个独立对象,当然不管你们是关联和聚合,至少和“应用”这个对象有界限区别。所以,很多人就开始厚此薄彼了。

只有站在应用第一线,才能颠覆别人的成就,这比你成天跟在别人屁股后研究人家手里设计原理要更强,是一种更巧的方法论。就象老外站在应用第一线,将火药用处颠覆,创造新的更大用处,如果请外星人来评奖,到底哪个贡献更大呢?

站在软件应用第一线,你就会发明发现OO方法,而OO方法颠覆了过去数据库方法,这又是一个成功案例,可惜,发现OO这个颠覆方法的又不是我们中国人,我们中国人的一部分还在向回看,心里惦记着人家数据库设计内部奥秘,一直琢磨怎么把它研究透彻,结果,人家已经到了OO时代,到了OO时代,你还没反应过来,这些都充分反映要么我们太笨,要么哲学方法论掌握就不到位,只顾低头做学问。

中国古人先秦诸子那么聪慧,特别是老子 道德经,更是人类巅峰,结果我们这些所谓后人却被繁缛细节羁绊,不能理解什么是大智慧,这些是我们落后的深刻原因。

[该贴被banq于2008-08-30 13:57修改过]

bookview
2008-08-30 23:04
>只有站在应用第一线,才能颠覆别人的成就,这比你成天跟在别人屁股后研究人家手里设计原理要更强,是一种更巧的方法论。就 >象老外站在应用第一线,将火药用处颠覆,创造新的更大用处,如果请外星人来评奖,到底哪个贡献更大呢?

老子的道德经之所以伟大,是因为他强调了事情是发展变化的,而且注重渐变,而且描述了一个循环演变的过程,后来的诸子只取其中一环来进行深度研究。我们为什么要学习,无非就是更好的认识事物的本质,让事情住更合谐的方向发展。如果老外总要要到中国来进口的话,自己不懂原理,他怎么可能把火药变成炮弹,炸弹,怎么去改良火药。你用最原始的方法来制造火药的话,火药也不可能有现在这么多功能。发展变化是循环式的是一个相互作用的结果,最后物品与物品的功能才有质的变化。只能说我们国家的整个软件行业都处在一个学习的阶段,学习成绩要好就得做死的去做习题,背知识点。呵呵,把高中的习题交给交大师去做还一定能做出来呢。

>这是典型的向下思维,这个思维其实我已经说了很多遍,你用电视机,不必知道电视机怎么制造的,除非你想制造电视机,如果你 >想,你花力气,也是会了解,但是这个市场面很小,更大市场面是电视机使用,所以,我们软件教育就应该为这个使用市场服务。

正对Banq大师所举的例子来说,制造电视跟使用电视的群体,谁最终撑握着电视机新功能的开发?我想大部分人都会认为是制造电视的群体吧。谁在指引着新功能开发的方向?我想大家不会不赞同是电视机的使用者吧.什么是设计师,也只有制造电视的群体中才会产生设计师吧?对于一个国家来讲谁也不想每台电视机都是进口的吧?当然软件跟电视机来比有很大的不同,同时也说明了我们自己还没能力去做好软件的上层开发。

正是因为我们国家的软件产业中的高端,不愿意去花力气了解费力不讨好的事情,我们这些后辈还得天天去看翻译过来的资料,跟着别人跑人家说了算,而不是参考吸收。讲到这我不得不向让中国导弹理论达到国际先进水准的先辈们,不得不对毛主席那高瞻远瞩的思想致敬。不知道什么时候才能出理软件行业的<道德经>,希望在生前还能看到吧。

正如我认为软件设计核心总会是数据及它本身在客观世界中的意义的管理方法论,我想把类看成客观世界中的意义(概念的定义)不会有太多的反对意见吧.数据库跟OO的产生是不同的侧重点而发展出来的技术,数据库强调数据的管理,而oo侧重于的意义管理.如果把数据管理及意义管理看做软件一个进化的循环的话,数据的管理思想先进了对数据意义的管理当然也会跟着进化。我猜测,对于侧重表现出对意义的管理的java语言,java语言编译器应当有着强大的数据管理功能,设计编译器的时候有充斥着大量的功能代码吧。

[该贴被bookview于2008-08-31 00:51修改过]

freebox
2008-08-30 23:24
就说数学吧,总去研究一些不等式,虽然我没念过大学,但我知道到了大学是有凹函数和琴生不等式可用的,本来一个对中学生困难的问题用更高级别的理论去解决就更容易,整天把那些中学的技巧弄熟,还有的不熟,又困难又没规律,还不如高级方法。再说平面几何,到了高中是有解析几何可用的,把低级别的几何技巧弄得再熟,在有计算机计算的条件下它也不如解析几何快,量化一下解方程就出来了。

所以大师到底还是大师,尽管他不会解一些高中的题目;中学生也终究是中学生,尽管他会一些大师不会的。

毛委员长还说过洋为中用,古为今用,取其精华,去其糟粕呢,这怎么不提呢?这不就是要继承先进的,摒弃落后的吗?导弹为什么要研究基础理论?因为人家不公开,软件为什么不完全需要这样?因为人家有大量公开的东西。

各人有各人的路,计算机领域里也不是只有一种业务软件,想做操作系统和服务器的当然也有,但是现在的情况也不能没有做业务软件的吧。

freebox
2008-08-31 11:19
说白了就是每个人都想干什么,方向不同,知识体系也不同,工具也不同,平台的层次也不同。

一个做业务软件的不需要知道他的服务器上有多少晶体管,一个做计算机硬件的也同样不需要知道打折率是什么东西。

bookview
2008-08-31 20:53
其实这些说词都偏离了我发这个贴子的本意,在这争论程序设计是怎么发展变化的,而不是讨论什么样的程序由什么环节组成,什么环节做什么事情达到什么目标;为什么要这么做,做好这些事情要学什么知识用什么方法,出现问题了去什么环节解决问题才是最好的选择。正入freebox说的‘一个做业务软件的不需要知道他的服务器上有多少晶体管’。但是如果没有人把服务器上的对晶体管变成能执行软件的环境,我想也没有软件设计这个行业了。

事情的发展变化就是由事情的各个环节其同作用的结果,如果我们对各个环节都没有一个从整体上统一的认识,片面的了解事情谈什么改良。

软件设计发展到现在什么要分层,为什么会出现框架,容器这些概念,这些东西在开发过程中起什么作用?在java程序开发中现在三件宝为什么会是“域建模”“设计模式”“框架”?这些达人们了解原因,但对于一个初学者确要经历过九死一生才能顿悟。为什么达人们不整理一下宝贵的经验,给初学者一个渐悟的引导。等到国外又出现什么新的方法大家又说它有多好,问个为什么,只能说XX大师说它好。如果我们有一个整体的认识,在使用过程中至少不会迷失方向,初学者至少有个渐悟的指导。

正如完成产品流水线上的每个工序一样,我们也只是软件设计中的一道工序上的工人,处于什么工序只做什么事情,而不是做该是别人做的事情。真正能改良产品的绝对不会是工序上的工人,工人最多是出个宝贵改良的意见。

我想问的其实是的软件设计需要多少道工序,每个工序又是解决什么问题的要做什么事情的。不是书本让的说词,而是大侠们对自身经历过后一些的简单的思考,给我们这些后进的求道者一些指引吧了

猜你喜欢