软件就是仪器——这是美国NI公司的箴言,它看起来似乎是无可非议的。
而且如今,硬件设计和软件设计也不再是分的那么清楚了。但是很多情况下,一名软件工程师,不一定能做得来硬件设计,但一名硬件设计师很容易就能上手去做软件。个人觉得这和两者所使用的编程语言有莫大的关联,硬件设计师所掌握并且熟悉的设计语言都是比较底层的低级编程语言,比如C语言;而大部分软件设计师所使用的都是高级语言,如C++,JAVA,C#甚至还有近几年才出现的Ruby。下面有一个2010年统计的编程语言使用排行:
由于VHDL和Verilog两大硬件设计语言被叫做“硬件描述语言”似乎不太被人们认定为编程语言,所以榜上无名,但个人觉得,它们也应作为编程语言来被人们所认可。
从上图中可以看出(不仅上图,连续N年的统计都能显示),尽管C语言是低级语言(虽然有人说它是高级语言,但相比其它来说,人家好歹要低级一些),但是无可非议它是最重要的编程语言之一。C++也好,JAVA也好,多多少少都是从C语言演变而来。
我们转到硬件编程语言,VHDL是由美国国防部开发出来的,虽然他们自己不说,但也同样借鉴了不少C语言的思想。Verilog就更不用说了,就是VHDL向C语言靠拢的衍生品,原本是专门用来测试仿真用的设计语言,因为其风格和C语言相接近而被大多数设计者所青睐。
最近,有很多朋友和同学都问到一些很基本的编程语言语法问题,这让我很不解。在大学里,一般的工科生要学习C语言、C++、多的还有JAVA、VHDL、Verilog、M语言等等,而以if语句为例,就各有不同……这使得大部分刚刚做设计的人很懊恼,觉得在编程语言上就困难重重,更别说程序设计系统构建了。
我们可以看到,编程语言之前的发展是由单一像多元化发展,而我的猜想是:随着硬件设计软件化,软件设计集成化,编程语言最后又会走向一个统一。最终说不定不管是硬件设计师还是软件设计师,大家用的都是同一个编程语言,大家也都不再分所谓的硬件和软件了。
另外值得一提的是,MATLAB的迅速发展。MATLAB最先本意是用来作为矩阵数据运算的一个“计算器”,渐渐得成了设计师们的最爱,因为它强大的仿真功能。所以,我又萌生另一个想法,有可能MATLAB时代会成为编程语言大一统的一个过渡时期:我们知道,MATLAB代码可生成C语言代码,而在未来会不会出现大家设计时只需设计m文件,而后让其自动生成我们所需的各种编程语言的代码呢?
以上只是小弟个人异想天开的猜想。也算为历史留下点证据,也希望不管各类语言的发展如何,能尽早出现易学、设计方便、功能强大的编程语言。
用户377235 2012-6-2 20:25