那些年,⼯控开发我⽤过的语⾔
前⾔
4年本科,2年研究⽣,3年⼯作⽣活,那些年,我试过⼀些开发环境,形形⾊⾊…
不同的平台,不同的操作,不同的语⾔,那些年,我开发过各种程序,千奇百怪…
⽤着⽤着,渐渐明⽩,君⼦⽣⾮异也,善假于物也,只有在合适的时机,使⽤正确的⼯具,才能顺利的解决⼯作中的问题。
语⾔的魅⼒
⼩时候,喜欢看⼩说,喜欢打游戏,⼀直觉得写⼩说和写程序的⼈是⾮常厉害的,因为在他们的⼿中,可以创造⼀整个世界。
后来上学就有意识的往程序的⽅向发展,接触接触过不少语⾔:
按上学时的掌握度来说
硬件编程: C > Verilog上位机软件开发培训
软件编程⽤: LabVIEW>C++>Python,C#
算法⽅⾯: MATLAB
按照⼯作后的标准来看,不常⽤的基本退化到了初级阶段,常⽤只有LabVIEW、C++、Python
语⾔的选择
接触这些语⾔后发现,如果每⼀个的掌握程度都只停留在初学者阶段,很多问题都⽆法彻底解决,只能疲惫的应对各种实现不了的难题。因此,精通或者说是深⼊⼀门语⾔,成为了编程者所必须⾯临的问题。我的选择随时间推移在不断变化,不同阶段思考的内容也不⼀样。
开始选择
在⼤三的时候,曾经问黄晶学长(全国虚拟仪器国赛特等奖⼤神): "我会好多语⾔,究竟应该以哪⼀门语⾔为主呢?"
学长反问我:“你确定会好多种?只拿LabVIEW来说,我也不能说会。”
当时⼼想,学长LabVIEW已经超级厉害还说⾃⼰不会,那我这个⼩菜鸟岂不是什么都不懂,羞愧之下决定好好精通⼀门。
当时LabVIEW最熟悉,⽽且能够快速做漂亮的界⾯,有学习的偶像,所以选择了它。
第⼆次的选择
熟练LabVIEW是⾮常有帮助的,它解决过各种⼯程问题,包括我的毕设、上学期间做的许多上位机、⼯作后的各种⾃动化控制程序。整体⽽⾔,LabVIEW的深⼊让我可以应对⼤部分的⼯程问题,⽆惧很多很棘⼿的问题。
然⽽,随着⼯作时间的增长,越加发现LabVIEW不适合在私企做更⼤的程序。
LabVIEW优势是快速原型验证,在时间紧迫,任务重的时候,可以降低学习成本,加速开发。然⽽,它⾯向的通常是硬件⼯程师或者不太懂软件编程的研究者。为了达到容易上⼿的⽬的,很多复杂的功能都通过封装简化,很多软件理论也都进⼀步弱化,从⽽达到的短时间内出成果的⽬的。,这也导致LabVIEW易学难精。
但是,在程序开发过程中,不可避免的遇到需求不断增加,功能不断累积。当程序规模越来越⼤时,打包,编译,框架,⼈员等初期验证并不需要太多关注的问题反⽽成为制约开发的重要因素。
公司⼀款商业测控程序,打包需要1天多的时间,⽽且经常失败。其实,产品本⾝没有问题,但定位⽐较宏⼤,选择LabVIEW进⾏开发就不再明智。
某创业公司想要做原型产品,选择NI⽅案⼈员不好招募,⾃⼰培养⼜没有太多的时间。
某创业公司在做消费类电⼦的⾃动化产品,由于公司规模不可能⽤盗版,NI的软件较⾼,远不如⾃⼰开发特定需求的功能"便宜".
我为了回避LabVIEW带来的⼀些瓶颈,学习更好的架构体系,写"⽜的程序,开始尝试资料丰富的C++作为第⼆语⾔,⽤于系统的学习软件理论,学习⾯向对象,学习设计思想。
第三次的探索
半年多过去了,当C++可以解决⼯作中⼤部分问题时,⼜遇到另⼀个问题。
⼯作中还是要写Client程序,C++由于UI操作极其不便,设计UI界⾯仍需⼤量编码,单⼈开发效率并不⾼。
也可能是习惯了LabVIEW的节奏,⽤C++开发UI速度降低太多。
于是,业余时间探索了⼀下Python和C#,发现:
Python作为⼀个胶⽔语⾔,能到各种各样的库⽂件,写⼩的测试脚本⾮常⽅便。在不复杂的程序,如测试序列,⾮常适合使⽤Python。
C#为C++的升级版本,在Windows上开发客户端程序⽐C++效率⾼太多了,除了LabVIEW在⼯业显⽰的控件⽐较有优势外,⼤多炫酷的界⾯在C#中都有很好的库⽀持。
复盘总结
回顾我的学习曲线,过去的时间和精⼒已经全部投⼊且⽆法挽回。如果可以重来,我希望在最开始有⼀些建议,这⾥可以给学习的是⾃动化,测控相关专业同学⼀些⼩的参考。
如果你将来想从事⼯业控制相关的⼯作
毕业留⾼校研究所:优先熟悉LabVIEW,掌握基础C语⾔
理由:⾼校研究对成本不是特别敏感,可以使⽤较贵的NI仪器,配合LabVIEW可以加快研究的步伐,减少软件学习成本。
使⽤C/C++语⾔可同时帮助开发硬件程序,毕竟研究所通常要求⼀个⼈完成⼀整个软硬件体系的搭建。
毕业去测控、⾃动化类私企:优先熟悉C#,掌握基础LaBVIEW
从公司⾓度讲:测控类的私企对成本很敏感,虽然在初创的时候使⽤LabVIEW可以迅速打开市场,快速完成给定⽬标,但长期发展受到硬件成本限制。⾃研软硬件是公司发展到⼀定程度的必然选择。
从个⼈⾓度讲:私企⼈员流动⽐较⼤,LabVIEW就业范围较窄,同⼀⾏业的优秀公司只有⼀两家,未来如果想要去其他⽅向或者⾏业,⽂本编程占据主导地位的概率⼤,所以尽可能的掌握⼀门⽂本编程语⾔。
毕业去测试类国企:优先熟悉C#,其次熟悉python
理由:较⼤的企业通常会有话语权,不⽤选择语⾔。供应商使⽤LabVIEW做硬件驱动开发,你只需要掌握容易的编程语⾔来调⽤即可(甚⾄不再编程)。
如果将来想从事互联⽹相关⾏业,建议精通java,C++,python中的⼀门,并且熟练使⽤Linux系统。
注意:这⾥的建议仅供参考,每个⼈的选择还会受到各种因素的制约,⽐如⽼师的课题要求,公司的团队语⾔,甲⽅的项⽬需求等等。未来发展
从事⼯控⾏业,使⽤C#+python/MATLAB做开发⼀直是我认为⽐较看好的⽅向之⼀。较低的学习成本,简单明确的框架体系,较多的成熟UI 库,后续可以深⼊的软件理论,这些都是⼯程师软件开发的必备之物。并且,中国⼯程⽅⾯的强⼤软件还很缺乏,能够有⾃主创作的软件出来,对于⼯程控制⽅向发展还是⼤有裨益的。
然⽽,当下来看,C#对于⼯业控制的⽀持⼒度还是不够,远不像LabVIEW⼀样成熟,需要更多⼯程师
的去完善和发展。
中国本⼟的企业也逐渐出现⾃⼰的东西,简仪科技在不停学习NI公司,推⼴基于C#的⼀些开发库。虽然功能和解决⽅案都还处于⽐较初级的阶段,但⿇雀虽⼩五脏俱全,作为国内的测控发展,还是很期待他们的发展。
最近刚好有两个思考分享给⼤家:
2018年3⽉23⽇,中美贸易战,美国针对⾼科技软硬件进⾏限制。虽然这次的限制概率不⼤,但⽆疑给我们⼯程技术⼈员⼀个警钟,将来限制进⼝的风险不可避免,只有提前储备⾃研的软硬件,才可避免未来依旧受制于⼈。
⼀直可以看到国内IT软件发展迅速,却不见任何⼯业级别软件有所建树。国内⼯程开发所⽤的软件基本上都来⾃国外,⼯程软件在项⽬中基本都是附赠产品,接项⽬总是靠关系和忽悠,⾃动化设备永远是你抄我,我抄你,处于原始竞争状态。
所以,⼯程⾏业需要搅局者,需要变⾰者,需要引领者。对国内出现⾃主创新的企业,我们当以包容的态度去看着他们成长,静静的等待他们壮⼤,等待有⼀天撑起中国的⼯程发展。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。