不应该脱离开发环境空谈程序设计语言

当谈到程序设计语言,一些网民会发一些“随便” “掌握了本质”“IDE不重要,语言和程序设计方法重要”等等假大空的言论,这种言乱流传很广,每当有人想学点编程,这些人便会出来大放厥词。

我觉得有必要对这个问题做一个澄清,比如C语言开发环境,Windows上是Visual Studio C++,集成开发环境,所谓的集成,意思是程序编辑,编译、运行、调试都集成在一个图形界面下,Visual Studio C++是一个不可分割的整体。

如果,你在Unix/Linux系统上做开发,可能多数人选择VIM/Emacs作为程序文本编辑使用,使用gcc/g++或者clang作为C编译器,也许会用gdb命令行调试程序。如果你使用LInux作为桌面系统,也是有IDE让你使用的。但是,Linux下的开发似乎不太鼓励使用IDE,而是让你有所选择,合适的文本编辑程序,合适的编译器。

中国学生学C语言,通常都是Turbo C -- 其实,这是一个Dos下的开发环境,16位的,Windows 32上也可运行。Turbo C下无法使用C++,不能使用WIndows API。

如果说Turbo C和VC++使用的是两种不同程序设计语言-- C和C++,那么VC+++和QT、Dev C++则都是使用C++,而这些有什么区别呢?除了图形界面能看得见的地方不同外,最大的可能是支持不同的编译器和程序库。

这三者的编译器都支持标准C++,都能使用WIndows API。不同之处,VC++当然大多是使用微软自己开发的程序库了,QT则用了跨平台的QT库,方便你写出跨平台的程序,Dev C++则是一个开源的IDE,除了Windows版本,也有其他系统的版本。

总之,当你编写程序要完成具体的任务时,你去找相关的程序库,会发现不同的IDE默认会提供不同的程序库。有些IDE支持你从网站下载其他的一些扩展库。

因为这种差异,导致即使是相同的C/C++,完成编程任务的差异非常巨大的。不要轻视IDE自带库这种行为,IDE应当选择哪些最好的库,程序性能最好,文档最好,最方便跨平台... 但是这些指标很多时候是矛盾的,当你要求跨平台时,要求性能最好,似乎有点难。

商业IDE通常是文档最好的,中文文各种版本,比如MSDN。而开源IDE似乎差一些,全靠爱好者自愿编写翻译。

当你使用Visual Studio C++编写图形程序,你通常使用微软提供的图形库。难道还有其他选择么?几乎没有。基本上,不会有人自找麻烦,想跨平台,使用QT,然后又跑去使用VSC,不是吗?Visual C下可以使用gtk图形库,但不是默认安装的,需要自己下载库,做很多工作。

IDE及其重要,因为语言特性其实是很少的,通常语言关键字不超过100个,而库则有千万种。仅仅知道语言关键字、语言特性,其实你什么事情都做不了。

当你编写图形程序时,要使用图形库,网络库、3d库、可视化库...

IDE除了针对某些特定程序设计语言、更重要的是库,可能还包括虚拟机以及其他工具。

即使是语言本身,不同的编译器也支持不同的特性。难道,你不该学习各种特定编译器的特性吗?我想任何一个有追求的程序设计者都希望了解不同的编译器的特性,写出该系统上最佳的程序。

语言、库、各种工具以及IDE。实际上,学校里学习程序设计语言就好比我们学语文,写作文,但是你学了语文,不表示你能写各种大部头,三国演义,水浒传。而真正的软件,特别是商业软件,即使是小规模的软件,字数都要比文学名著多。

语言是基础,是任何人都能掌握的。而构建于语言之上的各种库才是更加重要的。特别是对于开发者。

库的设计千变万化,其差别之大,甚至比中文和英文的差异还要大。

程序界的老油条无知、虚伪、恶心,他们会提类似“图灵完备”这种垃圾概念,声称这种语言能做的其他语言也能做,但是他们说不出到底满足什么样的特性才算“完美”“完备了”。

这些都是不懂编程的半桶水瞎吹,他们可能是以为,套上图灵的大名,就能忽悠人们了。其不知道,真正追求知识和真理的人一眼看吹这种不入流的伎俩。

你可能感兴趣的:(c++)