※ 引述《HZYSoft.bbs@ptt.cc (PCMan 2004)》之銘言:
> 這篇文章要討論的只是把很多因素加進來考慮,
> 並不該真的一面倒的認為 Linux 上的開發就一定比較好
雖然是「把很多因素加進來考慮」,
但總覺得互相比較的東西還是有一點不對稱,
如果要說 Linux 各 distributions 之間開發的程式不相容,
其實最接近的方式應該是把拿 MS-DOS 6.22、Win 95/98、Win NT/2000/XP 來比較,
不過它們之間還是不構成可比較性的差異,
因為 Linux 不管是用哪家的 kernel 都是同一個(版本可能不同甚至可自選)。
至於 GCC 從 3.x 升級到 4.x 這點,
跟 GCC、Linux、Windows 其實都無關,
而是跟 C/C++ 的標準變動有關,
事實上 3.3 -> 3.4 就有了把 <varargs.h> 換成 <stdarg.h> 的動作,
讓一堆老舊程式碼無法通過編譯,
這就像 VC6 -> VC7 原本 <iostream.h> 會 include 不到一樣
(這句話是靠印象說的,因為之前版上有人發問剛好我那時手邊有電腦裝 VC7)。
所謂 debian 上可以跑但是拿到 fedora 不見得能跑的情形,
跟把 win 95 能跑的執行檔丟到 win NT 不見得能跑是類似的情況。
而 Linux 的程式要丟去 FreeBSD 編譯,
這就比得有點太超過了.....
這樣比跟 Windows 上能編譯過的程式拿去 FreeBSD 不能編差不多,
Linux 和 FreeBSD 在血統上就不一樣,
甚至連血緣都幾乎沒有,
要說是遠親也已經很牽強了。
而 POSIX 這種東西並非是 Unix 和 Unix-like 專用的,
只是有些 OS 就是不想去遵循而已,
然後加上「剛好」願意遵循它的 OS 其實也沒有 100% 遵循,
所以這只能說明 POSIX 這個標準沒有徹底發揮它的功用說。
另一個重點是 Linux 本身只是一個 kernel,
它不算是一個完整的 OS,
跨 distributions 的比較已經屬於不同 OS 之間的比較,
所以我是認為如果真的要比較,
最好是侷限在 Linux 的某一個 distribution 內(僅版本不同),
不然就算立意是正確的,
在說服力上卻會比較弱,
不足以說服偏執於某些信念的人。
儘管我覺得您的互相比較對象在選擇上有點奇怪,
不過我倒是沒有反對您發文的基本用意,
就可攜性而言其實不管在 Windows 還是 Linux 都佔不到多少便宜。
至於前面那位板友所說的:
「
程式可再用率?
一天到晚換架構的 platform 程式可再用率==0
學習 M$ 的使用和 programming 是自找苦吃
一天到晚要重來, 浪費大家時間
既然都是要重來, 還不如換個穩又省事的 platform
因為一直換, M$ 教育成本絕對是比 Linux 高得多
」
我也認為這樣講的確有點太極端(雖然看起來比較像是語病),
而且就 programmer 的角度來看,
問題並不是出在 platform 上,
因為總是會有一群人去寫出 platform-independet 的 libraries 和 frameworks,
選用這些東西就不會帶來太多的麻煩。
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Chung Cheng University
Department: Computer Science and Information Engineering
Researching: Porting GCC and Implementing VLIW instruction scheduler in GCC
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.16 > ╰─╮
╚╦═╦╝ ╰ * From:218-171-140-241.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎
--
* Modify: tinlans 05/09/17 4:33:35 <218-171-140-241.dynamic.hinet.net>