有同學(xué)問(wèn),公司在大量使用Qt作為基礎(chǔ)開(kāi)發(fā)框架腾供,公司也比較懵仆邓,使用Qt開(kāi)發(fā)商業(yè)軟件鲜滩,到底是否需要付費(fèi)?
一句話: 當(dāng)前Qt在PC/Mac/Linux桌面開(kāi)發(fā)节值,使用動(dòng)態(tài)庫(kù)LGPL徙硅,不付費(fèi)。 嵌入式linux搞疗,手機(jī)開(kāi)發(fā)嗓蘑,都要付費(fèi).
作為一個(gè)十幾年Qt使用經(jīng)驗(yàn)的老c++程序員,今天就來(lái)回答這個(gè)問(wèn)題匿乃。
Qt能獲得如此的成功桩皿,得益于LGPL協(xié)議,都知道GPL是非常嚴(yán)格扳埂,不能開(kāi)發(fā)閉源商業(yè)軟件的业簿。但LGPL允許你使用動(dòng)態(tài)鏈接的方式開(kāi)發(fā)閉源商業(yè)軟件瘤礁。
所以Qt正是因?yàn)長(zhǎng)GPL阳懂,獲得了巨大的成功。我們要定義軟件基礎(chǔ)框架的成功柜思,需要從幾個(gè)緯度岩调,1 開(kāi)發(fā)者人數(shù),社群赡盘, 2 軟件代碼的質(zhì)量号枕,穩(wěn)定性。 3 成功的商業(yè)軟件的案例陨享。
從這幾個(gè)緯度葱淳,Qt無(wú)疑是非常成功的,目前擁有百萬(wàn)級(jí)的開(kāi)發(fā)者抛姑, 經(jīng)過(guò)不斷的迭代赞厕,軟件質(zhì)量穩(wěn)定性都非常優(yōu)秀,重量級(jí)的行業(yè)基礎(chǔ)軟件定硝,比如Maya, SubstancePainter, 視頻剪輯軟件達(dá)芬奇等皿桑,
都基于Qt開(kāi)發(fā),這些生產(chǎn)力基礎(chǔ)軟件蔬啡,終端用戶都是千萬(wàn)級(jí)的诲侮,所以從些個(gè)角度,Qt的穩(wěn)定性也經(jīng)過(guò)了大量的終端用戶的測(cè)試箱蟆,驗(yàn)證沟绪。
從Nokia時(shí)代的Meego,QML,Qt的理念空猜,09年的時(shí)候绽慈,都非常先進(jìn)诺核,尤其是QML。但被Nokia放棄久信,也成為了那個(gè)時(shí)代程序員對(duì)Qt的心理陰影窖杀。
個(gè)人認(rèn)為Qt作為行業(yè)基礎(chǔ)軟件,應(yīng)該像Linux一樣裙士,被我們國(guó)家入客,當(dāng)作重要的國(guó)家戰(zhàn)略來(lái)發(fā)展,Qt在俄羅斯腿椎,德國(guó)桌硫,等國(guó)家,都是大力使用的啃炸。
后來(lái)Qt被DIGIA收購(gòu)铆隘,經(jīng)過(guò)十年的發(fā)展,不但沒(méi)有衰落南用,而且一通商業(yè)操作膀钠,越來(lái)越成功。
筆者查了下裹虫,截止2020年底肿嘲,Qt公司是DIGIA旗下獨(dú)立的子公司,而且是赫爾辛基上市公司筑公。
名字叫QTCOM.HE 2019 年收入5800萬(wàn)歐元雳窟。 市值是12億歐元。
最近幾年匣屡,Qt公司一頓操作封救,靠賣(mài)付費(fèi)license,活得還不錯(cuò)捣作,公司員工數(shù)是340人誉结。
但這一頓操作,各種協(xié)議的升級(jí)虾宇,搞得暈頭轉(zhuǎn)向搓彻。GPL GPLv2 GPLv3 LGPL2.1 LGPL3 commercial license.
昨天晚上研究到很晚,搞清楚了他們的這些操作嘱朽。
你公司用Qt開(kāi)發(fā)閉源商業(yè)桌面軟件旭贬,在windows/mac/linux上,可以使用動(dòng)態(tài)庫(kù)鏈接方式搪泳,遵循LGPL協(xié)議稀轨,是不用付費(fèi)的,也不用開(kāi)源你的代碼岸军。
只需在你的商業(yè)軟件的about什么小角落奋刽,說(shuō)明你使用了Qt瓦侮,遵循LGPLV3協(xié)議即可.你公司就可以開(kāi)發(fā)閉源的商業(yè)軟件。
那商業(yè)付費(fèi)什么意思呢佣谐? 就是指的你使用靜態(tài)庫(kù)鏈接的方式肚吏,是要付費(fèi)的。
首先狭魂,嵌入式linux開(kāi)發(fā)罚攀,如果你自己手動(dòng)編譯Qt 動(dòng)態(tài)庫(kù),鏈接動(dòng)態(tài)庫(kù)雌澄。并說(shuō)明你遵循LGPL, 也是可以開(kāi)發(fā)閉源商業(yè)軟件的斋泄。
移動(dòng)端,iOS/Android開(kāi)發(fā)镐牺。雖然iOS/Android炫掐。目前都支持動(dòng)態(tài)鏈接方式。 但很明顯睬涧,Qt公司就是想讓你付費(fèi)募胃。
最明顯的就是iOS的庫(kù),Qt公司只提供了靜態(tài)鏈接方式宙地。如果你要開(kāi)發(fā)iOS摔认,你得自己去編譯動(dòng)態(tài)鏈接庫(kù)逆皮,Qt公司也沒(méi)告訴你如何編譯動(dòng)態(tài)庫(kù).
付費(fèi)價(jià)格是 一年3950刀宅粥,三年8400刀。
如果你用Qt LGPL的方式电谣,采用了靜態(tài)庫(kù)鏈接的方式秽梅,開(kāi)發(fā)了iOS android應(yīng)用。是不是就不允許剿牺,或者等著被抓呢企垦? 肯定不是的。
Qt公司每天有很多非常重要的事情要去做晒来。而且他們也不可能有能力掃描整個(gè)AppStore GooglePlay看誰(shuí)在違規(guī)使用他們的Qt钞诡。
你只要不成天跑到各種論壇,社區(qū)去舉報(bào)自己說(shuō)自己使用了LGPL并使用了static lib湃崩。 就沒(méi)人管你荧降。
最搞笑的事情是: 你跑到開(kāi)源社區(qū)去問(wèn)Qt官方,為啥不直接提供iOS/Android LGPL協(xié)議的動(dòng)態(tài)庫(kù)攒读? 他們表示朵诫,永遠(yuǎn)不會(huì)回答你。
你去問(wèn)蘋(píng)果薄扁,AppStore接受LGPLV3的軟件嗎剪返? 蘋(píng)果也不知道废累。
Qt公司,就是想辦法讓你付費(fèi)脱盲。蘋(píng)果他們不管你這些邑滨,你自己的事。
作為一個(gè)公司钱反,團(tuán)隊(duì)驼修,你一直使用Qt開(kāi)發(fā)軟件,如果你自己都沒(méi)賺錢(qián)诈铛,怎么能給Qt公司付費(fèi)呢乙各?
所以建議是,你先自己用吧幢竹,等你賺錢(qián)了耳峦,再買(mǎi)三年5萬(wàn)塊左右的商業(yè)版。
如果你拿Qt開(kāi)發(fā)的商業(yè)軟件焕毫,一年賺幾百萬(wàn)蹲坷,幾千萬(wàn),尤其是使用了手機(jī),嵌入式版的Qt邑飒,還是建議使用付費(fèi)版循签,
三年五萬(wàn)塊人民幣左右,支持下Qt疙咸,開(kāi)源軟件的發(fā)展县匠,有你的支持,會(huì)變得更好撒轮,自己公司也用得安心乞旦。
如果公司是Maya, Adobe,達(dá)芬奇這種體量,那直接來(lái)深度合作定制開(kāi)發(fā)了题山。
Qt 的特點(diǎn):
優(yōu)勢(shì) :
Qt5 深度結(jié)合OpenGL/ES 兰粉,非常適合做數(shù)字圖像處理,生產(chǎn)力軟件顶瞳,設(shè)計(jì)軟件,工具軟件玖姑。跨平臺(tái)圖像處理能力非常強(qiáng)悍慨菱。
Qt6 提供跨平臺(tái)的(Metal/Vulkan/D3D11)抽象層 QRhi, 對(duì)下一個(gè)10年從事音視頻焰络,數(shù)字圖像處理的軟件,非常大的利好抡柿。
QML提供更簡(jiǎn)單的基于3D渲染引擎高效的寫(xiě)跨平臺(tái)GUI的方式舔琅。但使用QML,不建議使用JS洲劣。
(對(duì)于從事音視頻备蚓,數(shù)字圖像處理開(kāi)發(fā)的程序員歡迎關(guān)注课蔬,后面我們會(huì)花大量的時(shí)間來(lái)深度研究QRhi的實(shí)現(xiàn), 寫(xiě)一個(gè)專(zhuān)欄。Qt的核心渲染層QRhi是他們從頭寫(xiě)的郊尝,不是基于MoltenVK).
劣勢(shì):
跨平臺(tái)不是特別完善二跋,有時(shí)候還需要結(jié)合native開(kāi)發(fā),比如手機(jī)端流昏。
補(bǔ)充扎即,我們這一代程序員,對(duì)GPL/LGPL理解過(guò)太歷史况凉,簡(jiǎn)單粗暴理解為動(dòng)態(tài)庫(kù)可以商用谚鄙,靜態(tài)庫(kù)不允許。但最新的LGPLV3刁绒, 意思是嵌入式設(shè)備闷营,包括手機(jī)開(kāi)發(fā),使用LGPLV3 Qt5.4以后的版本知市,
無(wú)論動(dòng)態(tài)庫(kù)傻盟,靜態(tài)庫(kù)都是不允許的。如何允許你使用呢嫂丙? 掏錢(qián)娘赴。Qt最新整了個(gè)中小企業(yè)計(jì)劃,一年499刀左右跟啤。