Ⅰ 桌面端開發都用什麼語言,簡單分析下這些語言的優劣勢對比
目前,最優的選擇有四個:
1.如果只在win下使用,.net form是不二選擇,可謂是又快又好,企業應用或定製開發都是相當好的,初學者也可以入手。
2.electron,跨平台。需要會前端,必須熟悉js、css和html。屬於前端人員大殺器,如果是初學者,需要一下子學三樣東西,再加上electron的進程間通信,可能會被搞懵。
3. qt5,可以使用qml(js語法)進行UI編程,但是需要懂c艹,但是寫軟體相當快,還可以寫安卓、ios、linux、嵌入式中的應用。
4.flutter,剛剛正式支持win平台的軟體開發。谷歌出的這個東西,適合沒有基礎的初學者,因為是一個全新的體系,全新的語言,寫ios、安卓非常高效,之後還會兼容h5。如果是初學者可以跟著走,值得嘗試。但是新東西總有一些坑。
正式項目跨平台建議electron或qt,只用win平台強烈建議微軟自己的net。個人技術嘗試建議flutter。
桌面端開發跨平台的,如果你是輕量級的項目,那麼我推薦你用electron, 目前使用Electron來開發的桌面應用非常多,我們最熟悉的比如Atom,VScode等等。
而且在github上也能找到許多應用使用了electron。
electron是Node,Chromium,html,css,js的結合框架,這就需要你有一定的前端基礎。其實只需要了解一下electron的API就行了,其他的就像你在做web是一樣的。
這種方式最大的缺點就是性能,還有透明窗口也有問題。所以在做需要性能方面佔有很大成分的項目時,並不推薦使用這個方式。
那麼其他的,就是最近幾年使用比較多的windows directui框架,但它不是跨平台的。
那麼就引出了qt,作為c++跨平台的界面框架,這個上手的話,我覺得對一般人是有難度的,因為首先需要扎實的c++功底,其次你要熟悉控制項的製作原理,因為有時候你需要定製自己的UI控制項。它現在在嵌入式,軍工領域非常受歡迎。但是整個庫非常臃腫龐大,而且開發界面的效率也非常低。如果來做互聯網項目,迭代更新的速度根本就跟不上。
目前都只有大公司會採用,像maya這種生產力型的應用很多是qt做的。
還有一種是直接使用Cef加js,比如網易雲音樂,就是這么搞的,但是很多和系統平台的交互介面你需要重寫,等於是需要自己造輪子。工作量大,目前沒有適合的框架給你套用,也需要扎實的c++功底。
其實pc端的應用基本也就windows會火一些,再加一個macos,那麼選擇qt應該會很好一點,畢竟你自己造一個跨平台的框架,太費時。總之,做跨平台就意味著,不可能做到既有效率又完美的實現各種功能,許多都要自己摸索。
win桌面端直接上visual studio啊!然後你熟悉什麼語言?vb.net,c#,c++都有相應的win桌面工具。直接用就好了,非常好用
編程語言這種東西無所謂,只要能用啥都可以。 主要看你老闆需要和你會用什麼語言。
比如 我用AS編安卓程序,當然用java。不過我後台最開始用ASP和ASP.NET來做,現在換PHP了。桌面端用QT或者VB做。 涉及單片機部分控制也用C。
現在做跨平台的了 開始以QT為主了。
只要能達到目的啥都可以。
學會1-2種 換其他的也不是很難。
對初學者來建議學C起步吧。
精通一門,重新學個語言入門也就1個月的事。
PC桌面程序,如果簡單一點的,用pyqt5+python的開發難度和周期都比較現實一點
會C++ 用Qt5 非常不錯 寫代碼效率很高
會js 用atom使用的那個框架
會Python用PyQt 寫代碼很快
會java用JavaFX
看語言咯
還可以用delphi,其firemonkey框架發布8年時間,支持跨平台:win,安卓,ios,macos,linux,後續支持webassembly,界面是控制項拖拽布局所見即所得,開發效率較高。編譯生成的是機器碼,編譯速度快,調試方便,其生成機器碼運行效率較高,支持x86,arm的32位64位處理器。支持跨平台3D界面,藍牙通訊,定位,重力,攝像等,支持多種SQL,NoSQL資料庫。單個開發工具實現前後端開發,跨平台開發。適合個人和小公司用一套工具實現大部分開發需求。
主要有以下幾種技術
### Duilib
#### 簡述
Duilib是在Windows平台上使用最廣泛的類庫,使用C++和XML混合編程,國內很多計算機企業都喜歡使用這個類庫,可能是由於他的技術許可比較寬泛的原因。
適合於界面比較簡單的軟體,視覺特效豐富,局限於Windows的平台。例子:360電腦管家。
#### 優勢
#### 劣勢
### Gtk、Qt或WxWidget:
#### 簡述
三種基本可以做到跨平台的技術,使用C/C++開發,使用者廣泛。其中WxWidget使用了API嫁接方式,Qt和Gtk(包括各種綁定技術)使用自繪技術。
結構嚴謹,軟體可以做的很大很復雜。例子:WPS和Maya。
#### 優勢
#### 劣勢
### Electron:
#### 簡介
使用Web技術開發桌面軟體,基於Chromium(Chrome)引擎,使用JS編程語言,絕大多數使用者都是原來的網頁開發者。
絕大多數都是愛好者使用,處於「勉強可用」的地步。
適合大面積靜態展示型軟體使用。例子:網易雲音樂。
#### 優勢
#### 劣勢
### QtQuick(QML)
#### 簡述
Qt公司開發的一款基於OpenGL的圖形類庫,有顯卡加速,類似於Duilib。採用了C++與QML混合編程。QML類似於JavaScript語言。
QtQuick下一個版本在Qt 6上更加強大,業界期待已久。
#### 優勢
#### 劣勢
### Atk、Swing或JavaFX
使用Java語言開發軟體,有JDK加持業界積累的眾多Java類庫支持。有不輸於VS的IDEA加持,本應該更棒,只是現在已經式微了。
絕大多數使用者都是企業開發(不追求界面美觀)、愛好者(開發順手)。
### WinForm、WPF或Xamarin:
使用C#開發,WinForm和WPF局限於Windows平台。有VisualStudio加持使用很爽。
### Flutter:
使用Dart語言,新類庫,bug可能會很多。
### SwiftUI或Cocoa:
蘋果平台原生界面技術,macOS平台內建支持,不是macOS專用軟體不推薦。
### Win32:
經典Windows 平台API,絕大多數只有一些老軟體還在使用,不是維護老軟體不推薦。
winform,不二選擇
webview2,作為一個瀏覽器控制項嵌入在桌面應用中,支持.net core和.net framework
Ⅱ 學習編程突然開竅是一種什麼體驗
初中時,那是97年,初次接觸電腦,便對電腦產生了一種神秘的感覺。當然因為環境和條件的問題,之後基本沒有碰過電腦,對電腦產生了敬畏心理。大一在圖書管初次看到VB的教程,深深的愛上編程,動畫設計。那時侯我對計算機還一無所知,程序員這個稱號,我只感覺有這樣的稱號的人是計算機高手,怎樣去努力獲得這樣的職位我完全不懂。不過的定下目標,在07年要拿到這樣的證書,還有計算機3級,4級。那時計算機的每一個環節都深深吸引著我,我全身心投入了學習中。不過後來由於生活的種種原因,我發現我已無心再繼續下,我似乎放棄了。
卻陷入了游戲中,變的無所事事。06年底,考試前半個月,發現大學已過去大半,我對這樣的生活有點厭倦,就想還有什麼沒有完成。發現大一時的目標依然留在大一沒有完成。而那時也只有半年的時間了。於是我把半年細分,安排每一階段的目標,最終完成了大一的理想。
雖然拿到了程序員證書,但是依然有個問題困擾了我很久,之後兩年都沒有接觸編程。就是一個黑乎乎的界面跟軟體有什麼關系,這個謎底一直困擾著我。
直到09年,一直失業的我決心重啟計算機編程,路過深圳的書店,買了基本書,C++,C#等等,結果很快就看完了,心中的疑惑依然沒有解開。沒辦法又出去工作半年,半年後在次失業,對工作已經心灰意冷的我決心再次重學編程,這次買了一本JSP,JAVASCRIPT+HTML+CSS。JSP不用說,完全看不懂,JS,HTML,CSS當然照書看,抄,能看懂一部分,可惜完全不上道。陰差陽錯,那是後在迅雷看看到馬士兵手把手視頻教程,JAVASE,坦克大戰實戰視頻,就跟著學,半個月後把SE看完了,然後看實戰教程,結果完全看不懂。一遍一遍,依然沒看懂,最後有些放棄的感覺,終日通宵電影游戲。大學畢業卻沒有工作的哪種感覺,那種惶恐,無奈,害怕父母有一天老去,害怕出門碰到鄰居親戚。
後來在網上看到關於JAVA培訓的班,就留了電話。但是沒有去,父母看到我整天玩游戲,就把網停了。沒有了網路,更是害怕。按耐不住的我,決心再看視頻教程,看了幾集就看不下去了。然後這樣一次次,反復,最後還是沒有看懂。也許不是這塊料,也許需要人指導。終於覺得到福州看看培訓班,去了福州我決心報名。交了錢以後還有一個星期開始上課,然後我就回家把電腦拿到福州,台式電腦,搬的很辛苦。這個星期,依然沒有網路,只有下載的視頻,也許因為可以有機會好好學習編程,暫時不用擔心工作問題,內心平靜了下來,決心再看一次,第一次的時候似乎看懂了,又看了兩次,每次都是一行行照抄,終於在第三次的時候,我看明白了,那時我突然有一種感覺,一種似乎我能夠自己寫一個貪吃蛇,沒有網路沒有導師沒有參考資料,沒有書籍,只有JDK幫助文檔,但是心中的疑惑已經解開,我感覺領悟到了編程之道,然後吃飯想,睡覺想,上廁所想,終於做出來了,雖然有很多問題,但是那時第一個算一個成品的軟體。然後,此時我認為自己能夠寫一個俄羅斯方塊,依然茶飯不思,幾天時候做出來了。此刻我感覺自己悟道了。
再次看JSP,JAVASCRIPT,資料庫,socket,swing的時候,我感覺暢通無阻,因為明白了如何去思考,如果去查閱文檔。
之後雖然上了培訓班,但是從來沒有碰到難題,也沒有問過老師問題,基本上第一階段我已經把第二階段看完了。
14年再次學習了C++,VC之後,對編程有了更進一層領悟。從C++語言,到VC到MFC,CEF,NPAPI,NPAPI,Duilib,Activex,短短的數月,就熟練了他人數年的技術。,也許那是是最巔峰時期。15年發現支付寶漏洞,18年重寫帶寬提速演算法。當然現在依然寶刀未老。之後5年沒有接觸C++,19年看到別人用時,依然能夠指導其完成,擁有的是思維。在軟體編程中從未碰到解決不來的問題,在網上和工作中幫助過很多程序員,不乏有頓悟的人。查找問題的速度也不是常人能及。
中間找工作一直很困難,別人問我覺得哪裡有難度,我不知道怎麼回答,我總覺得沒有難度。
不過,人生很多不定數,雖然悟道,但工作一直不順利,幾經波折,中間沒有大起卻有大落,工作之外寫過很多軟體