如何看待兼容性

起因:  昨天在看书的时候,有两个函数着实让我郁闷了一番——memcpy 和  memmove。    memcpy还能理解,就是内存复制的意思嘛,memmove呢?  什么叫做内存移动?!!   继续往后面看,才知道这两个其实是同样的作用。 只是因为后来发现memcpy函数有一个小问题(说的是在复制过程中不处理内存重叠问题),所以又发明了另一个解决了这个问题的函数 memmove。 说到底就是同一个作用,不同的名字,但是为了保留兼容性, 之前的memcpy不得不保留下来,而给新的“memcpy”改名为memmove。           
    就在这,我就对这个兼容性产生了疑问——兼容性这个东西,究竟是好还是坏?   下面是我的一些观点和看法:
    
1. 就cpu而言:
      个人比较喜欢哈佛结构和RISC,所以愚认为,哈佛结构哈RISC要比冯诺伊曼结构和CISC更好(愚以为哈佛结构有更好的安全性,更快的速度;RISC更精炼的指令更统一的指令周期,能简化cpu的复杂度)。  但是在历史的发展中,intel和amd为了保持自己产品的兼容性,不得不延续X86的冯诺伊曼架构和CISC指令集,而放弃了“更好”的哈佛架构和RISC指令集。 以至于现在不得不采用内部RISC,外部在包上CISC(不准确,大概是这个意思),CPU的设计也越来越复杂越来越痛苦(现在ARM公司的崛起,我想intel和AMD也着实着急吧)。        如果当初他们果断的转变,那我们现在是不是有可能用上更好更快更省电的CPU呢?


2. API
      之前在学习windows 编程的时候,也遇到过很多类似的问题。最让我影响深刻的就是各种EX函数,和在字符集那儿产生了那些宽字符集函数,ASC集函数,居然还有一类常规的函数。     如果说这些,都可以通过慢慢的学习而接受的话。那么这个呢:  大家都知道,在32位的电脑上可以跑16位的软件,在64位的电脑上可以跑32位的软件。 这听起来真的很不错,以前的软件都可以用。但真正在32位电脑上跑16位的有多少呢?  但是就是因为兼容性,32位OS中不得不包含16位的API,虽然说这是好事,但无疑也是OS的包袱,不是吗? 愚以为,如果果断的丢弃,那肯定会有新的厂商或原来的厂商来升级那些16位的软件。这样的OS更统一,编程人员也不用为保持兼容性,而纠结与API的选择了。 对用户来说,更少的资源占用岂不是更好。
      
3. 库函数
      之前也提到了  memcpy和memmove这两个函数的问题。 我相信肯定也不只是这两个函数,大家也应该被这类似的问题困扰过。   但就是这样,为了兼容性,之前的不得不保留。就算是大家都知道那是有问题的,那几乎是用不到的,那是应该淘汰的。    就这样这种让人纠结的函数就月来越多,总有一天会到达一个不得不痛下决心来一次大换血(愚见)。


4. 互联网中ipV4协议和ipV6协议
      ipV4中存在的重大问题,就是ip地址严重不够用。 这个问题在零几年或者更早就已经被大家熟知了。  也提出了很多比较经典的解决方法(如:划分内网, NAT等等),但是真正能实际解决办法的还是IPV6。 但是为什么改革了这么多年的还是没有多大的进展呢?  我认为(接下来都是我的认识),还是该死的兼容性惹的祸。       大家在开发软件的时候,如果涉及到网络,第一想到的肯定是IPV4,而不会是IPV6。在世的产品都是IPV4,而如果哪个公司推出IPV6的必死无疑(也不可能,市面上的硬件大多基于IPV4, 不准确)。 就这样,问题就一直延续。  在零几年的时候互联网的发达程度远没有现在这么庞大的时候,来一次大换血,如今会是怎么样的一个状况呢?  至少我觉得现在这个时候要想在来一次彻彻底底的换血,真的太难了。
      
总结:    
      以上都是个人的一些看法。  兼容性的好处,这个也毋庸置疑的,intel和微软击败对手的原因也有这个。   兼容性能让用户更方便的使用新东西,能让之前的软件得到利用等等。      但问题也很明显,为了保持兼容性,付出的代价也是庞大的,就和滚雪球一样,才开始很小但是有了开始就不得不一直延续,问题必然会越滚越多。 到最后难免会难以收场。     试想有一天,一个功能的实现,却有5个6个或者更多的函数让你选择,你是不快要崩溃掉?!       我想我会。
      而且, 如果我记得没错的话,当初乔帮主推出全触屏手机的时候,也是一片不看好之声。 大家都习惯了键盘,键盘多方便阿,又有触感。 但最后,也就是现在,不用说了都知道是什么样一个情况。        而当初那些贪生怕死之配辈——半触屏半按键的手机,也几乎消声觅迹。  试想当初如果乔布斯,坚持保留兼容性,推出的苹果是半键盘半触屏。 现在的格局会是怎么样的?!         改变总是痛苦的,但凤凰涅磐、雄鹰击喙。 过程是痛苦的,但得到的结果绝对是质的飞跃。  不是有句话叫:长痛不如短痛。


关于兼容性这个东西,你怎么看呢?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章