如何看待兼容性

起因:  昨天在看書的時候,有兩個函數着實讓我鬱悶了一番——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個或者更多的函數讓你選擇,你是不快要崩潰掉?!       我想我會。
      而且, 如果我記得沒錯的話,當初喬幫主推出全觸屏手機的時候,也是一片不看好之聲。 大家都習慣了鍵盤,鍵盤多方便阿,又有觸感。 但最後,也就是現在,不用說了都知道是什麼樣一個情況。        而當初那些貪生怕死之配輩——半觸屏半按鍵的手機,也幾乎消聲覓跡。  試想當初如果喬布斯,堅持保留兼容性,推出的蘋果是半鍵盤半觸屏。 現在的格局會是怎麼樣的?!         改變總是痛苦的,但鳳凰涅磐、雄鷹擊喙。 過程是痛苦的,但得到的結果絕對是質的飛躍。  不是有句話叫:長痛不如短痛。


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