微机史上最强的编程语言是C/C++。C最大的特色就是指针,指哪儿打哪儿,如果把指针做到应用自如,那就是无往而不胜了, C/C++对应兵器谱上第3位小李飞刀,刀无虚发,毕竟现在的Web时代,后来居上的JAVA和.Net成为主流的开发语言,所以只能把它屈居第三位了。
但就其语言本身来看,JAVA和.Net更多的象是在C++之上减减增增。我感觉C/C++能够称的上编程语言史上最有影响力的语言,而它的成功完全是在其自身的优秀特证所决定的,后面的JAVA和C#的成功是完全在C/C++的基础上,它们站在了C/C++这个巨人的肩膀上。
C是Combined的缩写,产生于1972年,C在DOS时代以其语句简洁,代码执行速度快,既可编写底层代码,又可轻松实现GUI的绘制,脱颖而出,成为最适合于系统底层程序和游戏开发的语言,被誉为中级语言,是表示它兼有高级语言和低级语言的特证。C的出现让人们看到了一种新的语言风格,感觉C语法最大的特点是简洁,灵活,比如分号代表语句的结束,可以让程序的一条语句不拘于写在一行中,这比BASIC和Fortran好,用大括号来代替Begin和End要比Pascal在书写上省下很多。同样一段程序,用C可以做到代码比别的语言短,而运行速度通常要比别的语言快。C语言中更可以调用一些DOS系统中断功能,Bios中断功能,直接访问硬件,读写端口,Dos时代的C是无所不能的,比如把Dos系统中断改了,让Dos在处理例行事务时,作些程序指定的操作,那是挺容易的,所以Dos下面病毒很多,不过那个时代写底层代码时的限制少,Windows下很多直接对硬件的访问都限制了,Web时代更是以虚拟机和跨平台为荣了。C/C++倾向于系统开发,还有游戏设计,只要这两个领域还在,它就是永远的日不落帝国。
DOS时代最流行的开发工具是Turbo C,Borland公司的优秀产品,Turbo C是DOS时代C开发工具的霸主,我个人上是非常喜欢Turbo C,至今电脑上还装着Turbo C2.0,也就2M左右,有时怀念起当年在大学机房里用Turbo C运行代码的时光,还可以打开看下那熟悉的蓝色界面,相信很多朋友都用过它。微软推出的是Quick C(Windows 3.x上还有个Quick C For windows,其实也真挺好用的),但总还是比Turbo C用起来感觉差一些。从Simula,Smalltalk等面向对象的语言的成功中吸取了经验,加入了面向对象的元素后,C++面世了。
C++工具的早期的主流是Borland C/C++和Microsoft C/C++,在开发平台从DOS平台转换到Window平台的背景下,各大C/C++开发工具厂商纷纷推出Windows应用的开发工具,出现了两大类库OWL和MFC,把面向对象技术在Windows应用开发中充分利用,正是面向对象技术简化了Windows应用的开发,在Windows应用开发过程中展现了面向对象技术的威力后,面向对象技术也得以更加的流行和推广,编程领域进入OO和Windows的时代。这时的开发工具更是相当的丰富的,Borland C/C++3.0版可以开发DOS和windows两个平台的程序,因为使用Win API写Windows程序很麻烦,Borland推出了OWL(object windows library),用类库封装了windows API,与其相似的是微软推出的MFC(Microsoft Function class)。
编程平台开始向Windows平台转移的时候,想成为Windows平台上C/C++开发工具的霸主的却不只Borland和微软两家,李维的《Borland 传奇》中描述了一场壮观的开发工具的“圣战”(也可以称为四国大战),它们是Borland C/C++, Microsoft Visual C/C++, Watcom C/C++(是否记得DOS 4GW 保护模式吗,其实DOS时代很多游戏都是Watcom C/C++开发的,而它的运行必须要在DOS 4GW 保护模式下,这样解决了DOS系统中直接访问的内存不同超过1M的问题,当年几乎所有的DOS版的游戏都是它开发的,比如古墓丽影,仙剑奇侠传等), Symantec C/C++(著名的杀毒软件诺顿的公司Symantec啊,其实它也是一家资深编程工具开发公司呢,后来的JAVA开发工具中Symantec也不甘寂寞的)四大工具闪亮登场,而最终胜出的是Borland C++ 3.1,在Window早期,Borland C++ 3.x是最好的windows应用的开发工具了,Borland C++ 开发出的Windows应用是很有特色的,因为按钮和图标都有点和microsoft的风格不太一样的,当年用Borland C++开发的应用,现在一看仍能分辨出来,不过现在已经难见到这种应用程序了。Visual C++的统治开始了,当微软在这个领域异军突起时,Borland赶紧推出Borland C++4.0时,已经无法改变形势了,后来的Borland C++5.0仍是优秀的作品(记不得4.0,4.5还是5.0的Borland C++了,安装它时,屏幕上却是开赛车时的第一视角的情景,用户看到车内的行程指示计指示从0%升到100%后安装就结束了,挺有创意的,不过那象是一条下坡路了)。
Visual C++是后来的王者,现在能见到的Visual C++都是5.0而6.0的,喜欢Visual C++的Wizard,点几下鼠标一个Windows Application就产生了,Microsoft提供各种SDK,为用户服务,其中最喜欢的SDK当然是Direct X,梦想用C++开发个SuperMario出来,至少也要俄罗斯方块什么的,不过入IT行业工作后,整天项目做的累够呛,没有时间去实现梦想了,入行IT后没有机会参加C/C++项目,很大的遗憾了。当年在机械行业,最美好的回忆是02年为公司的阀门为一个控制系统,两米多高的阀门,研究生毕业的胡老师组织好硬件线路,我用一台奔II来控制阀门的开启和运作,程序上由我一人开发,主界面上点击按钮来让阀门运动(也可在自动模式自动运行),屏幕中间的最大区域是阀门当前的状态图。当系统接好,我第一个上来操作,一点鼠标看到那么巨大的机械被我的程序控制运作,真是很有成就感呢。我是用Win API+Direct X技术做的,DOS下全屏幕的800x600的分辨率,背景图、按钮、状态图都是我用Corel PhotoPaint , AutoCAD等工具制作的,刚启动时阀门的照片以一个向下纵伸展开的动画方式出现的创意还真有点意思,当时伊拉克客户看阀门时,把我的程序(不与硬件连接的演示版)考了一份回去了,我感觉是我的程序出国了。
C/C++的魅力在于它的长盛不衰,除了Visual C++,Borland的C++ Builder是和VB,Delphi一样的好用的属于C++的RAD工具,Microsoft的.Net中Visual C++.Net是其不可缺少的一部分,Linux、Unix的Shell中C Shell是重要的一个,Mainframe应用开发中C应用广泛。相信C/C++做为IT编程领域永远的传奇会继续展现它的魅力的。
下篇介绍当今Web应用开发的主流----Java。虽然JAVA最早不是为Web开发而产生的,但它在语言方面的特色,与Web时代的驱势不谋而合了,于是成就了一个属于JAVA的时代。Java对应排行第二的上官金虹的子母龙凤环,虽说Java就一种语言,可如今的Java 1.5(tiger版),1.6(mustang版),语言上已经和原来的Java 1.2~1.4不一样了,它添加了对泛型,枚举,元数据等的支持,流行很久的1.2版为基础的Java2(母环)和吸取了C#.Net的一些优点后产生的Java5(子环)构成了Java的双环。