C ++和Java之间的语言是什么?

时间:2011-01-18 02:20:55

标签: java c++ programming-languages

我觉得这两种语言不足以快速构建复杂但高性能的本机应用程序。

我想要一种语言,包括:

  • 编译时间类型检查。
  • 内存指针,但没有代码指针。
  • 内部有VM种设计,但不需要在VM上运行(如Java)。
  • 自动内存管理。
  • OOP,但不是纯粹的OOP。
  • 泛型。
  • 反光操作。
  • 开放社区。

还有一件事:.NET总是被排除在外。

在C ++中添加自动内存管理可能很棘手,但添加反射支持并不容易。

如果语言可以做的话会更好:

  • 封闭
  • 尾递归

8 个答案:

答案 0 :(得分:7)

或许

D

我还建议查看Scala或C#(其中 Mono,fwiw),但是他们错过了“本机目标”位。对于大多数应用,它们可能具有所需的“高性能” - 但这取决于具体的应用和功能要求。 (无论如何,我会毫不犹豫地使用Java之上的任何一种语言: - )

答案 1 :(得分:4)

听起来像Scala ......但是:

Scala是一种JVM语言。我不太了解它以解决您的指针问题。

我不知道技术的状态,但我知道一些过去常常将Java编译为C ++的开发人员。所以这不是一个完美的解决方案,但在该领域的进一步研究可能会很有趣。

答案 2 :(得分:2)

C ++ 0x(什么时候出来)

答案 3 :(得分:1)

谷歌正在推动Go,这可能会成为最佳点。

答案 4 :(得分:1)

我建议你再看看Java。它具有所有这些功能,JIT可以生成本机代码,使用指针非常有效。

我建议您尝试使用OpenJDK 7调试版并使用-xx:+ PrintAssembly查看生成的本机代码。

也许您有其他要求,但是根据您所编写的内容,Java会满足所有要求。

BTW:您可能会发现Excelsior JET有趣,因为它是本机编译器的Java。但是,如果你知道如何为它编写调优代码,我发现JVM做得非常好。

答案 5 :(得分:0)

当您编译为P代码时,Visual Basic 5和6符合VM-without-installation标准(如果您编译为本机代码,它们也符合本机要求)。它还处理内部分配对象的内存管理,但如果您需要固定指针,则可能会丢失自动处理,具体取决于您的使用情况。它肯定会按照您的要求处理准OOP,并且有一个非常有活力的社区(如果缺乏强大的软件工程原则,比如C ++社区)。

但是,13年前发布的最适合您需求的语言可能会使您的需求变得有效。

答案 6 :(得分:0)

WhiteSpace是镇上很酷的新语言: - )

1编译时间类型检查 - >静态类型(没有运行时类型,因此必须是静态的)

2内存指针,但没有代码指针。
- >绝对没有代码指针。不需要内存指针。

3内部的VM类型设计,但不需要在VM上运行(如Java) - >白空间翻译是用空白编写的 - >这表明该语言可以在VM方法中轻松实现。

4自动内存管理。
- >所有内存都会自动管理。

5 OOP,但不是纯粹的OOP - >失败了。它的程序性

6个泛型。
- >可以使函数适用于任何宽度整数 - >如此通用。

7反光操作。
- >不需要它们。所有类型都是整数。

8开放社区。
- >是的。他们会接受任何想要帮助的人。

答案 7 :(得分:0)

C ++ Builder及其已发布的关键字扩展程序可以通过Reflection获得您想要的内容。 使用C ++ Builder也不是不可能进行自动内存管理(我已经编写了许多生产软件中使用的世代标记和扫描GC)。您还可以获得本机C ++附带的所有其他内容。