從我學(xué)習(xí)計(jì)算機(jī)、軟件相關(guān)知識(shí)開(kāi)始,十幾年來(lái),我曾經(jīng)使用過(guò)的上位軟件集成開(kāi)發(fā)工具按時(shí)間順序依次為(這些集成開(kāi)發(fā)工具,有些我已不常使用,有些甚至完全被淘汰):
visual foxpro
visual basic
visual c++
delphi
matlab
visual studio
QT
android studio
使用的編程語(yǔ)言有:foxpro,
VB,
c,
c++,
pascal,
matlab,
c#,
java
除此之外,還有以下的腳本語(yǔ)言:
lua,
python,
javascript,
php
現(xiàn)在,最常使用的集成開(kāi)發(fā)環(huán)境有delphi以及android studio,其中delphi主要用于開(kāi)發(fā)有人機(jī)交互界面顯示的上位機(jī)開(kāi)發(fā)軟件,用于數(shù)據(jù)采集、存儲(chǔ)、顯示。
基于delphi開(kāi)發(fā)了控制器的遠(yuǎn)程升級(jí)程序、控制器內(nèi)置網(wǎng)頁(yè)生成下載工具以及modbus數(shù)據(jù)采集、設(shè)置工具。delphi在十年前非常流行,其特點(diǎn)是非常小巧,我使用的安裝包還是當(dāng)前上大學(xué)時(shí)從隔壁學(xué)校圖書(shū)館下載的delphi 7的破解版,大約400M的大小。
雖然近十年前,delphi已經(jīng)沒(méi)落,很多風(fēng)靡一時(shí)的delphi相關(guān)的網(wǎng)站估計(jì)已經(jīng)消失,但是,從網(wǎng)站上依然能找到非常多的第三方庫(kù)。還能滿足大部分應(yīng)用要求。
在我的電腦上,也有裝visual studio和QT,但是用得不多,曾經(jīng)用visual studio幫朋友研究過(guò)shadowsock,曾經(jīng)用QT修改過(guò)xmpp客戶端,用于測(cè)試公司的產(chǎn)品。
visual studio和QT都太龐大了,安裝包都有好幾G,電腦打開(kāi)IDE之后,變得非常卡,影響效率。遠(yuǎn)不如delphi用得得心應(yīng)手。
android studio主要用來(lái)編寫(xiě)控制器的app,設(shè)計(jì)的app是web app,主要用html5+javascript實(shí)現(xiàn),再打包成app,基于java的原生app編寫(xiě)并不多。至于matlab,之前主要是用來(lái)做數(shù)據(jù)分析,算法研究,以及電路分析.
比如,以前做智能電表項(xiàng)目的時(shí)候,需要用到快速fft變換,直接調(diào)用matlab的fft函就得到結(jié)果,再與自己通過(guò)單片機(jī)c語(yǔ)言實(shí)現(xiàn)的fft函數(shù)進(jìn)行比較,驗(yàn)證函數(shù)正確性.
比如PID的控制算法的研究,之前借助matlab的simulink做一些仿真,研究PID的參數(shù)整定,非常方便.
用來(lái)做電路分析也非常方便,通過(guò)電路理論(比如基爾霍夫電流、電壓定律),我們通常對(duì)電路可以得到n元一次方型組,通過(guò)matlab的符號(hào)矩陣運(yùn)算,可以很快速得到結(jié)果。
自從matlab6.5在windows 7的系統(tǒng)上無(wú)法安裝,下載windows 2010又沒(méi)有l(wèi)icense之后,我就對(duì)matlab就徹底失望了,近五年沒(méi)碰過(guò)了。
我用php語(yǔ)言主要是用來(lái)編寫(xiě)服務(wù)器程序,在wordpress的基礎(chǔ)上實(shí)現(xiàn)了控制器的管理后臺(tái),采用workerman實(shí)現(xiàn)了一個(gè)tcp服務(wù)器。
下圖是基于VUE+element UI+websocket實(shí)現(xiàn)的網(wǎng)頁(yè)前端:
我覺(jué)得隨著技術(shù)的發(fā)展,解釋型的腳本語(yǔ)言會(huì)大型其道,其特點(diǎn)就是簡(jiǎn)單,資源多。
目前來(lái)看,最火算是python了。
接下來(lái)的發(fā)展趨勢(shì)是物聯(lián)網(wǎng)、云計(jì)算,根據(jù)這樣的趨勢(shì),我覺(jué)得未來(lái)軟件的系統(tǒng)架構(gòu)會(huì)是如下圖:
跟設(shè)備配置使用的上位機(jī)軟件需要有幾大功能:
1) 基于串口,USB,TCP/IP的實(shí)時(shí)數(shù)據(jù)采集
2) 數(shù)據(jù)存儲(chǔ),數(shù)據(jù)的展示
3) 人機(jī)交互界面
4) 數(shù)據(jù)分析
結(jié)合未來(lái)的軟件發(fā)展趨勢(shì),這些數(shù)據(jù)最終需要上傳到云服務(wù)器,進(jìn)行大數(shù)據(jù)的云計(jì)算,并通過(guò)前端的UI展示出來(lái)。
python是同時(shí)滿足這幾大功能需求的上位機(jī)軟件開(kāi)發(fā)語(yǔ)言。
數(shù)據(jù)分析有強(qiáng)大的pandas庫(kù),支持和matlab一樣的矩陣運(yùn)算,支持大數(shù)據(jù)處理,最關(guān)鍵是免費(fèi)的。
設(shè)備通信pyserial庫(kù),應(yīng)用盡有...
要做好一個(gè)系統(tǒng),一個(gè)產(chǎn)品,需要精通各方面的知識(shí),比如電子、電路,單片機(jī),C,delphi, HTML5, javascript,前端框架(如VUE, bootstrap,element UI),PHP,mysql, redis,TCP/IP, websocket, HTTP,workerman,lua, android...
這是題外話, 不管怎么樣,去學(xué)python吧,未來(lái)是python的天下。