在朋友圈中流传着这样一个程序员的鄙视链——写汇编的鄙视写C语言的,C语言的鄙视C++的,C++的鄙视Java和C#的,Java和C#程序员则互相鄙视,而C#程序员又鄙视会把C#念成[C井]的,会把C#念成[C井]的继续鄙视认为HTML是一种程序语言的。
其实,作为一名从业多年的系统集成工程师,并没有严格的程序开发语言要求。从参加工作以来,先后用过汇编、VB、TC、VC(C++)、LV、CVI、python、Lua、HTML5等各种程序语言,虽然谈不上精通,但都能解决工作实际问题。个人认为,站在程序员的角度来看,精通一门程序开发语言、将这个语言的编程能力发挥到极致,应该是很有必要的。这自然而然就带来了对其它语言的排斥甚至鄙视问题,因为你在某个方面做深做精了,能够与你分享交流的同级别高手就越来越少,随之而来的高处不胜寒潜移默化形成了程序员特有的优势心理。
对于工程师而言,则很少这样的鄙视链,甚至可以说对程序开发语言的了解是多多益善。为什么这样说呢?首先,工程师要解决的大多是系统性问题,软件对于系统而言只是其中一个组成部分,只要能够实现系统功能,采用什么样的软件开发往往得因条件而定。嵌入式系统大多采用汇编或者C语言开发,因为二者更接近机器语言,符合嵌入式开发所追求的高效、快速和小巧的要求;而自动化系统大多采用C++或图形化语言编程,因为这样的系统更注重程序的模块化、功能全面以及系统二次开发能力,通常我们都是采用以编译为主、支持OOP编程的VC++还有LV等程序开发语言;另外对于B/S或C/S架构的网络化系统,很多时候采用python或HTML5编程就够了,因为这样的代码简单明了、跨平台兼容性好,开源参考程序多。
说了这么多,其实归根到底就一句话——工程师眼中的程序开发语言,够用就好!