你能否帮我找到相关研究,了解嵌入式和(Linux)系统编程是否可使用其他编程语言?我很可能在推销一个虚假的假设,因此非常感激有研究结果来证明或否定我的想法。请提供良好数据或链接,以尽量减少“那只是他/她的观点”的评论。
所以,这是我的特殊要求:
- 内存不是严重的限制。 - 可移植性不是严重的问题。 - 这不是实时系统。
根据我的经验,在嵌入式和系统编程中使用C语言并不一定是性能问题,而往往是可移植性问题。C语言往往是几乎所有平台上最具可移植性和良好支持的语言,特别是在嵌入式系统平台上。
如果您希望在嵌入式系统中使用其他语言,通常需要确定可用选项,然后确定性能、内存消耗、库支持等是否“足够好”适合您的情况。
使用 C 语言进行嵌入式系统开发有很多好处,其中 "性能" 只是其中一个较小的原因。嵌入式系统与硬件非常接近,您需要手动管理内存地址以与硬件通信。大多数 API 和 SDK 都适用于 C 语言。
只有少数平台可以运行 Java 或 Mono 的虚拟机,这部分是由于性能影响,也由于实现成本较高的原因。
对于C语言:
C语言将在未来许多年内继续存在。在嵌入式开发中,它是一种垄断性语言,扼杀了任何改变的尝试。像Java或Lua这样需要虚拟机的语言永远不会在嵌入式环境中流行。如果编译语言提供比C语言更具吸引力的新功能,则可能有机会成为主流。
这篇文章(作者Michael Barr)谈论了在嵌入式系统中使用C、C++、汇编和其他语言,并包含了一个显示每种语言相对使用情况的图表。
还有一篇文章,恰如其名,拒绝使用C++的不充分理由。