发信人: rufi (学学汇编吧), 信区: Programming
标 题: [转载]看30年内软件技术的不变与变化
发信站: 日月光华 (2003年12月20日01:15:17 星期六), 站内信件
【 以下文字转载自 Software 讨论区 】
发信人: linjia(¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥), 信区: Windows
标 题: 看30年内软件技术的不变与变化
发信站: 饮水思源 (2003年12月09日12:52:50 星期二), 站内信件
我也来看30年内软件技术的不变与变化
这个实际上是和某个文章的观点进行讨
论,每个题目下,横线前是原文的观点,横线下面是我的观点
一.intel
x86 的指令集
原因很简单,如果这些指令集发生重大变化,那这行业开发、
积累的软件都不能运行了,变化成本太高。
即使从32位发展到64位、128位
,指令集的兼容是可以预见的。
----------------------------------
其实这个
东西出现变化的可能性最大。当然必须要说明的是这个变化是什么意思。我认为首
先x86独大的局面可能发生变化,其次部分x86兼容性可能会被抛弃,另外x86的兼
容实现方式可能会发生巨大的变化。
大家都知道winnt(包括win2k)是支持两种
cpu的,x86和dec alphi ,众所周知x86早期是cisc,后来慢慢的用risc的方式去
努力兼容risc的老指令集,而alphi是纯粹的risc。大家都知道现在x86和windows
独大,就是是所谓的win+intel联盟的表现。然而,微软从来也没有打算和任何人
一起做这个世界的老大。在这个联盟里面微软目前慢慢的到了更大的控制权。为什
么呢?
1、微软现在没有直接有利的竞争对手,而intel现在有amd这个
已经被养大了的狼孩。现在提linux在桌面上和微软的竞争还为时过早,现在几亿
的微软用户的习惯是不那么容易撼动的。即使目前linux的易用性已经超越了
windos,微软还有兼容性的法宝。兼容性的力量远大于易用性,你现在可以劝某人
使用linux,告诉他linux可以用adsl,可以用办公软件,可以听mp3,但是他可能
问你linux可以玩同级生么?还有大航海,还有….不要和我说wmware,我也很喜欢
wmware,但是那还是在用windows。如果被微软看到了,还是要跟你要钱的。
2、
微软正在通过往弱cpu相关操作系统转换,给自己获得更多的cpu的支持。
最早的dos和windows都是和x86代码紧密相连的。但是到了winnt时代,慢慢的微软
把操作系统分成cpu相关,cpu无关两个部分,这样一方面winnt可以支持类似dec
alphi这样的超级cpu,另一方面,微软可以在intel和amd的战争中左右逢源,成为
win+interl/amd联盟的真正盟主。
3、由于上面讲的微软在
win+interl/amd联盟中的主导地位,微软正在挑起intel和amd的战争。最早战争是
因为amd在制作兼容intel的芯片,intel做为被害者拿起法律武器,然后是当amd已
经在法律的制裁后,仍旧存活的情况下,intel试图利用自己的现有优势,不惜以
改变自己的发展道路为牺牲,想让amd无法跟踪升级兼容,但是收效甚微。然后是
目前,amd和intel都在兼容原有的x86体系下,提出各自不同的发展方向,这个时
候微软没有阻拦他们这种背离标准的行为,反而做出各种不同的特性都支持的姿态
。这样,intel出一个多媒体优化,amd马上也出一个,两者的驾构和特性越来越背
离。这样微软成为了win+interl/amd真正的统一者,也就是唯一的标准制定者(这
种情况下,intel和amd的各自标准如果得不到微软的支持,而对方的标准得到了微
软的支持,那么打击将是非常沉重的)。
微软在win+interl/amd联盟的主导地位
意味着什么?我认为如果不改变的话,意味着win+intel/amd/dec/…后面会跟着
无数的cpu,也就是说操作系统是唯一标准,而cpu进入无尽的战国时代。因为毕竟
兼容x86是一件很简单的事情(这个问题包含两个层面,一个是技术的,要兼容那
么多乱七八糟变化的本身就很不完美的一个cisc结构的指令,另一个是法律上的,
你同时要绕开intel和amd在相关领域的所有专利,这个任务几乎不可完成。),但
是兼容winnt结构就相对容易多了。
另外就是虚拟机技术的成果也更多的让人们
开始脱离x86代码的束缚。在软件上vmware是一个典范,现在通过vmware我们虚拟
出来一个x86的计算机。硬件方面transmeta的crusoe芯片则可以运行x86的模拟代
码,从来让人以为这个cpu是x86系列的。这两种技术都给不同类型的cpu平台,运
行浩如烟海的x86应用程序打开了方便之门。于是这两个技术也使得其他cpu厂商不
用和intel或者amd完全一致,就可以进入到win+ cpu的阵营中来。
二. 操作系
统 - 启动过程
系统加电复位、硬件自检、操作系统引导、内存管理、进程管理
、硬件中断处理、操作系统其它部分引导、用户 shell 引导等这一套流程应该不
会有大的变化。
----------------------------------
这些东西的变化当然不大
。键盘都多少年了,除了样子有点变化,有实质性的改变么?
三. 操作系统 -
内存管理
i386 的三层内存管理模式现在还看不出有多大的变化趋势。操作
系统的内存管理模式、api也不会有大变化。
----------------------------------
内存管理基本上不会变确实是这
样的。但是随着价格因素的变化,内部缓冲,内存,硬盘等等的配置方式可能会发
生变化。
四. 操作系统 - 进程(线程)及其调度
只要操作系统内程序的运
行是通过时钟中断或其它软硬件中断进行调度,那么进程是操作系统调度的基本单
位。如从某一天开始“独立的二进制组件”成为操作系统的基本调度单位,那可能
更多的是进程控制块的变化。“独立的二进制组件”的加载本身很可能就是进程。
----------------------------------
线程才是真正的调度单位,而且短时间内
不会有所改变。
五. 操作系统 - 文件系统 api
文件系统可能会不断变化,但
文件系统的 api 应该不会有多大变化。
----------------------------------
win系列的文件系统可能会有一定的改变
,但是不会很大。这点同意。
六. 数据库 - sql 语言
关系数据库的理论与产
品技术已经非常成熟,对维护到现在已经保存的大量数据而言,sql 语言是很难被
替换的,xml 可能将会与 sql 合作而不是替换。即使对象数据库理论及产品成熟
了,sql 肯定将被兼容。
----------------------------------
sql变化应该不
大。
七. 网络浏览的协议与格式 - http、html、
就算大家对 html 再不
满意,其修改、进步的步伐也不会很快,太多的信息内容保存成这种格式了,变化
的成本太高。
http 是与 html 相伴的,变化不会太大。 更是如此。
----------------------------------
这个可能是变化很大的一个部分,http协
议目前还看不出来有什么需要改变的。但是html可能会经历极大的变革。
八. 电
子邮件的协议与格式 - pop3、smtp、mime
pop3、smtp、mime 也已成大规模,变
化的成本很高。
----------------------------------
pop3很简单,是最可能改
变的地方,而且pop3的改变几乎对整个的影响不大,对邮件客户端的影响最大,
hotmail.com从来也不支持pop3但是活得很好,就是铁证。smtp会继续升级,但是
必须兼容。mine没有变化的必要。
九. 网络协议 - tcp/ip 族
ipv4 到 ipv6
是可以看到的,但 tcp/ip 的基本结构及 api 应该不会有多大变化。变化的成本
太高。
----------------------------------
无线局域网,2.5g,3g,甚至4g等
等技术的竞争对我们以后的网络环境有着深远的影响。虽然从目前看来,ipv4到
ipv6好像还缺乏动力,但是这个进程很可能会突然加速。
十. 微软的windows
- windows
除非连续发生重大经营失误,否则微软是不会简单倒下去的,关
于这个主要不是技术的问题,不多说。简单认为 windows 会存在很长的时间。
windows(产品) 中的 windows(窗口技术)是精华,已经很成熟,其相关的
api,包括 gdi、消息机制、common controls等不会有太大变化。就算以后以组
件的形式出现,那也只是 api 的另外一种形式。
----------------------------------
windows现在的形势很好,但是
也不说明就没有任何的危机。诚然目前在桌面系统上面,还没有任何对手。但是在
服务器领域,windows的日子并不是定很轻松,unix/linux/freebsd/sun等等都在
和他抢服务器市场。至少在目前来看,winnt和win2k抢占的都是中小企业市场,大
型企业的市场都还牢牢地掌握在unix阵营。
但是今天以来,windows臭名
昭著的安全问题达到了某种顶峰。很多企业甚至开始怀疑windos做为商用pc的操作
系统是不是合适的问题。
十一. 微软的windows - directx
只要老百姓还在用
windows,那么 directx 作为游戏的开发平台会长期的保持下去。
——————
————
变化不大
十二. 开源组织与 ibm 的 linux - shell、xwindow
开源组织现在看不出任何的前景衰落,ibm 已经发展了百年,他们联合推动的
linux 再活 30 年应该没问题。其基本的 shell 与 xwindow 结构不会有太大变化
。
——————————
linux可能会早遇到的一个对手可能会是os,我现在越
来越确信,一个专为应用的操作系统极有可能在5年到10年内出现,一个真正的二
进制机兼容的操作系统。而且有迹象表明,在易用性上的进步速度快于linux。
十三. oop 语法与思想
编程语言是编写逻辑、调用 api、解决问题的工具。
其中的 oop 语法现在方兴未艾,引导了编译器、虚拟机、api 都向其转变。若干
年后,即使编程语言又发展革命了,oop 很可能将作为其基础。
———————
———
oop的发展还是有前途的。
十四. 算法
可以说是数学的一部分,包括
纯数学算法与应用业务逻辑或应用算法。解决问题的算法的生命力是永远的,独立
于系统、编程语言。即使我们研究不出来新算法,但掌握某些算法是应该的,这是
掌握基本软件开发知识后的长远竞争力之所在。
——————————
算法本身
变化不大。但是算法的发展方向在发生变化,并行算法,等等才是发展方向。
二、变化比较大且影响比较大的
1. 产品外观、用户操作界面与交互方式
产品外观、界面与交互方式的变化永无止境。像微软这样的公司在这方面投入巨
大精力。实际上这是给老百姓看的,不是给开发人员的,但在很大程度上会影响开
发人员的产品外观设计、界面设计及交互设计。
————————————
这
个方面的改善是无庸置疑的
2. 编程语言、编译器及其支持库、虚拟机
具体的编程语言与编译工具的选择使用是程序员、开发部门自己的内部事务,一
般与系统api、产品市场需求、开发结果等无关。影响编程语言与编译工具的选择
使用的因素非常多,变化性很大。就算一个编程语言或其相关的编译工具的生命周
期很长,但也很难保证被一个开发团队长期固定使用。过度沉迷进而局限于某个编
译工具的风险很大,但不钻研到一定深度很难做出来好东西。
这个没什么好说
的
3. 开发管理模式
不同的产品、项目,不同的应用平台,不同的编
程序语言,需要针对性的开发管理模式。即使使用相同的 oop 语法的编程语言,
针对不同的产品或编译工具其开发管理也是不同的。开发管理其实是组织开发人员
利用编程语言写出结果的过程,当然应该不断地进行调整。有一些粗线条的管理理
论只能进行指导,真正的实践是另一回事儿。
这个也没有什么好说的
4.
开发技术的应用需求
随着软件应用平台厂商、开发工具厂商的不断的产品升级、
市场推广活动,以及社会消费热点不断的变化,市场客户对开发技术的需求不断地
进行调整。
没什么好说的