軟件開發(fā)方案

作者:韋易笑

鏈接:https://www.zhihu.com/question/24461881/answer/140104855

來源:知乎

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

短平快的話:

1. Electron:js開發(fā)界面,可用cpp擴(kuò)展

2. PyQt5: Py開發(fā)界面,可用cpp擴(kuò)展

3. QWebView:js開發(fā)界面,py cpp做后端(非界面部分)

比開發(fā)速度,上面三個(gè)方案完爆c#

Qt5以后,Qt全面使用gpu加速繪制。

微軟自己都很少用 WPF,做個(gè) vscode還要去用 electron。

界面腳本化是大勢(shì)所趨,弄個(gè)界面就該快,改兩行代碼按個(gè)快捷就該跑起來,避免改個(gè)文件一編譯就等半天,或者出個(gè)bug找兩天:

編碼-測(cè)試-編碼 這個(gè)核心工作流越短越好。上面三個(gè)方案都跨平臺(tái),況且人的時(shí)間本來就有限,上面幾門技術(shù)學(xué)了你不虧,其他好多地方都用得上,關(guān)鍵是開發(fā)效率都比c#高。

再比較下性能:https://www.youtube.com/watch?v=8O-0k4MLKs8

Qt 5.6 MinGW 和 .NET 4.5 WPF 跑同一個(gè)測(cè)試,Qt 的速度是 WPF的兩倍!

主要是兩個(gè)技術(shù)序列:

1. 基于web技術(shù)的桌面產(chǎn)品,比如vscode,atom,Slack,網(wǎng)易云音樂,釘釘之類的成熟應(yīng)用挺多,文檔也豐富,問問題有人答,搜問題搜得到。

短短兩年間,這么多來自微軟,F(xiàn)acebook, Slack,Docker等公司的桌面產(chǎn)品使用 Electron開發(fā)出來,更多的可以到:Electron Apps自己看。

2. 基于PyQt的桌面產(chǎn)品:DropBox client,R Studio,Calibre,Eric Python IDE, Spyder,PDF Catalog Creator for Magento,出活快,寫小工具用它根飛一樣,做專業(yè)系統(tǒng)可以和C++Qt無縫整合。

R Studio

R Studio

Spyder

Spyder

上面兩張 R Studio / Spyder 的截圖,PyQt做的,不算簡(jiǎn)單吧,這界面,想看酷炫的可以去看 PyQt的 demo,不要覺得 PyQt有多大, DropBox客戶端打包出來 24MB,比很多手機(jī)app都小。

Electron 內(nèi)核整合了 NodeJS,所有 NodeJS能用的模塊 js都能用,比如:

node-ffi/node-ffi模塊,可以讓你直接調(diào)用 C++寫的動(dòng)態(tài)庫,不需要用C++寫個(gè)node擴(kuò)展:

varffi=require('ffi');varlibm=ffi.Library('libm',{'ceil':['double',['double']]});libm.ceil(1.5);// 2// You can also access just functions in the current process by passing a nullvarcurrent=ffi.Library(null,{'atoi':['int',['string']]});current.atoi('1234');// 1234

Python/PyQt也有類似的接口。

WPF線上產(chǎn)品不考慮,不要看著你們辦公室沒人用xp就以為天下沒xp了,你去二三線城市的網(wǎng)吧里看看,大范圍的xp?,F(xiàn)在這個(gè)時(shí)間點(diǎn)國(guó)內(nèi)還有 45%的電腦跑xp,這問題三年內(nèi)不會(huì)緩解,你要做線上系統(tǒng)你基本不可能拋棄這群用戶,做內(nèi)部工具又沒有上面三個(gè)快捷,更何況跨平臺(tái)問題。

雖然我承認(rèn) C#是一門好語言,但堆邏輯還是沒有 js,python之類的快,且不管 C#還是 WPF,應(yīng)用面太窄,學(xué)會(huì)了將來能用的地方也不多,不值得投入。而上面我給你推薦的三套方案,所涉及到的技術(shù)應(yīng)用范疇都廣的多,比如你學(xué)會(huì)了js/Electron,可以無縫把你桌面應(yīng)用遷移到 web上,比如同時(shí)開發(fā)web版本,可以稍微該一下做成移動(dòng)app,學(xué)了python/qt,也有好多別的事情可以做。

所以,學(xué)一個(gè)東西要考慮它本身的價(jià)值

ps:用過win32,owl,vcl,mfc,c#,tk,wx,手?jǐn)]DirectUI,qt

不會(huì)坑你

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 當(dāng)我再次準(zhǔn)備點(diǎn)燃香煙的時(shí)候,卻發(fā)現(xiàn)最后的一支已經(jīng)被我剛剛抽完了,記不起今晚抽了多少,只是現(xiàn)在我終于有了一絲眩暈的...
    守望撒哈拉閱讀 977評(píng)論 0 0
  • 1、書中首先舉了比恩的例子:他似乎不知如何面對(duì)失敗!————我不知道比恩的成長(zhǎng)過程,以及他形成固定性思維模式的原因...
    飛蛾娥閱讀 1,682評(píng)論 0 0
  • 昨天因?yàn)楹屠瞎鷼猓粋€(gè)人去逛街去了,想想好久沒有化妝了,就買了口紅和睫毛膏,到家才想出來忘記買眼影了,真的是好多...
    薇_9d79閱讀 112評(píng)論 0 1
  • 偶爾回顧一下過去,發(fā)現(xiàn)過去真的有很多不好其實(shí)是好事兒,說明自己的品味和審美提高了。 只有從過去不好的狀態(tài)走出來了,...
    遇見人間四月天閱讀 357評(píng)論 0 3

友情鏈接更多精彩內(nèi)容