同時會C#、QT還有PYTHON是一種什麼體驗?
我本身會C#,最近特別想學Python和QT,不知道同時會這三種語言是什麼體驗?原諒我把QT當成一種語言,其實我知道就是Cpp。但是我想說的是會QT開發。如果我要學習另外這兩種語言,優先哪一個更合適?
Qt什麼時候成了語言了。
其實會C#,C++,Python並不是什麼難的事情,而且因為分工的不同,很可能是個越來越基本的要求。C#做上層,C++做底層,Python做快速原型。用另一個來取代其他的,比新學一樣要麻煩得多。謝 @孟德超 邀,體驗很奇妙。既然提到了QT,想必是要做GUI了。
毋庸置疑,C#+WPF是windows上最簡單,最強大的GUI解決方案。然而C#也是一門極為優秀的語言,配合VS寫代碼可謂行雲流水,Blend什麼效果都能做出來。
再者用QT的話,QT作為一個C++的庫還是超級棒的,一個Qtcore裡面就不知道有多少好東西,信號槽機制也是一個很好的設計。另外QT5引入的QML雖然和WPF的xaml比不了,但是極大的加快了開發的速度,其實拖拖控制項也挺快的2333.至於python GUI。。除了pyQt,其他的還真不是那麼好用。。然而既然都用qt了,為啥不直接上C++得了。。反正不管學什麼語言C++永遠都會是一個躲不過去的關卡,畢竟C++能讓你更加了解計算機的運行。至於自己的使用經驗。。先用python實現想法,如果有運行速度要求就上C++肝,有GUI需求直接C#分分鐘做出來,有跨平台需求會用QT搞。反正C#能調c++,py也能調c++,c++也能調python,都沒差,最重要的還是核心的演算法。說了這麼多,平時用的最多還真的就是python c# c++,然而畢竟VS大法好,三種語言支持一樣優秀,貌似暴露了自己軟狗身份,哎呀呀真不好意思。先不糾結語言,類庫還是框架,同時會這3個的人其實蠻多的。僅限Win平台,一般情況下,如果是寫給自己或公司內部用的工具,不帶GUI的,我一般選擇python,帶GUI的用PyQt或PySide;寫給合作公司或者外部人員小範圍使用的,選擇C#,因為打包方便;作為公司的主要產品,面向普通客戶的桌面軟體,現在用的是C++配Qt。另外,寫給老婆用的話,只能拿起PHP+HTML5了,因為她在家用Air,上下班路上用iPhone,上班時間用聯想筆記本,出差用Android,你說我有什麼辦法呢。那麼問題就來了,我為什麼就不用Java呢,原因嘛,因為我不會 。
Qt不是一種語言,也不是CPP,是個框架,一個結構……就算不鳥C++也可以用PyQt的其實……
沒啥體驗。合適幹啥就用啥,用噁心了換一個。Python開發快,做插件讓其它語言走PIPE調或者走dll調解釋器大概是最爽的事情。Qt清晰度不錯,加上各種類庫齊全……C#偶爾用,實在太懶的時候……
另外C#目前主流也就在Windows下及U3D中跑。U3D簡單到爆以至於沒啥好說的,Win下不是我的主場。qt寫個程序,拿python當動態鏈接庫用。。
如果不是初學者的話,學習語言不分先後,反正最終你都是必須要全部學會的。而且你也沒辦法估量到底先學什麼好,畢竟你永遠都不知道機會什麼時候來。就如同我今天跟老闆開會才知道,我他媽在Office寫客戶端用的開發工具,竟然作為組裡有限的幾個玩過JavaScript黑魔法的人,要參加一個全新的子項目了……
簡單用過這三個。python 用來寫腳本,特別是處理跟網路有關的,如抓抓數據,一般只需要在自己電腦上跑。C++ Qt,寫一些簡單的應用程序,在 Win 和 OSX 能跑且需要有個簡單的GUI。C#,寫能處理網路又帶 GUI 並且只需要在 Win 上跑的程序,如抓其他程序的 http 包,因為 Fiddler 沒提供C++介面又找不到好用的C++庫,一般在別人電腦上跑。
c#,python,但win的界面還是推薦WPF啊
python超簡單超好學的,VS的python交互超好用的…
最近寫我們一個MP的判題器,用C++和C#寫了兩個不同的部分,分別用到了Linux 系統調用和.Net Core提供的網路與多線程相關庫…Win下開發,部署到Linux 上,還是很爽的
測試中的一部分是測試標程(一個用C寫的HTTP伺服器)的並發響應接收能力,因為實在不願意繼續用pthread和Linux網路系統調用了(那些玩意實在是太酸爽了),於是用C#單獨寫了個模擬客戶端,.Net 4.5里的HttpClient在.Net Core下可以直接用,直接連著調用幾次非同步訪問方法就搞定了,配合VS2015,開發效率高到嚇人。在Win下寫好了可以直接發布到Linux上,感覺巨爽。我會漢語、英語、上海話,家鄉話。然並軟。
除非是做dll注入到別的程序里,否則我都不用c++了,以前寫遊戲修改器都是c#,py有一定的跨平台部署優勢,但2.7和3.x這個分水嶺也讓我放棄這貨了,c#跨平台也不麻煩,裝個mono的事兒,以後.net core更是為跨平台設計的,qt以前倒是有運行庫優勢,能直接跑,所以稍微學了點點,但現在也無所謂了,反正都是自己用也不是給別人用,就算給別人用也大多有.net4了,沒的讓他裝一個,反正我感覺c#能滿足這些開發,其他的早就扔了。
要學的話學底層c++ 彙編 和系統打交道玩去,別老在上層瞎轉悠。表示。。。在我真的學會這仨了之後。有時候也會有些糾結。
同樣做一個桌面程序,使用C#+WPF或者Winform還是C++ + Qt,特別是當需要的第三方庫兩個語言都有的時候。開發效率基本上差別也不會很大,大多數情況下C#還是會高一丟丟。但是Qt的開發效率也不低。Python的話。。。除了學的時候,就再也沒用它寫過GUI,平時就是謝謝爬蟲,做個數據分析用的。JS的話。。。完全當成計算器了。。。畢竟好久不寫網頁了。
最近我做了一個自動做合同的軟體,本來是用Python實現的,後來想用Qt重寫,然而發現C++讀Excel還可以,但是讀寫Word好麻煩,於是就上了C#+Winform,一下午就把軟體擼出來了。然後三天幹完的活以後可以五分鐘幹完了。
所以除了糾結(畢竟我是天秤座),還有就是可以多個選擇。庫都一樣支持的情況下,真的會糾結,否則誰有相關的庫,就用誰。
沒啥好體驗,除非你為自己工作,不然就乖乖地按公司要求用你該用的語言。
實際學習體驗上來看,Qt是最好學的(在精通C++的前提下),但是Qt的應用面也是最窄的;
Python環境比較討喜,想處理什麼臨時任務寫個.py就可以跑了,庫也足夠豐富以至於不管你想做點啥,總會優先想起它。我以前處理文本經常用Perl後來都換Python,正則匹配不比Perl差勁生成器又超級省事;C#當你想用它做一下什麼事的時候,總是被平台和IDE絆一下,所以已經好幾年沒正經寫過相關代碼了,當然看還是看得懂的。現在有需要寫UI時,會優先考慮PyQt,至於C#,等開源版穩定再說吧。鸚鵡會講話,可是講不出個所以然,也發表不了國王的演講。你學習的編程語言再多,不會演算法,不懂設計模式,寫出一萬行層層嵌套的代碼,也是白搭。
語言只是一種手段,重要的是編程思想。C#我沒有接觸過,C++, Java, Python 我都有使用,感覺只要掌握好C++,並深刻理解其背後的面對對象編程思維,理解重載、多態、繼承這些基本的概念,再學習其他的編程語言都比較容易。從易用性上說,Python 是最棒的,開發效率高,擴展包豐富,並可兼容其他語言,是一種高效的glue language。
至於Qt ,我更覺得它是一種窗口管理系統,跨平台,移植性好。上學的時候經常用它做嵌入式儀器。了解了Qt ,後面因為要完成一個小任務,需要開發Android App,感覺在窗口管理和事件響應上,這兩者還是有很多相似之處的。
總而言之,編程技術有很多相通的地方,多想,多總結,慢慢就會有體會。沒啥體驗。。大概就是
0w0 (Python)-w- (C#)=口= (c++)至於學哪個。還是Python吧。跟C#差異更大一點。適用場景區別更大。優先學差異更大的,更好的開闊編程思維。以及擴大適用範圍。做C#有5年了,C#這種語言入門簡單,精通很難,一般的寫個簡單點的窗體應用我倒是很樂意用它,畢竟簡單。關鍵是不用考慮兼容性,只要是win,都可以運行,普通應用基本不用考慮平台測試的問題。不過我現在拋棄C#了,因為我買了個mac。。。Python這語言相當的棒,用來寫個網路腳本啦,數據處理啦,後台啦,各種棒棒噠。簡潔+簡單,I love Python。關鍵是python的類庫,對於讀博的我,有很多數據要處理,python的庫都能滿足,實在不能滿足的就自己寫一個演算法。不要問我為什麼不用matlab,因為我沒錢啊,買不起正版,重點是我不喜歡他的編程風格,窮學生一枚。嚴格的說,Qt放在這裡作比較是不合適的,因為Qt只是一個框架而已,誰都可以用啊,我在C++,C#,java,python裡面都用啊。。。順便吐槽一下我的境遇,實驗室就我一個有軟體行業背景,做事太難了。提出的建議永遠都沒人接受。好幾個人協同開發,我建議用Git都有人反對。。。哎。。。
掌握多種語言,框架不是很正常的現象嗎?
1. 會 C#: VS太大了……電腦有點帶不動……(電腦比較老了,VS2015卡的要死,2017好點)2. 會 Qt: Qt Creater 太**難用了,VS 插件最高支持 2012 差評。(現在去插件中心裡有支持新版的,試過但沒成功)3. 會 Python: 爽翻!但是,為啥 Virtualenv 產生的文件這麼多!
推薦閱讀:
※軟體定時器是子線程么?
※Qt程序冷啟動過慢如何解決?
※PC客戶端開發:目前有沒有封裝的比較好的類,可以比較快速和高效的實現QQ的氣泡聊天信息展示功能?