最近因為Windows 7 Beta的釋出,又掀起了XP、Vista、Windows 7誰比較好,以及為什麼XP使用者不昇級Vista的論戰。
有些人只想討論UI,把相容性和效能放一邊,認為這兩個是時間(等軟體都支援Vista)和錢(大家都昇級高檔的硬體)的問題,遲早會解決,但真的是如此嗎?
有興趣的人可以看看Joel on Software
(
英文http://www.joelonsoftware.com/articles/APIWar.html;
中文http://local.joelonsoftware.com/wiki/The_Joel_on_Software_Translation_Project:微軟如何輸掉API戰爭
)
的
The Two Forces at Microsoft
Microsoft Lost the Backwards Compatibility Religion
其中有一段的內容如下:
Raymond Chen is a developer on the Windows team at Microsoft. He's been there since 1992, and his weblog The Old New Thing is chock-full of detailed technical stories about why certain things are the way they are in Windows, even silly things, which turn out to have very good reasons.
The most impressive things to read on Raymond's weblog are the stories of the incredible efforts the Windows team has made over the years to support backwards compatibility
只討論UI而不管相容性?不能跑就是不能跑,管你UI有多好都沒用。
neo.vista wrote:
最近因為Window...(恕刪)
這篇真的說的很深入,很貼切,
我本身不是高級的軟體工程師,
但在十幾年前,因為工作需要,
負責開發了十幾個,累積數十萬行的工程分析應用程式,
好在當初沒選在windows環境下開發,而是用DOS環境程序(Pascal,Basic,C++等),十幾年來都不用改寫,
如果微軟新的OS真的斬斷對過去環境的相容性,甚至連編譯程式都不能跑,
公司的決策,不可能是去投資幾百萬去改寫,而是要求電腦繼續維護使用XP以前版本OS.
如文章內所述,改寫已成熟軟體,生產力不會提高,
而且會陷入,定期需對應新的API重寫,否則仍要作廢的風險,
其實公司曾經試過改寫,但新的環境學習障礙很高,年紀大的人學不來,
年紀輕的,又無法了解原程式的物理意義,最終以花費兩年百餘萬,失敗收場.
es4241 wrote:
我本身不是高級的軟體工程師,
但在十幾年前,因為工作需要,
負責開發了十幾個,累積數十萬行的工程分析應用程式,
好在當初沒選在windows環境下開發,而是用DOS環境程序(Pascal,Basic,C++等),十幾年來都不用改寫,
如果微軟新的OS真的斬斷對過去環境的相容性,甚至連編譯程式都不能跑,
這個和DOS環境程序沒什麼關係,和軟體設計上如何切割非跨平台的部分比較有關。
老實講,幾十萬只能算不大不小的程式,而且切割的不好,不好意思,就算不到一萬行要改寫還是會痛。
這和微軟什麼的關係不大,如果你用過其他平台就知道Windows的向下相容性是相當好的,
改不動通常是程式設計師一開始就沒切好,會出問題的就是會出問題,這也是寫軟體常碰到的通病。
但是
去問問看哪個企業會為了微軟那些辦公室大部分用不到的新功能花大錢更新
時間與金錢能解決問題,但是 時間與金錢是企業最需要的
明明只需要一台小貨車,偏偏要給一台電子花車
然後催眠客戶電子花車有多少新功能,有多炫
辦公室不同於家庭使用
當舊的應用程式無法在新的作業平台上面執行時
(原因當然很多,怕為了相容性而拖垮效能,舊規格早該揚棄XXOO.........)
現在微軟會告訴你:應用程虛擬化可以不用重新寫程式就可以解決問題
但是,應用程是虛擬化卻又是一件大工程
我個人使用的話樂於期待 Windows 7 的問世
但在辦公室時,那個東西對我就可有可無了

認真就等著被關吧!LDS 請勿人身攻擊!
es4241 wrote:
標準的馬後砲,
今天開始寫程式,當然有更好的軟體技術可以處理跨平台問題,
但十幾年前開發軟體的時候,win 31都還沒上市,
那個工程師,在那個時間點,能夠透視到,未來會出現的跨平台問題?
而且工程應用人員,有義務與責任,去幫未來可能的平台構想?
你這麼天縱英才,就用Pasca(Basic,Fortran,C都可以),
寫個在windows Vista環境下,能跑的跨平台程序,
不用一萬行,只要一百行就可以,讓大家開開眼界吧.
這種大家都會寫的東西不用找我開眼界吧?
考量跨平台問題本來就是寫程式,尤其是寫模組的人必須要考量的。很多程式在建立的初期就有包一層wrapper,有和平台相關的東西就透過wrapper去叫,當然這只是一種做法,將平台相關的程式碼利用不同的make file隔開也是一種做法,但是你說完全不能考慮的話,我會懷疑這個程式設計師的程度,或者是這個人工作的時候根本不需要也沒人提醒他要注意這種東西。一般程式會切不開來的大部分是UI的東西,但是就算是這樣,核心功能的部分還是可以切成單獨的模組給UI程式用,達到UI綁平台,核心功能跨平台的效果,前提是你的程式要處理的東西和作業系統不大相關。
我還以為這是常識,至於compiler消失這個問題那就真的沒辦法,只能說挑到不夠長命的語言,不過如果是用C或C++看起來根本不用擔心這個。
內文搜尋
X



























































































