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