寫了這麼多,我有點困惑,但如果我沒記錯的話,Canonical 正在使用 Qt 為行動裝置建立下一代 Unity,並且在不久的將來桌面也將遷移到 qt。
我只是想知道推動這項決定的技術和/或政治原因,以及這對當前現有的 Ubuntu 桌面應用程式意味著什麼後果。
答案1
您可以在郵件清單和馬克·沙特爾沃思的博客。這篇文章可能是最好的答案:
作為 Natty+1 規劃的一部分,我們需要在 CD 上為 Qt 庫找到一些空間,並且我們將評估使用 Qt 開發的應用程式以包含在 CD 上和 Ubuntu 的預設安裝中。
易於使用和有效整合是我們用戶體驗的關鍵價值。我們關心我們選擇的應用程式之間以及整個系統之間的和諧。從歷史上看,這意味著我們非常偏好使用 Gtk 編寫的應用程序,因為預設情況下,使用相同的開發人員工具包會帶來一定程度的和諧。也就是說,由於 OpenOffice 和 Firefox 從一開始就存在,Gtk 顯然不是絕對的要求。我現在想說的是,價值觀才是重要的,而工具包只是實現這個目標的手段。我們應該根據應用程式滿足要求的程度來評估應用程序,而不是根據開發人員所做的技術選擇來損害它們。
在評估 Ubuntu 預設安裝的應用程式時,我們應該問:
- 它是免費軟體嗎?
- 它是同類中最好的嗎?
- 它是否與系統設定和首選項整合?
- 它與其他應用程式整合嗎?
- 無法使用滑鼠或鍵盤的人可以使用它嗎?
- 它看起來和感覺上與系統的其他部分一致嗎?
當然,開發者對Qt的選擇對前兩者沒有影響。 Qt 本身長期以來一直在 GPL 下可用,最近又在 LGPL 下可用。還有很多用 Qt 寫的一流軟體,它是一個非常強大的工具包。
然而,系統設定和首選項長期以來一直是 Qt 和 Gtk 之間摩擦的一個原因。與系統設定和首選項的整合對於應用程式「歸屬」系統的感覺至關重要。它會影響使用管理所有其他應用程式的相同工具來管理該應用程式的能力,以及用戶可以透過該應用程式獲得的各種設定和首選項體驗。傳統上,這一直是 Ubuntu 上的 Qt / KDE 應用程式的問題,因為 Gtk 應用程式都使用可集中管理的首選項存儲,而 KDE 應用程式的處理方式不同。
為了解決這個問題,Canonical 正在推動 Qt 的 dconf 綁定的開發,以便可以編寫一個使用與 Ubuntu 中其他所有內容相同的裝置框架的 Qt 應用程式。我們已經與 Ryan Lortie 簽約,他顯然非常了解 dconf,他將與 Canonical 的一些一直使用 Qt 為客戶進行客製化開發工作的人員合作。我們相信結果對於 Qt 開發人員來說是自然的,並且是 dconf 語義和風格的完整表達。
Qt 團隊長期以來在更廣泛的Ubuntu 社區中合作良好- 我們每六個月在UDS 上就有出色的Qt 代表,Kubuntu 團隊對Qt 打包和維護擁有豐富的經驗和興趣,Qt 上游和各種組織之間有很多良好的技術交流Ubuntu 社區的一部分,包括 Canonical。例如,Qt 人員正在努力整合 uTouch。
我會在明顯的地方區分“Qt”和“KDE”。 KDE 應用程式對 dconf 系統配置一無所知,因此無法輕鬆與 Ubuntu 桌面整合。因此,我們不會很快建議 Amarok 取代 Banshee!但我認為 dconf 一旦具有出色的 Qt 綁定,就完全有可能被 KDE 社區考慮。如果他們願意的話,有更好的人來領導這場對話,所以我不會在這裡進一步推進這個想法。儘管如此,如果 KDE 應用程式除了標準 KDE 機制之外還學習使用 dconf(這應該很簡單),那麼它將成為 Ubuntu 預設安裝的候選者。
對 Qt 開放的決定絕非對 GNOME 的批評。這是對自由軟體多樣性和複雜性的慶祝。這些易於使用和整合的價值觀仍然是 GNOME 的共同價值觀,也是與 GNOME 開發人員和專案成員合作的良好基礎。也許 GNOME 本身會接受 Qt,也許不會,但如果它這樣做,那麼我們願意開闢這條道路將是對領導力的貢獻。如果您接受與規範方式的一定程度的差異,那麼創建一個充滿活力的生態系統就會容易得多,可以這麼說,我們的設計工作以GNOME 為中心,隨著我們轉向GNOME 3.0 和gtk3,設置和首選項是當前的焦點。
當然,對於那些嘲笑這種關係的人來說,這是一個絕佳的機會,但在我看來,最重要的是我們與真正在 GNOME 旗幟下編寫應用程式的人之間建立的牢固關係。我們希望成為讓自由軟體開發人員努力工作的最佳方式事,我們的意思是,確保它每天為數百萬人的生活帶來真正改變的最佳方式,以及將他們與用戶聯繫起來的最佳方式。
感謝 Trolltech(現在是諾基亞)的優秀人員,他們使 Qt 成為一個出色的工具包 – 謝謝你們。對於希望使用它並成為 Ubuntu 體驗一部分的開發人員 – 歡迎。
答案2
GTK+ 不支援解析度無關,現代行動裝置具有超高像素密度。如果您在行動螢幕上運行 GTK+ 應用程序,所有使用者介面元素都將非常小而無法使用。
這已經是GTK+ 上的一個未解決的錯誤自 2008 年開始,直到 2014 年關閉,並發表評論「我們現在有了 hi-dpi 比例支持 - 它不完全相同,但足夠接近,足以使這個錯誤過時」。
當 GTK+3 發佈時,該專案有一個絕佳的機會來添加解析度獨立性,因為無論如何它們都會破壞相容性。他們選擇不這樣做,現在對他們來說真的太晚了。
上GTK+ 路線圖,分辨率獨立性計劃在 4.0 之後發布,因此他們將發布 4.0,然後之後的主要版本將擁有它。如果他們堅持這個計劃,那麼即使是桌面 GNU/Linux 也將不得不放棄 GTK+,因為高 DPI 桌面顯示器和筆記型電腦顯示器已經可用,並且即將成為新常態。
答案3
Ubuntu技術長馬特·齊默爾曼的博客也提供了豐富的資訊:
正是本著這種精神,我最近一直在思考Qt。我們希望能夠快速、輕鬆、輕鬆地為 Ubuntu 開發應用程序,而 Qt 是一個值得應用程式開發人員探索的選擇。在思考這一點時,我意識到 Qt 的優勢和 Ubuntu 中的一些新方向之間有相當多的共同點:
- Qt 有著悠久的使用歷史ARM 以及 x86,憑藉在嵌入式設備上的流行。使用 Qt on ARM 建立消費產品已有 10 多年的歷史。我們為 ARM 提供 Ubuntu 產品已經近兩年了,10.10 支援比以往更多的 ARM 板,包括來自 Freescale、Marvell 和 TI 的參考板。 Qt 正在添加 ARMv7 最佳化,以使最新的 ARM 晶片受益。我們這樣做是為了為 OEM 提供硬體選擇,而不犧牲軟體選擇。 Qt 為應用程式開發人員保留了相同的選擇。
- Qt 是一個跨平台應用程式框架,具有適用於 Windows、MacOS 等的官方端口,以及適用於 Android、iPhone 和 WebOS 的實驗性社群端口。強大的跨平台支援是 Qt 的原始原則之一,這體現在官方移植的成熟度上。隨著 Ubuntu Light 安裝在 Windows 電腦上,Ubuntu One 登陸 Android 和 iPhone,我們需要與其他平台的互通性。還有大量開發人員已經知道如何針對 Windows,他們也可以透過選擇 Qt 來接觸 Ubuntu 用戶。
- Qt已經相當成熟觸摸輸入系統,現在支援多點觸控和手勢(包括 QML),儘管它僅在 Windows 7 和 Mac OS X 10.6 上完成。同時,Canonical 一直在與社群合作,為 Linux 和 X11 開發低階多點觸控框架,以利於 Qt 和其他工具包。這些努力最終會在中間相遇。
總的來說,我認為 Qt 可以為那些想要為 Ubuntu(以及在 Ubuntu 上)開發應用程式的人提供很多幫助,尤其是現在。它已經為 VLC 等流行的跨平台應用程式提供了支持,更不用說整個 Kubuntu 發行版了。去年發生這種情況時我錯過了它,但 Qt 現在可以在 LGPL 2.1 或 GPL 3.0 下使用,這應該使它適用於幾乎任何 Ubuntu 應用程式。它擁有強大的商業支援以及龐大的開發者社群。當然,沒有一個解決方案可以滿足所有開發人員的需求,因此 Ubuntu 支援多個工具包和框架,但 Qt 似乎是我們工具箱中的一個很棒的工具,可以幫助您前進。
一個Ars Technica 文章討論這篇文章提供了一些見解:
Qt 可以將第三方開發者引入 Linux
儘管 Gtk+ 仍然有價值,並且有很多理由繼續使用它來建立本機 Linux 軟體,但 Qt 現在是多個平台的 ISV 的明顯選擇。 Qt 讓您能夠非常輕鬆地符合底層平台的本機外觀和感覺,或建立最適合目標裝置或外形規格的完全自訂的使用者介面。
隨著諾基亞和英特爾將 MeeGo 引入廣泛的設備,它將吸引一些主要的商業軟體供應商。對於這些軟體公司來說,使用在 MeeGo 上使用的相同程式碼將他們的行動 Qt 應用程式帶到 Linux 桌面上會相對容易。 Qt 就是專門為了讓這一切變得簡單而設計的。這對桌面 Linux 來說將是一個巨大的勝利,因為它將帶來原本無法使用的第三方應用程式。
值得注意的是,由於諾基亞對該工具包的支持,一些著名的行動軟體供應商已經熱切地擁抱 Qt。例如,行動視訊串流公司 Qik 正在為其流行應用程式開發基於 Qt 的實驗性端口,旨在將其引入 MeeGo。
本文作者是 Gwibber IM 應用程式的創建者,因此他有一些為 Linux 開發 GUI 的經驗。
答案4
我對技術/務實原因的看法:諾基亞收購了 Trolltech,並向 QT 投入了大量資金。其重量輕,並且針對行動平台進行了多年的最佳化。不管你目前對諾基亞的看法如何,N900 都領先於它的時代很多年......而且它是基於 Debian / QT 的......但是價格昂貴。然而,我對這些決定並不了解。