作者descent ( 返無)
看板Soft_Job
標題Re: [請益] 需要熟捻的程式語言
時間Sun Oct 16 12:17:11 2011
※ 引述《iincho (世界的盡頭)》之銘言:
: ※ 引述《descent ( 返無)》之銘言:
: : 我自己是學習 C/C++, 目前加一點點組合語言 (這個真的很不熟),
: : 而 GUI framework 我選擇 QT, 真的使用過的朋友, 一定會喜歡那種
: : 寫一次就可以在 ms windows, mac os, linux/X 上執行。
: : 投資報酬率很高。
: 其實學這種東西要看的是未來性,QT的確是很方便,但是長線來看不是很樂觀。
: 我個人是覺得不必對GUI跨平台有太多幻想,連Java都告訴你寫一次到處debug了,
你說的風險當然有可能, 所以我儘量可能考慮 opensource 的程式碼,
但 QT 有著商業力量更是保險, 若真的商業公司倒了, 還能寄望有高手接棒,
在不行就只好自己來了。
: 這些號稱跨平台的UI通常會碰到幾個問題:
: 1. 不同平台有些行為不大一致,或者多多少少有些小bug。
: 2. 通常沒有原生刻出來的好看,不過這點qt做的算是不錯。
: 3. 可能跑起來速度比較慢,或者是要裝肥肥的runtime
: 所以與其追求全面的跨平台,現在我通常都想辦法把UI的部份抽出來,
: 程式核心的部分除非必要不然一律都用平台無關的寫法。
這個東西不容易做, 可以給個例子討論如何做這樣的分離嗎?
因為我覺得把 UI 和其他功能分開不是很容易。
我舉一個例子: 使用 linux svgalib, ms windows api, mac os api, X
來完成一個計算機。
這些 GUI toolkit 的使用方式可能差異很大, 要把 UI 抽出來可能
就已經是大工程。搭配上加減乘除程式碼, 要做到良好的分離真的不容易。
我覺得比較好的作法有一種是類似 smplayer 那種, 它是用 QT 實作 GUI,
所有功能則是呼叫 mplayer 這隻 command line 程式。
: 如果在龜毛一點底層的API自己再wrapper一層通常都可以應付大部分的狀況。
: 當年也是一天到晚在找一個大一統的UI framewrok,現在覺得乾脆把
: 東西抽出來重刻看起來還比較爽快.XD
: 不過這是因為我學新東西很快,如果你不喜歡這樣可能會有不同的想法。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.114.132.16
→ leiyan:其實寫跨平台不見得比寫兩個單平台好 10/16 12:48
推 Ting1024:看來JAVA跟.NET這種有VM的最好...-_- 10/16 13:03
推 oomusou:聽起來smplayer這種方式挺好,還可支援command line 10/16 17:03
→ qrtt1:mplayer 有 slave mode,這就能用另一個程式 call 起來下指 10/16 17:03
→ qrtt1:令給它。這麼做 ui就能獨立成另一個程式了。 10/16 17:04
→ qrtt1:不過只是另一種設計的方式。其實跟 message queue/handler 10/16 17:05
→ qrtt1:的概念跟意圖是相仿的。希望透過訊息來取代實際語言的耦合。 10/16 17:05
推 qrtt1:剛好看到這裡有些不同平台移植的討論: 10/17 00:29