我是一个团队的成员之一,该团队为具有16mb内存及其自己的OS的ARM9设备开发嵌入式应用程序。我们目前正在用C进行开发,但所有人都致力于将语言切换到其他语言。
目前C ++和Haskell是不错的选择,但是我正在考虑使用Coffee-script。问题是,Chrome的v8引擎是否会花费大量精力使其成为可行的替代方案?如果是这样,还有其他合适的方法吗?
忘了提一下,我需要与系统上安装的C库轻松互操作。因为我们今天使用的大多数代码都是C,并且重写时间很长,所以使用C函数应该不会麻烦(必须创建绑定等)。
不幸的是,我们也受到旧编译器(GCC 3.4.3)的束缚。
最佳答案
任何具有自动内存管理功能的语言都将始终具有内存开销,而任何动态键入的语言都将始终增加更多开销。因此,如果您仅限于16 MiB,并且想大量使用它,请选择具有静态类型和显式内存管理的功能,这意味着C ++。
现代C ++(好吧,gcc 3.4.3中没有C ++ 11功能,但是已经有了标准库,应该可以编译boost了)仍然可以为您完成大多数内存管理,同时仍保持较低的开销。而且几乎与C向后兼容使得与现有库的互操作变得微不足道。
如果您不需要花太多钱,那么许多语言都可以。 Mono似乎是非常有前途的,因为它是最小的托管运行时之一,运行速度快,可移植并且具有针对它的多种语言(C#,F#,boo等)。但是我想甚至JavaScript也应该做;它的解释器非常小,如果您在内存中不需要那么多对象,那么即使单独分配所有内容的所有开销,它们也将很适合。