由于java是斯卡拉的,C++是……
<>虽然C++ +0x对C++(类型推断、匿名函数等)有很大的改进,但我不得不说Scala看起来更好。问题是Scala只在JVM上运行,尽管它似乎也可以在C#上运行 理想的是,我希望一种像斯卡拉一样好的语言,但是运行“在C++之上”——使用标准库,很容易链接到C/C++对象文件,整个交易。我做了很多用成熟的C/C++库构建的数值编程(快速可靠),这是我无法摆脱的有人知道这种语言吗
更新:
我正在寻找的功能包括:
与C/C++库无缝集成,就像Scala可以访问Java库一样,无需生成/维护绑定
一个强大的类型系统,具有设计良好的类型推断系统,使我不必编写冗长和冗余的类型注释
内置在语言中的函数和OO特性,支持自己的库,而不仅仅依赖于标准C/C++库
看起来现在正在做的很多clang/LLVM工作可能有助于这些方面的工作,但很高兴发现类似的工作已经在进行中
# 1 楼答案
Scala是一种面向对象的函数式编程语言。如果您正在寻找一种现代的面向对象和函数式编程语言,它也可以通过外部函数接口调用C代码,那么您可能会对OCaml感兴趣
# 2 楼答案
# 3 楼答案
你可能想想想哈斯克尔。它和其他语言一样优秀(当然是以它自己的方式),但它热衷于函数式编程,因此学习的障碍是巨大的。尽管如此,它仍然可以用来调用C/C++,而且它本身的性能惊人地高
您还应该决定是否需要该语言本身能够进行相当高性能的计算。如果没有,那么创建到C/C++的Python绑定就相当容易了,Python有很多不错的特性。或者你可以使用类似Matlab的东西,它是为数值计算而设计的,我相信你很清楚,它可以通过mex文件很好地与C代码集成。如果你需要语言是一个你可以写高性能代码的人,你甚至可以考虑承担斯卡拉的C++绑定的非平凡任务(如果你使用java或JNA java,然后从Scala调用Java),那就不是EME>坏的EEM>坏的。然后只将其用于最重要的数值工作,而Scala处理时间不太关键(但仍然有些重要)的部分
# 4 楼答案
我很惊讶没有人提到D。它接近C++语法,但很多“干净”,可以使用C和C++ LIBS,没有问题,并增加了许多高级功能。当然,这个步骤并不像java到斯卡拉那么大,但是我认为C++的复杂性很难想出一个真正的创新设计,它不会抛出C++的大部分。p>
# 5 楼答案
我想知道为什么还没有人提到the D programming language。它非常适合您的要求
# 6 楼答案