精華區beta Programming 關於我們 聯絡資訊
※ 引述《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