※ 引述《HZYSoft.bbs@ptt.cc (PCMan 2004)》之銘言:
> gtk+ & qt 都有類似的問題,而他們所寫的軟體目前佔桌面程式的大部分
> 拿這些來比較並不會太過分
商用的並沒佔大部分, 商用的
> : 寫 winxx game 不用 directx 你能用啥?
> OpenGL,你上面不是說了嗎? SDL 也可以用
opengl 只是 3d, 其它部份還是要 directx
> 還有其他強大的 知名lib,當然某些 lib 底層可能還是要 DirectX
> 但是對於 game developer 來說,你說的問題可以減低不少
game 都是 binary, 用這些不夠方便
我說的是在賣的 game, windoze game 有用啥強大的 知名lib 減低問題嗎?
windoze game 只好自備 directx 一包, 不小心還把你中文 directx 蓋成英文
或者把你系統給降版
> : 一些新 driver 沒 directx 也不能用, WDM 被拿掉囉
> : M$ 封閉平臺逼你用新規格, IDE 把舊東西取消, 就是綁死你
> : IE 連 html 都有版本相容問題, 新舊 IE jscript 都可以互不相容
> : mozilla 延用 netscape 的 plugin 也比 IE 的 activex 變化少
> 我跟你說的不是這個,沒有打算筆戰,跟你保證你自己寫過一次就知道了。
> 你要不要試試看 netscape 上不上得了 mozilla extension
我用 mozilla 寫過整套 kiosk, 還修過 mozilla 中文 bug
netscape 怎麼可能未卜先知支援 mozilla extension
> 這樣的比較跟我本來的用意差滿多的,總之您自己寫過一次就會了解
> : 很多都是為了 i18n 字型, encoding...
> 這點我可不敢講,因為遇過幾次當機原因不明,而那和 i18n 似乎沒有關係
只 tw build 掛的話明顯 i18n
當機是 bug 不是 api 改規格的話不算大問題, 新版總會修得了
> Windows NT 系列的應該可以,檔名是 unicode
vfat 只能用 big5, 除非舊 data 不要了, 也不想讓舊 windoze 讀
ntfs 更慘, 不同版 windoze 不能共用
> 我所謂的不能執行很多都不是 encoding 造成的
只要也不是改規格造成的就不是大問題
> : 會莫名的當掉或關閉視窗時 access violation 不算向下相容
> : 拿來賣的商用 application 可以出現這些嗎?
> 大部分是 developer 自己的問題,access violation 很少是 OS 自己的問題
在 windoze 下就是 OS 自己的問題
我 trace 的結果就是因為 event 產生的 window message 的先後不同
光是 window minimize, close 在 2000,xp 就很明顯不同
所以很多程式在舊的 win9x 沒問題, 新的就在 window close access violation 源於此
這就叫亂改規格
> 不要跟我說 Linux 上的程式都不會 access violation,那就是睜眼說瞎話
> : X11 從沒這種鳥事
> 誰說沒有,X11 的鳥事也滿多的,去看一下 bug 的紀錄就可以證明
> X11 死當或者 segmentation fault 小弟不巧全部都碰過,而且是預設安裝
這是 bug 不是規格就都是能修的
X11 is protocol, glx 也是, 所以不只是向下相容, 還跨機相容
> 根本還沒動過任何東西的時候。 您這樣的比較也很奇怪,拿 OS 比應用程式
> X11 只有相當於 Windows gdi32.dll + user32.dll的部份。
> 請不要把 X11 神化了。
只有 windoze 才搞 kernel/gui, application/driver 不分,
這些 dll 是算 application or kernel?
driver 也會去和 application 用到同個 dll
> : 無法安心重用舊 code, 重用性==0
> 無法安心重用很正常吧,本來就沒有任何平台敢保證這種事情
那整天搞重寫就好了, 那還有空做新東西
只要是平臺就該保證這種事情, 至少要明確保留一些 api
當然規格也要非常明確, 這些 M$ 都沒有
> 重用性 = 0 請問那一大堆別人包好的 library 都是垃圾嗎?
> : 寫程式還要配一堆實測人員就是成本
> 貴公司的程式都沒有實測人員嗎?
> Open source 程式比較能仰賴社群的測試,Propriatary 又是另一種狀況
> 本來測試就是程式開發必須的部份,用什麼平台都一樣
你大概以為實測萬能? 實測測不出的 bug 超多, 一個東西用法只有幾種嗎?
花人力的該是每個 part 的 spec conformance, model simulation
全靠實測代表東西太爛, 玩一玩就出事
> 問題大多數是出在 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 所有東西
> : 比 unix 間 porting 難多了
> 如果你用別人包好的 lib 事實上不會,何況還有 Cygwin
X11? GLX? motif?
花大錢是買得到 solution, linux 下也有花錢的 directx
> : static link 會消除這種問題, winxx static link 還是無法避開運作不同
> 你並不可能全部 static link,不信可以自己試試看。
> : 完全不變當然很難, 但是 posix api 定得比 win32 實用且精簡是事實
> Windows API 如果真的像你罵的這樣不值,很難解釋為何用它寫出來的 App
> 還有這麼多。 很多的不精簡是為了向下相容,有些東西不實用是真的
> 但這樣的比較仍然不合理,這是設計哲學的不同,它包了所有東西進去
> Linux 下你得裝一堆 lib 才能涵蓋 Win32 API 提供的功能。
> 更不要說是 .net 了。 我不覺得 Windows 上開發好用,也不覺得 Linux 難用
你的 win32 api 是把 IE, mediaplayer, vbrun, mfc 算進去嗎?
IE, mediaplayer 也綁版本的
> 只是單純的就個人開發經驗認為,多考慮一些因素後差距並沒有這麼極端。
--
┌─────◆KKCITY◆─────┐ ◢ ◤ ★ 線上音樂新震撼 ★ ◢ ◤
│ bbs.kkcity.com.tw │ ^_^ / 隨選隨播免等待 KKBOX◤ ^_^ /
└──《From:59.120.53.7 》──┘ ◤ http://www.kkbox.com.tw ◤
--