正如Java之于Scala,C++之于...?

2022-09-01 21:49:00

虽然C++0x对C++(类型推断,匿名函数等)有很大的改进,但我不得不说Scala似乎更好。问题是Scala只在JVM上运行,尽管它似乎也可以在C#上运行。

理想情况下,我想要一种像Scala一样好的语言,但是“在”C++上运行 - 使用标准库,轻松链接到C / C++对象文件,整个交易。我做了很多由成熟的C / C++库(快速可靠)构建而成的数值编程,这不是我可以放弃的。

有没有人知道这种语言?

更新:

我正在寻找的功能是:

  • 与C/C++库的无缝集成,就像Scala可以访问Java库一样,无需生成/维护绑定

  • 一个强大的类型系统,具有精心设计的类型推理系统,使我不必编写冗长和冗余的类型注释

  • 内置于语言中的功能和 OO 功能,支持自己的库,而不仅仅是依赖于标准的 C/C++ 库。

似乎现在正在做的很多clang / LLVM工作可能会促进这些方面的工作,但是如果发现这样的事情已经在进行中,那就太好了。


答案 1

我想知道为什么还没有人提到D编程语言。它完全符合您的要求。


答案 2

你可能想想Haskell。它与任何语言一样漂亮(当然,以自己的方式),但它热衷于坚持函数式编程,因此学习的障碍是巨大的。尽管如此,它仍可用于调用C / C++,并且它本身具有令人惊讶的高性能。

您还应该决定是否需要语言本身能够进行相当高性能的计算。如果没有,那么创建Python绑定到C / C++非常容易,Python有很多不错的功能。或者你可以使用像Matlab这样的东西,它是为数字计算而设计的,我相信你很清楚,并且可以通过mex文件很好地与C代码集成。如果你确实需要一种目前可以编写高性能代码的语言,你甚至可以考虑承担为Scala创建C++绑定的非平凡任务(如果你使用JNI或JNA for Java,然后从Scala调用Java,然后只将其用于最重要的数字工作,而Scala处理时间不太重要(但仍然有点重要)的部分,这并不那么糟糕。


推荐