常见观点:
- 操作系统和驱动程序都是C写的,学好C就够了
- C++在应用层用的多,学嵌入式没有必要
- linus大神认为C++一无是处,还学它干嘛
- 我以后就做驱动开发,没有精力也没有必要学C++
Unix诞生之初是汇编语言写的,但是汇编语言的开发效率太低。 所以两个大神对B语言进行改进,C语言就诞生了!
C语言的诞生只是为了开发操作系统,所以C语言里有很多灰色地带。
软件方法论的发展
面向过程的程序设计
- 特点
- 分析解决问题所需要的步骤
- 利用函数实现各个步骤
- 依次调用函数解决问题
- 问题
- 软件可重用性差
- 软件可维护性差
面向对象的程序设计
-
将现实中的事物直接映射到程序中去,可直接满足用户需求
-
特点:
- 直接分析用户需求中涉及的各个实体
- 在代码中描述显示师姐中的实体
- 在代码中关联各个实体协同工作解决问题
- 优势:
- 构建的软件能够适应用户需求的不断变化
- 直接利用面向过程方法的优势而避开其劣势
是否需要新的语言
高效的面对对象语言,并且能够兼容已经存在的代码。
C语言 + 面向对象方法论,Obiective-C,C++
C语言的加强
- C语言和C++并不是对立竞争的关系
- C++是C语言的加强,是一种更好的C语言
- C++是以C语言为基础的,并且完全兼容C语言的特性
小结
- 所有的软件系统都是为了满足用户需求开发的
- 对于一个团队而言,在短期内内开发出用户满意的软件系统是其核心竞争力的体现
- 对于一个开发者而言,能够胜任系统中的任意一个模块的开发是其核心价值的体现
- 对于一个架构师的而言,掌握各种语言的优势并合理运用到系统中,由此化繁为简,是其核心价值的体现
Alipay
Wechat