那些年,我用過的工控開發(fā)語言
春暖花開,沙塵散去,又到了萬物復(fù)蘇的季節(jié),空氣中彌漫著“摩拳擦掌,大展拳腳”的氣息,在廣袤的亞歐大陸上生存著一個數(shù)量龐大的哺乳動物群體——程序猿。
目前,全球有1850萬程序猿,在廣闊無垠的中國就有約185萬。程序猿屬于常見的作息不規(guī)律型哺乳動物之一,熬夜、脫發(fā)、稀少的自由時間……程序猿的生存環(huán)境岌岌可危……
今天就讓我們走近程序猿,了解一下他們的“語言”。
我們特邀碼農(nóng)——“小黑的守望”,給我們講講“那些年,他用過的工控開發(fā)語言”,說起來,那都是逝去的青春和秀發(fā)啊……
4年本科,2年研究生,3年工作生活
那些年,我試過的開發(fā)環(huán)境,形形色色……
不同的平臺,不同的操作,不同的語言
那些年,我開發(fā)的各種程序,千奇百怪……
用著用著,漸漸明白:
君子生非異也,善假于物也。
只有在合適的時機,使用正確的工具,才能順利的解決工作中的問題。
小時候,喜歡看小說,喜歡打游戲,一直覺得寫小說和寫程序的人是非常厲害的,因為在他們的手中,可以創(chuàng)造一整個世界。
后來上學(xué)就有意識地往程序的方向發(fā)展,接觸了不少語言。
按上學(xué)時的掌握度來說:
硬件編程:C > Verilog
軟件編程用:LabVIEW>C++>Python,C#
算法方面:MATLAB
按照工作后的標(biāo)準(zhǔn)來看,不常用的基本退化到了初級階段,常用只有:LabVIEW、C++、Python
接觸這些語言后發(fā)現(xiàn),如果每一種語言的掌握程度都只停留在初學(xué)者階段,很多問題都無法徹底解決,只能疲憊地應(yīng)對各種實現(xiàn)不了的難題。
因此,精通或者說是深入一門語言,成了所有編程者必須面對的問題。我的選擇隨時間推移在不斷變化,不同階段思考的內(nèi)容也不一樣。
開始選擇
在大三的時候,曾經(jīng)問黃晶學(xué)長(全國虛擬儀器國賽特等獎大神):“我會好多語言,但究竟應(yīng)該以哪一門語言為主呢?”
學(xué)長反問我:“你確定會好多種?只拿LabVIEW來說,我也不能說會?!?/p>
當(dāng)時心想,學(xué)長LabVIEW已經(jīng)超級厲害還說自己不會,那我這個小菜鳥豈不是什么都不懂,羞愧之下決定好好精通一門。
當(dāng)時對LabVIEW最熟悉,而且能夠快速做漂亮的界面,又有學(xué)習(xí)的偶像,所以選擇了它。
第二次的選擇
熟練LabVIEW是非常有幫助的,利用它解決過各種工程問題,包括我的畢設(shè)、上學(xué)期間做的許多上位機、工作后的各種自動化控制程序。
整體而言,LabVIEW的深入讓我可以應(yīng)對大部分的工程問題,無懼很多很棘手的問題。
然而,隨著工作時間的增長,越加發(fā)現(xiàn)LabVIEW不適合在私企做更大的程序。
LabVIEW優(yōu)勢是快速原型驗證,在時間緊迫,任務(wù)重的時候,可以降低學(xué)習(xí)成本,加速開發(fā)。
然而,它面向的通常是硬件工程師或者不太懂軟件編程的研究者。
為了達到容易上手的目的,很多復(fù)雜的功能都通過封裝簡化,很多軟件理論也都進一步弱化,從而達到的短時間內(nèi)出成果的目的,這也導(dǎo)致LabVIEW易學(xué)難精。
但是,在程序開發(fā)過程中,不可避免地遇到需求不斷增加,功能不斷累積。
當(dāng)程序規(guī)模越來越大時,打包、編譯、框架、人員等初期驗證并不需要太多關(guān)注的問題反而成為制約開發(fā)的重要因素。
公司一款商業(yè)測控程序,打包需要1天多的時間,而且經(jīng)常失敗。其實,產(chǎn)品本身沒有問題,但定位比較宏大,選擇LabVIEW進行開發(fā)就不再明智。
某創(chuàng)業(yè)公司想要做原型產(chǎn)品,選擇NI方案人員不好招募,自己培養(yǎng)又沒有太多的時間。
某創(chuàng)業(yè)公司在做消費類電子的自動化產(chǎn)品,由于公司規(guī)模不可能用盜版,NI的軟件較高,遠(yuǎn)不如自己開發(fā)特定需求的功能"便宜"。
我為了回避LabVIEW帶來的一些瓶頸,學(xué)習(xí)更好的架構(gòu)體系,寫更牛的程序,開始嘗試資料豐富的C++作為第二語言,用于系統(tǒng)的學(xué)習(xí)軟件理論,學(xué)習(xí)面向?qū)ο?,學(xué)習(xí)設(shè)計思想。
第三次的探索
半年多過去了,當(dāng)C++可以解決工作中大部分問題時,又遇到另一個問題。
工作中還是要寫Client程序,C++由于UI操作極其不便,設(shè)計UI界面仍需大量編碼,單人開發(fā)效率并不高。
也可能是習(xí)慣了LabVIEW的節(jié)奏,用C++開發(fā)UI速度降低太多。
于是,業(yè)余時間探索了一下Python和C#,發(fā)現(xiàn):
Python作為一個膠水語言,能找到各種各樣的庫文件,寫小的測試腳本非常方便。在不復(fù)雜的程序,如測試序列,非常適合使用Python。
C#為C++的升級版本,在Windows上開發(fā)客戶端程序比C++效率高太多了,除了LabVIEW在工業(yè)顯示的控件比較有優(yōu)勢外,大多炫酷的界面在C#中都有很好的庫支持。
回顧我的學(xué)習(xí)曲線,過去的時間和精力已經(jīng)全部投入且無法挽回。
如果可以重來,我希望在最開始有一些建議,這里可以給學(xué)習(xí)的是自動化,測控相關(guān)專業(yè)同學(xué)一些小的參考。
如果你將來想從事工業(yè)控制相關(guān)的工作
畢業(yè)留高校研究所:優(yōu)先熟悉LabVIEW,掌握基礎(chǔ)C語言
理由:高校研究對成本不是特別敏感,可以使用較貴的NI儀器,配合LabVIEW可以加快研究的步伐,減少軟件學(xué)習(xí)成本。
使用C/C++語言可同時幫助開發(fā)硬件程序,畢竟研究所通常要求一個人完成一整個軟硬件體系的搭建。
畢業(yè)去測控、自動化類私企:優(yōu)先熟悉C#,掌握基礎(chǔ)LaBVIEW
從公司角度講:測控類的私企對成本很敏感,雖然在初創(chuàng)的時候使用LabVIEW可以迅速打開市場,快速完成給定目標(biāo),但長期發(fā)展受到硬件成本限制。自研軟硬件是公司發(fā)展到一定程度的必然選擇。
從個人角度講:私企人員流動比較大,LabVIEW就業(yè)范圍較窄,同一行業(yè)的優(yōu)秀公司只有一兩家,未來如果想要去其他方向或者行業(yè),文本編程占據(jù)主導(dǎo)地位的概率大,所以盡可能的掌握一門文本編程語言。
畢業(yè)去測試類國企:優(yōu)先熟悉C#,其次熟悉python
理由:較大的企業(yè)通常會有話語權(quán),不用選擇語言。
供應(yīng)商使用LabVIEW做硬件驅(qū)動開發(fā),你只需要掌握容易的編程語言來調(diào)用即可(甚至不再編程)。
如果將來想從事互聯(lián)網(wǎng)相關(guān)行業(yè)
建議精通java,C++,python中的一門,并且熟練使用Linux系統(tǒng)。
注意:這里的建議僅供參考,每個人的選擇還會受到各種因素的制約,比如老師的課題要求,公司的團隊語言,甲方的項目需求等等。
未來發(fā)展
從事工控行業(yè),使用C#+python/MATLAB做開發(fā)一直是我認(rèn)為比較看好的方向之一。
較低的學(xué)習(xí)成本,簡單明確的框架體系,較多的成熟UI庫,后續(xù)可以深入的軟件理論,這些都是工程師軟件開發(fā)的必備之物。
并且,中國工程方面的強大軟件還很缺乏,能夠有自主創(chuàng)作的軟件出來,對于工程控制方向發(fā)展還是大有裨益的。
然而,當(dāng)下來看,C#對于工業(yè)控制的支持力度還是不夠,遠(yuǎn)不像LabVIEW一樣成熟,需要更多工程師的去完善和發(fā)展。
中國本土的企業(yè)也逐漸出現(xiàn)自己的東西,通過不停學(xué)習(xí)NI公司,一些公司已經(jīng)推廣基于C#的一些開發(fā)庫。
雖然功能和解決方案都還處于比較初級的階段,但麻雀雖小五臟俱全,作為國內(nèi)的測控發(fā)展,還是很期待其發(fā)展。
最近剛好有兩個思考分享給大家:
2018年3月23日,中美貿(mào)易戰(zhàn),美國針對高科技軟硬件進行限制。
雖然這次的限制概率不大,但無疑給我們工程技術(shù)人員一個警鐘,將來限制進口的風(fēng)險不可避免,只有提前儲備自研的軟硬件,才可避免未來依舊受制于人。
一直可以看到國內(nèi)IT軟件發(fā)展迅速,卻不見任何工業(yè)級別軟件有所建樹。
國內(nèi)工程開發(fā)所用的軟件基本上都來自國外,工程軟件在項目中基本都是附贈產(chǎn)品,接項目總是靠關(guān)系和忽悠,自動化設(shè)備永遠(yuǎn)是你抄我,我抄你,處于原始競爭狀態(tài)。
所以,工程行業(yè)需要攪局者,需要變革者,需要引領(lǐng)者。
對國內(nèi)出現(xiàn)自主創(chuàng)新的企業(yè),我們當(dāng)以包容的態(tài)度去看著他們成長,靜靜的等待他們壯大,等待有一天撐起中國的工程發(fā)展。
(本文僅代表作者觀點)
提交
2024年斯凱孚創(chuàng)新峰會暨新產(chǎn)品發(fā)布會召開,以創(chuàng)新產(chǎn)品矩陣重構(gòu)旋轉(zhuǎn)
禹衡光學(xué)亮相北京機床展,以創(chuàng)新助力行業(yè)發(fā)展新篇章
從SCIMC架構(gòu)到HyperRing技術(shù),機器人控制技術(shù)的革新
漢威科技用智慧化手段為燃?xì)鈴S站構(gòu)筑安全防線
DSP應(yīng)用市場的大蛋糕,國產(chǎn)廠商能吃下多少?