一、软件这个概念是对应硬件而存在的。
而硬件就是摸得到的实在物质,而软件是摸不到但是却以逻辑的形式存储在硬件上的信息。我想举个例子,就好像DNA,脱氧核糖核酸和那些碱基对就好像硬件他们是载体,而那些碱基对的序列顺序就存储了信息,这些信息就是软件。
但是,这样的概念是广义的,它可以用到单位和员工上可以用到动物和动物园上,不过其实说Software这个概念应该还是比较偏重于表述信息对于计算机的意义的,其它的意义是从计算机软硬件的关系引申而去的。
所以,还是把软件这个概念放到计算机领域比较的原汁原味。
以我的理解,计算机软件应该是按照特定的计算机指令的规则进行组织的(就好像人的DNA是有固定的4种碱基对形成),可以完成特定的逻辑任务的信息组织。所以我想这里就是从外在界定软件定义的重要角度,一它是按照某种特定的计算机硬件指令规则组织的,还有它一定能够完成或者协助完成某种逻辑工作。不能完成功能的信息垃圾就不是软件,但是不能运行但是却可以支持其它逻辑运行的部分却还是软件,不能运行于任何计算机硬件体系的伪代码也不是软件,这样界定我觉得是比较合理的。
软件从外在是容易界定的,但是从内在上就比较难以界定了,我这里就不班门弄斧了,等我再深入体会一些念头再进行总结吧。
二、我和我接触到的软件的过程
初中学习了长安计算机(8位)的Basic,我对软件的认识就是Basic语言。我是在97年拥有我的第一台计算机的,当时是刚上高中,在此之前已经仰慕已久。有了计算机我就更多的认识了软件,当时我认为Windows 95和DOS是软件,那些小工具是软件,游戏是软件,那些计算机性能测试工具是软件,我想那时我对软件的认识就是包着盒子的那些软盘,但是这样的认识还是隔了一层盒子。后来的计算机病毒风暴让我认识了防病毒软件,知道了软件原来都在不断的更新升级。再后来我对硬件感上兴趣,在深入了解了计算机的结构以后我知道BIOS是软件,驱动是软件,OS是软件,OS上运行的那些也是软件,通过编程语言软件在不断的变出来,不断地进步。这就是我对软件的感性认识过程。
三、从认识软件的过程体会软件的特点
体会对软件的认识过程,体现了软件的一些特点:
1、BIOS,OS,驱动,告诉我硬件是死的,但是软件是获的,软件是计算机的灵魂,它通过生硬的硬件上面的指令机制抽象模拟了人的逻辑工作,让计算机活了起来。所以这个特点是软件是灵魂,但依附硬件存在。
2、PHOTOSHOP、DREAMWEAVER……,软件可以作为工具,它可以帮助人完成很多工作,带来很多工作效率的提升。随着工具的进步,人也在适应软件辅助下的工作。所以这个特点是,人设计了软件,但是软件却可以更大的帮助人,这就和各种工具的发明一样,磨刀不误砍柴工,软件是人造的工具。
3、C++,VC++,VS.net,不管是语言本身还是编程使用的IDE,软件的发展过程,开发过程都是螺旋形的,它的进化就好像蜕变,软件本身是工具,而软件这种东西本身又是通过软件这种工具开发出来的。原因还是软件要把高级抽象规范到有限的计算机指令上,所以他的开发肯定是阶梯式的前进。而人也为软件开发进化了很多的学科,数学、逻辑、方法学、哲学都在为软件的进步服务。软件的这个特点是工具造工具,自我推进。
4、病毒、漏洞、Bug,这些几乎是和计算机天生而来的,软件则能把它们表现得更加淋漓尽致。人的思维是模拟的,所以本身不存在完美,数字化的抽象就会带来更多的缺陷,所以软件的进化很多也是自我斗争的过程,人对软件漏洞的对抗过程本身就是软件发展的一个主旋律,并且这种都争从哲学上讲我想永远也不会结束。所以这个特点是软件本身就是不完美的,永远在自我完美的斗争中。
5、看看OS的进化,真的是软件中的一段传奇,可能最传奇的就在于此。97年我读过大众软件创刊号上的OS演义,非常精彩。可以看到软件的发展方向就是供能更强大、逻辑更复杂、运行更稳定、更适合人的使用习惯,任何有反这个方向的软件都慢慢消亡了。而最重要的就是随着软件的发展人性化更加的重要,这和软件的起源还是息息相关,因为软件生在抽象冰冷的硬件结构,但他却是注定为人而服务的,所以他要把自己装扮得像个人,人机界面就好像人-人界面一样的亲切友好。所以软件的一个特点,以人为本。
6、还有……很多
四、最后
我一时也想不起来了,说起软件也是话匣子打开了,但是基本上都是有一点废话,希望理解。我只是在认识的路上站下来想一想,就好像看到春天发芽的柳枝一样感慨一下,走在前面的人太多了,我捡拾他们遗留下的宝贝,慢慢认识这个数字化的世界 ^__^
下次有时间继续考虑……
2005.3.28