1. 程式人生 > >翻譯 | Qt研發副總裁分享2018年工作計劃

翻譯 | Qt研發副總裁分享2018年工作計劃

技術 sketch 分別是 用例 釋放 handler 忘記 tom 常用工具

原文作者:TuukkaTurunen,高級研發副總裁

翻譯校審:Haipeng、Yulong和Ryan

引言:2018年,我們將繼續完善Qt 5.9 LTS,現在我們正在為5月份發布Qt 5.11進行最後沖刺,並有望在11月份推出Qt 5.12 LTS。除Qt框架外,我們還在積極開發各種工具。以下是我們2018年的工作計劃。

技術分享圖片

今年是我在Qt博客上與大家分享年度工作計劃的第三年。首先還是要感謝全球每位Qt開發者的付出。雖然我們實現了大部分產品功能,但離不開多年來每一位Qt社區開發者的寶貴貢獻,他們不斷塑造著Qt。除了貢獻代碼,還有大量開發者活躍在Qt論壇(https://forum.qt.io/)和郵件列表中,幫助我們審核代碼,測試各種開發版本。感謝大家與我們一起成就了Qt。

Qt 5.11及Qt 5.12 LTS時間表,多款出色工具及更多功能

今年,我們計劃發布兩個包含新功能的版本,即5月的Qt 5.11和11月的Qt 5.12 LTS (長期支持版本)。和以往一樣,我們會先推出預發布版以測試新功能,也會針對用戶反饋問題推出補丁版本。當然,我們會繼續為Qt 5.9 LTS推出補丁版本。

我們計劃為Qt Creator推出三款版本以改進集成開發環境(IDE)並增加新功能,分別是3月的Creator4.6,7月的Creator 4.7以及11月的Creator 4.8。Qt 3D Studio是我們最新開發的工具,計劃於今年6月推出基於Qt 3D引擎的Qt 3D Studio 2.0,9月發布Qt 3D Studio 2.1,12月發布Qt 3D Studio 2.2。

對於特定的行業,我們會繼續更新Qt for Automation和Qt Automotive Suite這兩款解決方案。作為一個全新的主要版本,Qt Automotive Suite 2.0已於2月底發布,之後會陸續推出增量更新版。我們還會推出全新的Qt Safe Renderer 1.0,用於開發Qt安全關鍵應用程序。

所以這是Qt無比忙碌的一年。讓我們馬上了解一下這些新版本裏都包含了哪些新功能。

Qt 5.11和Qt 5.12 LTS

Qt 5.9 LTS已是一個穩健版,含多個補丁版本,提升了諸多功能。在Qt 5.9.x補丁版本,我們修復了上千位用戶上報的問題,並將在2018年持續更新。Qt 5.9 LTS現已進入Strict階段,這意味著我們需要集中精力修復最關鍵的Bug,而非關鍵性漏洞將在Qt 5.11(以及隨後的5.12 LTS)中集中修復。在不斷提升質量的同時,我們也積極關註關鍵用例中的性能表現。我們不斷監測產品性能,以識別導致某些領域性能衰退的代碼提交,並盡可能提升產品性能。Bug修復和性能提升雙管齊下,全新的Qt版本才能更快、更穩定地運行當前的應用程序。

說到新功能,我們做了許多與圖形相關的工作。統一3D引擎可謂是2018年的一個重頭戲。Qt 3D Studio 1.x版本使用了英偉達(NVIDIA)提供的3D引擎。雖然該引擎性能穩定出色,但是向Qt 3D遷移的優勢顯而易見:可輕松在同一應用程序上同時使用預定義和編程創建的內容,更好地支持不同的操作系統和硬件,並且無需開發、維護兩臺不同的3D引擎。

長期以來,我們都在努力改善Qt 3D Studio,使其能兼容Qt 3D應用程序,而Qt 3D自身的功能也在此過程得到了提升。比如,我們完善了Qt 3D的性能,並降低了有效運行Qt 3D Studio復雜應用程序時的內存消耗。可以預見,這些在Qt 3D引擎取得的性能提升,也能有助力於已有的Qt 3D和即將到來的Qt 3D Studio 2.0應用程序。這是一個統一3D引擎帶來好處的絕佳範例。

資源調節(asset conditioning)是圖形渲染中的另一個主要功能,針對不同的目標硬件,它可優化應用程序達到最佳性能。無論是2D還是3D圖形,資源大小通常是整體資源大小的重要組成部分,尤其是運行時所占用的內存大小。今年,我們會繼續完善Qt的資源調節支持,添加更多可支持的紋理壓縮和打包格式,從而在創建系統和工具時,更輕松自如地控制圖形資源。

Qt 5.10加入了對ETC1、ETC2和ETC2_EAC壓縮的基本支持,Qt 5.11改善了紋理壓縮,並增加支持常用的Khronos Texture(KTX)文件格式。帶OpenGL ES 3.x支持的現代GPU可高效處理壓縮紋理,從而在使用新版Qt時提高內存使用率和性能。我們不斷改善Qt的資源調節能力,當前正積極探索紋理貼圖和其他可行功能,從而更好地提升紋理性能和內存使用。

我們還完善了對Vulkan的支持,並首次在Qt 5.12中支持Metal。我們已著手研究支持硬件圖形圖層,尤其是如何使用Qt Wayland時實現這一功能。這仍然是個硬件問題,但我們已能在一些常用入門級芯片上實現這一功能。

作為支持鼠標、觸屏和手勢事件操作的新方式,全新的手勢操作,即PointerHandlers,是我們一直在努力的主要領域。這一新功能主要解決了通用性問題,對多點觸摸和多顯示器應用程序尤為重要,彌補了之前版本未能涵蓋的方面。新功能允許在Qt應用中使用其他的控制機制,如支持通過相機或距離傳感器監測到的手勢動作。

Pointer Handlers提供了輕量級解釋性API,用於跨場景並行、識別和處理鼠標和觸摸屏上最常見的鼠標、觸摸和多點觸摸動作(按下-保持-釋放、拖曳、滑動和收縮)。必要時,用戶可跨屏幕與多個項目互動。此功能首先出現在Qt Labs中,我們計劃在Qt 5.12中加入完整功能,讓Pointer Handlers實現更多用例,並在之後的版本中公布C++ API。

Qt 5.10中,Qt Quick Controls 2初步具備了基於圖片樣式的功能。我們希望在Qt5.11中完成該功能以及新的設計模板,包括供Inkscape使用的模板(其他包括Sketch、Illustrator和Photoshop模板)。我們也正在開發一項性能優化的全新表格視圖(table view)實現,並且會集成到Qt Quick當中,該功能計劃在Qt 5.12中推出。為盡早獲得反饋以提供全新的表格視圖(table view),我們會將該功能作為補丁在Qt 5.11中測試。這是一個始終以高性能為前提的新實現,目前進展非常良好。

因此Qt Quick用戶將用到很多新功能,但Qt Widgets用戶也不必擔心,我們從未忘記你們。去年我們修復了Qt Widgets的多個Bug,今年會繼續這項工作。Qt Widgets和Qt Quick各有千秋,作為Qt產品的支持組件,它們互為補充。

Qt WebEngine是一款基於Chromium的HTML5引擎,將在Qt 5.11中升級對應Chromium 65版本。關於Qt 5.12 LTS,我們正在討論從Qt發布時間表中移除Qt WebEngine的可能性,以增加Qt WebEngine的更新頻率。盡管仍處於研究階段,但把Qt WebEngine拆分為獨立組件可以帶來諸多益處。我們認為,Qt WebEngine獨立後更新頻率可以達到每三個月一次,能與每六周一次的Chromium發布頻率契合。對Qt 5.12 LTS的用戶而言,這意味著在獲得安全更新的同時,更能獲Qt LTS版本支持的全新的Chromium版本。

Qt for Python(即Python編程語言綁定)是我們今年計劃推出的重量級產品。原代號為PySide,開發工作已持續了較長時間。在進行了大量工作後,我們目前已能提供一款基於Qt 5.11的技術預覽版。簡而言之,它提供了一組使Python應用程序能使用Qt功能的綁定(bindings)。例如,Qt是創建Python應用程序用戶界面的絕佳框架,作為一種強大的編程語言,Python擁有龐大且仍在持續增長的用戶群體。編程技術問答網站Stack Overflow分析認為,Python是增長速度最快的編程語言,其開發者數量在2012年就超過了C++開發者,目前已超過後者總數的三倍。但TIOBE開發語言排行榜指數仍認為C++比Python更受歡迎,但其調查也表明Python正處於增長趨勢。我們希望眾多Python開發者能發現Qt在其應用程序中的價值。

框架項目列表中的最後一項新產品Qt for WebAssembly。就像我們已著手進行Qt for NativeClient 以及emscripten的相關開發,當前對WebAssembly的工作也然會遵循相同的方向。2017年以來,四大瀏覽器公司(Chrome、Edge、Firefox和WebKit/Safari)已接受使用WebAssembly,後者將會為運行Qt提供穩定平臺。今後我們會撰寫更多關於在WebAssembly上運行Qt應用程序的文章,您現在可訪問http://code.qt.io/cgit/qt/qtbase.git/tree/?h=wip%2Fwebassembly和https://bugreports.qt.io/browse/QTBUG-63917,了解一下其代碼和創建說明。

用於Qt開發的全新改進工具

在工具領域,基於英偉達一年前的貢獻,我們一直在努力打造全新的Qt3D Studio,這是一款創建互動式3D用戶界面和應用程序的絕佳工具,其編輯器是可在Windows、Mac和Linux上運行的跨平臺Qt應用程序。Qt 3D Studio並非用於設計3D模型的工具,後者可以通過AutoDesk Maya,Foundry MODO,甚至是Adobe Photoshop等常用工具導入。Qt 3D Studio附帶了一整套材料和諸多資源,是用其他工具導入模型的補充。今年的重要發布是基於Qt 3D引擎運行的Qt 3D Studio 2.0。此舉可帶來諸多益處,包括可與其他Qt功能更加深度集成,提升可移植性和降低維護成本等。

雖然Qt 3D Studio示例大多基於汽車和數字座艙,但是它並非僅適用於汽車行業。自動化、醫療、娛樂、家用電器等都需要3D用戶界面。Qt 3D和Qt 3D Studio同樣適用於創建增強現實(AR)和虛擬現實(VR)的應用程序,這個欣欣向榮的技術領域能給消費者和商業需求帶來諸多好處。汽車是Qt的一個重點領域,因此我們會根據該市場需求不斷開發Qt 3D Studio,但它不會是我們唯一的關註領域。

在Qt 3D Studio 2.0和後續的2.x版本中,我們尤其關註它與其他Qt組建的互操作性,如與Qt Quick和QtCreator IDE的無縫集成。完全重寫時間軸組件將是編輯器的一大改進,此舉能極大改善用戶體驗和工作流程。2.0版本將會完全支持Behavior API和Data Node API。我們也會繼續改善示例和文檔,讓Qt創建3D用戶界面的過程更加變得高效、簡易和有趣。

除了開發創建3D用戶界面的工具,我們還在積極探索如何改善用於創建2D用戶界面的工具。Qt Quick可快速創建動態和交互式用戶界面,而且在很多用例中,僅這一個工具就能勝任用戶界面的創建。我們的目標之一是更好地支持使用常用設計工具導入資源,讓不精通軟件開發的用戶也能輕松操作。其他重大改進包括工具的功能、用戶體驗和可用性,同樣是針對除開發者以外的用戶。第三個重要改進是,用戶可在目標應用程序甚至是目標設備上,輕松查看修改後過的設計結果。易於部署至目標設備一直是Qt Creator的優勢,但仍有改進空間。今年下半年我們將首次推出優化後的UI設計工具,屆時將與大家分享更多相關信息。

今年的Qt Creator更新版也會有多項改進,包括使用 Clang code Model,支持Python,支持即將推出的Qt目標平臺(如Qt for WebAssemby),以及改善Cmake支持。使用Clang可為我們提供用於現代和未來C++語言標準的code-assistant。隨著Qt for Python的問世,Qt Creator支持Python就顯得極為重要,開發者們得以更方便地開發和調試Python應用程序。

除上述的酷炫功能外,我們會繼續改進Qt Creator的所有重要功能,如提供調試支持、代碼編輯器功能(與clang/qml代碼模型互補)和發布功能(改進安裝過程,通過在線安裝程序安裝的預發布版本)。我們在不斷改善Qt Creator 對Cmake的支持,以滿足不斷增長的Cmake用戶群體需求。我們也在不斷進行QBS的開發和qmake的維護工作,使其成為Qt應用中的可用選項。此外,我們還會持續研究Qt Creator的性能表現,並不斷做出改進。

今年我們會推出Qt SafeRenderer 1.0,這是一款全新的組件,用戶能更輕松地創建安全關鍵型用戶界面。它包括兩個主要部件:與Qt Creator集成創建安全關鍵型用戶界面,以及用於渲染安全關鍵型用戶界面的渲染組件。我們正處於獲取Qt Safe Renderer功能安全認證的最後階段,包括對安全關鍵型工具和運行時組件。

自動化、汽車及其他行業

除了根據客戶和重點行業反饋改進通用產品外,我們還根據特定行業需求開發了相應的解決方案。它們也可用於其他行業,但最契合的還是與其名字相關的領域,最好的示例就是Qt for Automation和Qt Automotive Suite。

今年,在Qt for Automation上,我們的主要工作是全面支持MQTT,KNX和OPC/UA的應用。去年我們推出了Qt MQTT和Qt KNX技術預覽版,並將在Qt未來版本中全面支持這兩個功能。Qt OpcUa是我們的新增功能,我們計劃在Qt 5.11發布時推出全新功能Qt OpcUa的技術預覽版,再根據用戶反饋完成開發,在Qt 5.12中正式發布。

剛發布的Qt Automotive Suite 2.0基於Qt 5.9LTS,整合了Qt Safe Renderer套件和Qt 3D Studio,全面升級了QtIVI增加從QFace IDL生成API的功能,提高了Neptune UI、Application Manager和GammaRay分析性能,並添加了新的功能。

聯系我們

若您希望了解Qt的更多近況,包括在中國舉辦的活動,請關註我們的微信公眾號(微信號:theQtCompany),點擊官網上的“聯系我們”,加入郵件列表,或參與https://forum.qt.io/論壇上的討論。

如果您喜歡這篇文章,請幫我們點個贊或轉發到您的朋友圈。謝謝!

http://mp.weixin.qq.com/s?__biz=MzI5MzA3NzU3OA==&mid=2649659500&idx=1&sn=0fd5a5bcf71d68218074312e88a34f84&chksm=f46daf49c31a265f6f9ed1be3d509957f5ccd8cded992111271145b02e27cee6bf9fb4b2ca1a&mpshare=1&scene=23&srcid=0412V3GmfXY22uKrM9Y4Ssez##

翻譯 | Qt研發副總裁分享2018年工作計劃