这个问题很大,现实世界包含很多软件组件,从操作系统内核到应用程序,从服务器端到嵌入式,软件分层多种,编程语言也包罗万象。如下列出一些常见编程语言应用范围。
- 操作系统内核以C居多
- C语言是内核首选,Windows/Mac/Linux内核均是C语言,IOS和Android内核分别是macOS内核和Linux,同样是C语言。另外,Rust正在逐渐被计划进入内核代码。
- C++属于编译型语言,一样可用于写OS,事实上,用C++会加大复杂度。由于C++面向对象设计的优秀性,OS一般会用一套C语言机制”模拟”实现面向对象编程的接口。
- Symbian OS用C++编写,很可惜,在智能手机时代,被Android和iOS打败。
- 驱动程序以C居多,也有C++
- 驱动程序一般跟随内核编程语言,比较例外的是macOS的驱动,默认用C++.
- 和内核一样,Rust在逐步进入驱动代码。
- Shell解释器以C为主
- 最早的Shell解释器建立在内核之上,Unix为典型代表,用C语言最自然不过。
- 游戏引擎采用C/C++居多
- 为了实现高效,而且大部分OpenGL/DirectX接口均为C/C++相关,游戏底层引擎也不例外。
- 游戏引擎还被细分为底层引擎、物理引擎和接口引擎, 现代游戏设计越上层使用更高级语言,比如C#/JS/Java/Python等等,底层可能会用C++引擎。
- PC/移动端APP以Java/C#/ObjC/Swift/HTML(5)为主
- Java和Kotlin一直是Android主流语言,ObjC/Swift在iOS系统不二选择,PC端使用的语言更多…不用提早期VB、C++(MFC、QT框架)、Pascal(Delphi) 当时流行成什么样。
- 脚本类语言解释器
- 大部分脚本类语言解释器早期会以C语言或C++编写,在性能满足要求后,后期逐渐用更高级语言替代。
- Perl/PHP/Python解释器均用C语言。
- 浏览器和服务器以C++/Java/Javascript…为主
- 大部分浏览器引擎采用C++.
- 服务器以Java语言为主,JS脚本为辅。