我知道嵌入式C和其他语言一起用于微控制器。但是,如果控制来自PC,那么我有两个可能的候选者(java和c++)。
当涉及到线程或图形用户界面时,C++是简单和容易的,也是开发人员友好的,当然C++的性能要好得多(我知道计算机变得更快,性能依赖于好的算法),但是编译makefile,共享库和交叉编译浪费了大量的时间来关心技术细节,而我本应该致力于其他重要的问题。
但我仍然遇到过像Const引用这样的东西,java不支持它,迫使你使用clone()或复制,当涉及到数组时,它是一个巨大的混乱。
注意:我将使用反向运动学,可能还会使用神经网络进行模式识别。这需要大量的计算。但正如我所说的,我也关心项目的整个生命周期(开发速度、性能、用户友好性和快速部署)
我在不同的语言之间摇摆,我计划长期的学习过程,所以我不想浪费在错误的语言上,或者说(不问),所以请帮助我,我希望这个问题不会被认为是主观的,而是一个参考。
干杯
发布于 2010-11-19 23:43:00
就我个人而言,我倾向于C++。Java有一个垃圾收集器,它可以让你的应用程序随机进入睡眠状态。在C++中,我必须收集自己的垃圾,这促使我少生成垃圾。此外,C++还支持宏,我知道这已经被Java-nistas声明为不好的东西,但我将其用作一种缩短代码并使其更像领域特定语言的方法。让代码更像DSL是我缩短开发工作量并最大限度地减少引入bug的主要方式。
我不会假设Java天生就比C++或C慢。IME慢(和大)不是来自于它们旋转周期的好坏,而是它们鼓励您遵循的设计实践。他们给你提供的好东西,比如集合类,通常都是构建良好的,但这并不能阻止你过度使用它们,因为它们太方便了。
IME,良好性能的秘诀是拥有尽可能少的数据结构(即最少的垃圾),并使其尽可能规范化。这样,您就可以最大限度地减少通过消息波保持一致性的需要。就必须对数据进行非规范化的程度而言,能够容忍您定期修补的临时不一致要比试图通过通知保持数据始终一致要好(这是OO语言鼓励您这样做的)。除非仔细监控,否则很容易引入性能错误。
发布于 2010-11-19 21:48:22
为什么要淘汰C语言?
为什么你认为java的性能比c++差?有些东西和c++一样好,而且很容易在不同的平台上使用java程序,没有太多的麻烦。
只需选择你觉得舒服并且最有经验的语言,并使用它。
发布于 2010-11-19 21:48:30
一开始我不会太担心性能--用任何你觉得舒服的语言编写代码,然后根据需要进行重构。
如果需要,您总是可以使用类似JNI的东西来调用c/c++,尽管Java和c/c++之间的性能差距远远没有达到它以前的水平……
https://stackoverflow.com/questions/4225484
复制相似问题