一些历史
- UNIX操作系统诞生之初是直接用汇编语言编写的
- 随着UNIX系统的发展,汇编语言的开发效率成为瓶颈,所以需要一个新的语言替代汇编语言
- 1971年通过对B语言改良,使其能直接产生机器代码,C语言诞生
- UNIX使用C语言重写,同时C语言在实践中不断升级完善。
C语言的特点
- 没有深思熟虑的设计过程
- 残留过多低级语言的特性
- C语言在当时开发时可高效得开发
- C语言执行效率高
软件开发的发展
- 当时的计算机主要用于计算,用户需求简单而固定
- 使用的是面向过程的程序设计:数据结构 + 算法
- 随着软件的发展,面向对象的程序设计方法暴露出缺陷。一些计算机科学家开始尝试将现实世界中的对象映射到计算机程序中。出现了面向对象的程序设计方法。
C语言的加强
- 开发一种新的语言支持面向对象的方法
- 并且要兼容已经存在的C语言代码
- C语言和C++并不是竞争的关系
- C++是C语言的加强,是一种更好的C语言
- C++以C语言为基础,并且完全兼容C语言的特性
各语言关系
- C++保留的C中的一些低级语言的特性
- Java对C++进行剪裁,去掉一些低级特性等,由Sun发布。Java在行业中一度处于霸主地位。
- 微软为了与Java竞争,推出C#
- D语言源自C/C++,借鉴了众多编程语言的特色和现代编译器技术,运行效率比C#、Java更高
- 开发效率更高的一些脚本语言也相继发布,不需要编译
现代软件产品架构图
现代软件产品特性
- 系统一般由多种语言开发成的
- 系统架构的目标是拥抱用户需求的变化
- 系统有用较好的可移植性
- 系统可以方便得部署和更新
学习C++的意义
- C++是一种更强大的C,通过学习C++能够掌握更多的软件设计方法
- C++是Java/C#/D等现代开发语言的基础,学习C++后能够快速掌握这些语言
- C++是各大知名软件企业挑选人才的标准之一
小结
- 所有的软件系统都是为了满足用户需求而开发的。
- 对于一个开发团队而言,在短期内开发出用户满意的软件系统是其核心竞争力的体现。
- 对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。
- 对于一个架构师而言,掌握各种语言的优势并合理运用到系统中,由此简化系统的开发,是其核心价值的体现。