※ 引述《sniffer@kkcity.com.tw ()》之銘言:
: ※ 引述《HZYSoft.bbs@ptt.cc (PCMan 2004)》之銘言:
: > 前文討論的是 Win32 API,並不是在討論 DirectX API
: > Linux 上 gtk+ 1.2 和 gtk+ 2.0 也是大改, Qt 3 到 Qt4 也是大改
: > 開發人員為此也是一直相當頭痛
: 可以用 OpenGL, Xt, Xm...etc
: 誰規定要用 gtk? game 就沒用 gtk
gtk+ & qt 都有類似的問題,而他們所寫的軟體目前佔桌面程式的大部分
拿這些來比較並不會太過分
: 寫 winxx game 不用 directx 你能用啥?
OpenGL,你上面不是說了嗎? SDL 也可以用
還有其他強大的 知名lib,當然某些 lib 底層可能還是要 DirectX
但是對於 game developer 來說,你說的問題可以減低不少
: 一些新 driver 沒 directx 也不能用, WDM 被拿掉囉
: M$ 封閉平臺逼你用新規格, IDE 把舊東西取消, 就是綁死你
: > 就是碰到過其他 distro 包裝的 lib 有問題的,真的是有出過問題
: > 該 distro 不是別人,就是 Fedora Core
: > 要出問題也不難,您可以試試看開發 mozilla XPCOM 真的是大問題
: IE 連 html 都有版本相容問題, 新舊 IE jscript 都可以互不相容
: mozilla 延用 netscape 的 plugin 也比 IE 的 activex 變化少
我跟你說的不是這個,沒有打算筆戰,跟你保證你自己寫過一次就知道了。
你要不要試試看 netscape 上不上得了 mozilla extension
這樣的比較跟我本來的用意差滿多的,總之您自己寫過一次就會了解
: > 光 makefile 就寫不出來了,編譯好了還真的不知道怎麼讓它 run 起來
: > mozilla Taiwan 提供的 Linux build 也曾發生過在 Mandrake 很正常
: > 在 debian 不能執行的問題。 類似的例子隨便列舉還有很多
: 很多都是為了 i18n 字型, encoding...
這點我可不敢講,因為遇過幾次當機原因不明,而那和 i18n 似乎沒有關係
: i18n 的問題, 在 windoze 更嚴重
Windows 在這方面確實處理得很爛沒錯
: glibc 支援的國家可遠比 win32 多
: 同一個 mozilla 可以隨意換語言用, IE 就完全不行
: 同一套 linux 也可以隨意換語言用, windoze 要灌 n 種版本
: 同一個 openoffice 也可以隨意換語言用, office 要灌 n 種版本
: ............
: 還有 windoze 下不能開其它語系檔名的檔案, 也殺不掉,
Windows NT 系列的應該可以,檔名是 unicode
: win32 api 遇到 i18n 全掛
: unicode 不是萬能, 我們都背著 big5/gb2312.... 的包袱
: BBS 也是 big5
我所謂的不能執行很多都不是 encoding 造成的
: > 當然,硬要弄還是都有解決方式,大不了都自己重編,問題就是很不方便。
: > 其實很多都有文件,只是不容易找到,主要的部份並沒有變動過
: 系統設定, driver info 放的地方天差地遠, 主要的部份指何物?
: > FreeBSD 和 Linux 就有些檔案位置不同了
: 對呀, windows 跟 Linux 也有些檔案位置不同了
: 應該相同嗎?
我只是想說 Linux 程式要拿到其他地方使用必須修改不少
Windows 程式也是,比起來並沒有真的差那麼多
: winpc 跟 wince 差別比 Linux/SunOS 還大不是更誇張
: > 非 .net 的部份沒什麼變化,只有 IDE 變難用,.net 不是改變,是新增功能
: VB.net 跟 VB6 是不同語言,
: 直接拿 VB6 code 在 vb.net 是編不動的
抱歉這是我沒講清楚,這裡指的是 Visual C++ .net
: > 這點你說的沒錯,完全同意
: > Win32 下仍然可以用 Win16,Windows 的向下相容做的不差
: 會莫名的當掉或關閉視窗時 access violation 不算向下相容
: 拿來賣的商用 application 可以出現這些嗎?
大部分是 developer 自己的問題,access violation 很少是 OS 自己的問題
不要跟我說 Linux 上的程式都不會 access violation,那就是睜眼說瞎話
: X11 從沒這種鳥事
誰說沒有,X11 的鳥事也滿多的,去看一下 bug 的紀錄就可以證明
X11 死當或者 segmentation fault 小弟不巧全部都碰過,而且是預設安裝
根本還沒動過任何東西的時候。 您這樣的比較也很奇怪,拿 OS 比應用程式
X11 只有相當於 Windows gdi32.dll + user32.dll的部份。
請不要把 X11 神化了。
: > 會有問題的是 API 有 unicode 版本跟非 unicode
: > 而主要會有問題的是 Windows NT 和 9x 的 API 行為不一致,不同版 Common control
: > 也有很大的問題。 MSDN 有些 example 確實是亂寫的,甚至有看過用法錯誤的
: > 不過.... gtk+ 連 doc 到現在都不齊全....相形之下 MSDN 很完整
: > Win32 SDK 我還滿常用的,也見識到不少麻煩處,確實是很惱人沒錯
: 無法安心重用舊 code, 重用性==0
無法安心重用很正常吧,本來就沒有任何平台敢保證這種事情
重用性 = 0 請問那一大堆別人包好的 library 都是垃圾嗎?
: 寫程式還要配一堆實測人員就是成本
貴公司的程式都沒有實測人員嗎?
Open source 程式比較能仰賴社群的測試,Propriatary 又是另一種狀況
本來測試就是程式開發必須的部份,用什麼平台都一樣
問題大多數是出在 developer 自己本來就沒寫好,不必急著全部牽拖到開發平台
: pcc* 不就吃過 xp sp1 的大虧,
: 賣 winxx application 得準備 n 種版本的 winxx 在 n 種 pc 跑來測
: 安裝時 dll 檔有 n 種可能版本組合, n>50
這個問題可以用 windows xp 的 assembly 解決
而這是傳統老 Windows 的問題,到了 .net 狀況應該會有所不同
拿過去的缺點來說未來的 Windows 不好用,有點沒說服力
: static link 的 linux application 只要在 2.4/2.6 跑一下就知道了
App 並不是有 kernel 就會跑,而你不可能 static link 所有東西
: > Win32 API 當然不行,但用其他 lib 包裝確實是可以,也不難
: 比 unix 間 porting 難多了
如果你用別人包好的 lib 事實上不會,何況還有 Cygwin
: > 當然會,你的程式並不是有 kernel 就會跑的,眾多 lib 中只要一個有所不同
: static link 會消除這種問題, winxx static link 還是無法避開運作不同
你並不可能全部 static link,不信可以自己試試看。
: > 就有可能運作出來會不同,當然那都可以克服,但是浪費時間克服這些問題
: > 會降低效率,也是我所謂不該神化 Linux 下開發的方便性。
: 完全不變當然很難, 但是 posix api 定得比 win32 實用且精簡是事實
Windows API 如果真的像你罵的這樣不值,很難解釋為何用它寫出來的 App
還有這麼多。 很多的不精簡是為了向下相容,有些東西不實用是真的
但這樣的比較仍然不合理,這是設計哲學的不同,它包了所有東西進去
Linux 下你得裝一堆 lib 才能涵蓋 Win32 API 提供的功能。
更不要說是 .net 了。 我不覺得 Windows 上開發好用,也不覺得 Linux 難用
只是單純的就個人開發經驗認為,多考慮一些因素後差距並沒有這麼極端。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.129.59.3