搜尋此網誌

工商服務

2009年2月27日 星期五

[Qt漫談]Nokia將Qt轉移至LGPL授權方式,預料未來Qt會更普及



Nokia併購Trolltech後,Qt 4.5的開放原始碼版本將由原先的GPL轉向LGPL授權方式,Nokia此舉意味著Qt被採用的比例將會出現大幅的成長(比方說可能就會有些專案從採用GTK+或wxWidgets倒戈過來改用Qt了),因為LGPL允許動態連結程式庫(就像有些VB 6程式是在執行期間才動態載入VB 6 Runtime程式庫msvbvm60.dll那樣,所以未來我們可能會看到不少發問缺少Qt程式庫該怎麼辦的帖子在網路論壇上出現),所以只要不去更動底層的Qt程式庫,那麼上層用Qt開發的應用程式將可以不必開放其原始碼,換言之可以保持為商業性質的封閉原始碼軟體。不像以前那樣,引用了GPL授權的Qt程式庫之後,整個應用程式也會被「感染」成GPL,導致企業必須購買商業授權,要不然就不能夠公開展示。如今授權費用的阻礙因素可謂已經移除,而且為了集中資源於原始C++版本Qt的發展,所以Java版本的Qt Jambi也會在Qt 4.5之後宣告終止,轉為社群力量驅動的開放版本,足見Nokia深耕跨平台應用程式框架桌面市場(Qt/X11、Qt/Windows、Qt/Mac)以及嵌入式系統市場(Qt/Embedded Linux、Qt/Windows CE)的決心。至於主攻手持式行動裝置的Qt Extended版本授權方式是否跟著改變,則仍有待觀察,至少目前FAQ上的答案是否定的。

此外Nokia也將開放Qt原始碼庫(repository),鼓勵更多開發人員社群貢獻其心力。那麼人們還需要購買商業授權做什麼用呢?FAQ上面的官方說法是商業授權可以獲得Qt團隊的電子郵件技術支援,以及針對程式庫本身的修改也不受限制(尤其如果因而提升大量效能,而且那正好是你們公司核心競爭力的話),也就是說有付錢的話可能會比較心安(有些人覺得用開放原始碼的東西風險較高),軟體出了差錯可以寫信去罵;另外一個重點則是,在更開放的LGPL授權模式下,將可以吸納更多的社群力量(以往的GPL授權模式必然使得許多人卻步,起碼在心情上不會多麼愉快),最終Nokia也將可以把這些部分整合到自己的產品裡面,等於是說未來Qt帶來的營收雖然銳減,但是其研發能量卻是由社群共同提供的。總結來說,就像一些教育訓練和顧問機構所做的研究調查報告所陳述的,這是份Nokia送出的大禮(放棄了坐收大筆權利金的機會),有助於Qt成為業界標準,因此預料Qt未來將會因此成為嵌入式系統領域的首選GUI框架,而既有的舊版Qt應用程式也將會加速遷移至Qt 4.5。

Anyway,Qt 4.5預計2009年3月才會釋出,儘管網路上的討論與臆測十分熱烈(例如偉懷就向我拋出了一個議題,如果在Qt/Embedded Linux裡面建立了鍵盤驅動程式的外掛,那麼是否會導致底層不是我們負責的驅動程式被感染為LGPL呢?),暫且還是讓我們靜觀其變吧。

參考資料:Jserv大大的部落格文章〈Qtopia 再度更名為 "Qt Extended"〉詳細說明了Qt產品線
參考資料:Jserv大大的部落格文章〈Qt 4.5 將允許增列 LGPL 2.1 條款發行〉
參考資料:Jserv大大的部落格文章〈LGPL 與 C++ Template Library〉
參考資料:Qt新聞稿〈LGPL License Option Added to Qt〉
參考資料:Qt副總裁Sebastian的部落格文章〈Nokia to license Qt under LGPL〉提及後續開放動作
參考資料:關於Qt授權的〈FAQ〉,看來商業授權只不過多了電子郵件技術支援罷了
參考資料:立刻有人大做分析文章〈Nokia Qt LGPL switch huge win for cross-platform development〉
參考資料:〈LGPL 2.1, Qt 4.5 and C++ templates〉議題馬上有Qt團隊人員解釋會改進授權模式
參考資料:〈Why would you buy a commercial Qt license when it's LGPL?〉大哉問
參考資料:〈知名 GUI lib 簡評 (GTK+, Qt, wxWidgets)〉瞭解一下Qt之外的選擇
參考資料:〈Can I legally incorporate GPL & LGPL...?〉發問者有白目到
參考資料:Qt新聞稿〈Qt Software to discontinue Qt Jambi after 4.5 release〉
參考資料:ICS白皮書《Implications of Qt under LGPL for Commercial and Government Users》

2 則留言:

  1. 那我想請問一下,我可以使用Qt的LGPL的License去開發整套軟體嗎?而不是只有動態引用Qt的API。

    回覆刪除
  2. To 曙光乍現:您當然還是可以開發整套軟體,只要不使用static linking的方式即可,否則按照LGPL的精神,您就必須將source code開放出來。至於dynamic linking可能遭遇的問題,請參考這篇

    回覆刪除