第1章 概述
本章介绍C语言的发展历史和主要特点,以及实际项目工作中软件开发工程师常用到的工具软件。
1.1 C语言的发展历史
1.1.1 C语言之父
C语言是1972年由美国贝尔实验室的计算机科学家Dennis Ritchie(丹尼斯·里奇)设计发明的。因此,Dennis Ritchie被誉为“C语言之父”(他已于2011年10月9日去世,享年70岁)。图1.1所示的人物就是Dennis Ritchie。
图1.1 “C语言之父”Dennis Ritchie
Dennis Ritchie曾在哈佛大学学习物理学和应用数学,1967年进入贝尔实验室工作。作为计算机科学家,在他身上有很多可贵的、值得我们学习的品格,例如:第一,他对所做的事十分有兴趣;第二,跳出舒适区工作,不断挑战自己;第三,有创新思维,不拘泥于条条框框;第四,喜欢分享,不藏匿自己的核心技术。
Dennis Ritchie对计算机科学的贡献主要有以下几个方面:第一,作为“C语言之父”,他最大的贡献当然是发明了C语言;第二,1973年他与Ken Thompson合作,把UNIX 90%以上的内容用C语言改写,因此也被誉为“UNIX之父”;第三,1978年他与Brian W. Kernighan一起出版了名著The C Programming Language(《C程序设计语言》),此书已被翻译成多种语言,成为C语言方面最权威的教材之一。
基于Dennis Ritchie的杰出成就,1983年他与Ken Thompson一起获得了图灵奖。1999年,Dennis Ritchie和Ken Thompson因为在发展C语言和UNIX操作系统方面所做出的贡献一起荣获了美国国家技术奖章。
1.1.2 C语言的演进
作为在国际上广泛使用的计算机编程语言,C语言的发展简史如图1.2所示。
C语言到底有多少人在用?C语言的受欢迎程度如何?如图1.3所示为CodeForge网站公布的2014年11月“我最喜爱的编程语言”排行榜。
这个排行榜来自2014年11月对56000多名软件工程师的问卷调查。该排行榜非常清楚地反映了在世界不同国家和地区各种编程语言的流行程度,可供软件工程师及IT相关行业人士参考。
从图1.3可以看出,在全球范围内,C语言的受欢迎程度位居排行榜的榜首。因此,C语言使用得非常广泛。
图1.2 C语言的发展简史
图1.3 2014年11月“我最喜爱的编程语言”排行榜
1.2 C语言的主要特点
C语言是一种功能强大的、被广泛应用的面向过程的编程语言,可用于编写系统软件和应用软件。
C语言的主要特点如图1.4所示。
如图1.4所示,C语言的诸多特点使其越来越受到广大软件开发人员的青睐,也使其成为了使用人数最多的计算机编程语言之一。学习好C语言,对于深入学习计算机科学的其他课程都是很有好处的。
图1.4 C语言的主要特点
1.3 常用工具软件
有一次,我打开电视机准备随便看看,无意中被一部战争片吸引住了。成千上万的战士搭起云梯,想攻破一座城池。但是城楼上面的敌人负隅顽抗,拼了命地阻击进攻。双方的伤亡都很惨重,但城就是攻不下来。眼看剩下的人不多了,突然不知从什么地方开出一辆坦克,两炮就把城门轰开了。战士们趁势攻入城中,将敌人全部歼灭了。
这类电视剧比较常见,相信大家看了不止一次。但是,我看完之后,那个场景还一直留在我的脑海里。成千上万的人不如一辆坦克来得直接,说明了什么问题呢?我立马想到了一句俗语:工欲善其事,必先利其器。
的确,工具对于软件开发工程师来说,真的是很重要。好的工具能够提高开发的效率,进而缩短产品的研发周期。那么,在实际的软件研发项目中,软件开发工程师常用的工具软件有哪些呢?
1.3.1 Microsoft Visual Studio/Microsoft Visual C++ 6.0
Microsoft Visual Studio(VS)是美国微软公司的开发工具包系列产品。它是一个较为完整的开发工具集,包括了整个软件生命周期中所需要的大部分工具,如集成开发环境(IDE)等。
Microsoft Visual C++ 6.0(VC或者VC6.0),是微软推出的一款C++编译器,将“高级语言”(如C、C++等)翻译为“机器语言”的程序。它是一个功能强大的可视化软件开发工具,已成为大多数专业程序员进行软件开发的首选工具之一。现在的最新版C++编译器集成在Microsoft Visual Studio 2015软件里面。
用Microsoft Visual C++ 6.0软件打开的代码如图1.5所示。
图1.5 用Microsoft Visual C++ 6.0软件打开的代码
鉴于使用Microsoft Visual Studio/Microsoft Visual C++ 6.0进行软件开发的人员很多,有热心人士为其开发了一款叫做Visual Assist X的插件。Visual Assist X是一款非常好的Microsoft Visual Studio/Microsoft Visual C++ 6.0插件,支持C、C++、Java等语言,能够自动识别各种关键字、系统函数、成员变量,同时能够自动给出输入提示、标示错误、更正大小写错误等,有助于提高开发效率。
1.3.2 Source Insight
Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C、C++、Java等程序的分析。它能够分析你的源代码,并自动为你显示有用的上下文信息。
Source Insight不仅是一个强大的程序编辑器,还提供了最快速的对源代码的导航信息。该工具被视为如今最好用的语言编辑器之一。
用Source Insight软件打开的代码如图1.6所示。
图1.6 用Source Insight软件打开的代码
1.3.3 Notepad++
Notepad++是一款很有特色的Windows环境下免费开源的代码编辑器。除了可以用来制作一般的纯文字说明文件之外,也十分适合用作代码程序的编辑器。
Notepad++极具特色的一个功能就是语法的高亮度显示,方便了对关键词语的阅读。它支持的语言包括C、C++、Java等。
用Notepad++软件打开的代码如图1.7所示。
图1.7 用Notepad++软件打开的代码
1.3.4 Araxis Merge/Beyond Compare
1.Araxis Merge
当程序代码比较多(成千上万行)的时候,我们想要了解最新代码与之前某个时期的代码的不同之处,并不是一件容易的事情。这样,代码比较工具就应运而生了。Araxis Merge和Beyond Compare是两款用得较多的代码比较工具。
Araxis Merge是一个可视化的文件比较、合并和同步的软件,能够方便地被软件工程师用于快速精确地比较不同版本的源文件。此外,它还能被用于进行版本和质量控制。
用Araxis Merge软件进行代码比较如图1.8所示。
2.Beyond Compare
Beyond Compare是一套由Scooter Software推出的软件,主要用于文件之间的比较。对于软件开发工程师来说,它可以用来发现不同版本代码或文档的不同,使用起来非常方便。
图1.8 用Araxis Merge软件进行代码比较
用Beyond Compare软件进行代码比较如图1.9所示。
图1.9 用Beyond Compare软件进行代码比较
1.3.5 Evernote(印象笔记)
Evernote(印象笔记)是2012年5月10日由Evernote公司推出的一款产品,具有储存重要资料、剪辑网页、图片搜索等功能。
对于软件开发工程师来说,Evernote可用于记录阅读过的重要技术书籍的笔记、在工作过程中的一些想法,以及软件实践或论文等。
Evernote软件的界面如图1.10所示。
图1.10 Evernote软件的界面
1.3.6 FTP工具(如FileZilla等)
在工作过程中,我们会不时地需要用FTP工具来上传或下载一些东西。FileZilla是软件开发工程师用得较多的FTP工具之一。
FileZilla是一款免费的、开源的FTP软件,分为客户端版本和服务器版本两种。它具备所有的FTP软件功能,使用起来非常方便、快捷,曾在2002年11月获选为当月最佳推荐专案。
FileZilla软件的操作界面如图1.11所示(在使用的时候,需要输入正确的主机IP地址、用户名和密码,端口号一般使用默认的21)。
图1.11 FileZilla软件的操作界面
1.3.7 UltraEdit
在实际的软件开发过程中,UltraEdit也是一款经常会使用到的工具软件。它是一款功能十分强大的文本编辑器,可以用于编辑文本、十六进制、ASCII码等。当然,用它来编写C/C++代码也是十分方便的。
用UltraEdit软件打开代码之后的界面如图1.12所示。
好的工具对于软件开发工程师来说,就像优良的战斗武器对于战士一样重要。善于利用优秀的工具,可节省开发时间、提高我们办事的效率,进而提高软件产品的质量。因此,掌握一些常用软件的使用方法是非常重要的。
图1.12 用UltraEdit软件打开代码
1.4 小结
本章对C语言的发展历史、C语言的主要特点,以及软件开发工程师常用到的工具软件进行了详细的介绍。本章对后续章节起到了一个抛砖引玉的作用。