Programming languages 我应该将项目切换到哪种编程语言?

Programming languages 我应该将项目切换到哪种编程语言?,programming-languages,Programming Languages,我有一个用我自己的GNU埃菲尔(SmallEiffel)编译器补丁版本编写的大型程序。虽然我喜欢这种语言,但我遇到了一个问题,即编译器在编译的系统大小上是O(n^2)或更差。所以我必须马上搬家 由于各种原因,唯一活着的艾菲尔编译器ISE Eiffel不是一个选项。主要是因为编译后的代码运行速度很慢 我正在寻找一种语言,它是: 命令式与面向对象 具有泛型/模板 编译为本机代码,而不是 需要.NET/Java 静态类型(表示快速) 垃圾收集 跨平台 不像C那么丑陋和愚蠢++ 我想不出其他的东西,但这

我有一个用我自己的GNU埃菲尔(SmallEiffel)编译器补丁版本编写的大型程序。虽然我喜欢这种语言,但我遇到了一个问题,即编译器在编译的系统大小上是O(n^2)或更差。所以我必须马上搬家

由于各种原因,唯一活着的艾菲尔编译器ISE Eiffel不是一个选项。主要是因为编译后的代码运行速度很慢

我正在寻找一种语言,它是:

  • 命令式与面向对象

  • 具有泛型/模板

  • 编译为本机代码,而不是 需要.NET/Java

  • 静态类型(表示快速)

  • 垃圾收集

  • 跨平台

  • 不像C那么丑陋和愚蠢++


  • 我想不出其他的东西,但这看起来有点低水平和不稳定。真的没有满足这七点的吗?

    OCaml,也许?

    OCaml,也许?

    您可以用Java编写并使用GCJ编译为本机ish代码(这将是本机代码,但您需要链接相当一部分代码,这些代码构成Java在运行时所需的所有内容。您的用户不需要安装JRE。)

    您可以用Java编写并使用GCJ编译为本机ish代码(这将是本机代码,但您需要链接相当一部分代码,这些代码构成Java在运行时所需的所有内容。您的用户将不需要安装JRE。)

    谷歌搜索“面向对象的本机代码编译器”在Eiffel之前会出现Objective Caml


    如果您愿意在研究编译器上冒险,请查看和本机代码漩涡编译器(用Diesel为Diesel编写)。这是一个研究项目,但它是稳定的,克雷格·钱伯斯(Craig Chambers)是业内最优秀的人之一。

    谷歌搜索“面向对象的本机代码编译器”(object-oriented native code compiler)在埃菲尔之前提出了目标Caml

    如果您愿意在研究编译器上冒险,请查看和本机代码漩涡编译器(用Diesel为Diesel编写)。这是一个研究项目,但它是稳定的,克雷格·钱伯斯(Craig Chambers)是业内最优秀的人之一。

    Python呢? 它是一种面向对象的脚本语言,运行速度快,具有通用模板。

    Python呢?
    它是一种面向对象的脚本语言,运行速度快,有通用模板。你对java和C++的反叛可能会让你的生活变得困难,尤其是如果你想使用本地代码,并且静态类型化。我会犹豫是否认为这不是新谷歌语言的插件。C++可以更简单,如果你使用它干净和一致。使用智能指针()可以作为C++垃圾收集的一个替代方法,值得我研究。也许我正在踩地雷,但是C++是怎么死的?对不起,MPelletier,我不咬,有足够的答案,为什么C++是最坏的和最复杂的。请仔细看看D。它有低级别的结构,如指针和内联汇编,但看看STD范围或STD算法,例如,在D2。你可以在D中进行很高级别的编程。你是对的,D还不是很稳定,但这是一个短期问题。D2应在未来6个月左右稳定下来。因此,如果这是一个大型/长期项目,您可能需要重新考虑D。问题是,这正是人们多年前告诉我的关于SmallEiffel的内容,也是人们多年前告诉我的关于我的GUI库(FOX)的内容。在接下来的6个月里,我仍然在等待这两个。因此,我学到了一件艰难的事情:决不要仅凭现状来判断一个项目。这是目前的一个D.HMM,你反对java和C++可能会让你的生活变得困难,尤其是如果你想使用本机代码和静态类型的话。我会犹豫是否认为这不是新谷歌语言的插件。C++可以更简单,如果你使用它干净和一致。使用智能指针()可以作为C++垃圾收集的一个替代方法,值得我研究。也许我正在踩地雷,但是C++是怎么死的?对不起,MPelletier,我不咬,有足够的答案,为什么C++是最坏的和最复杂的。请仔细看看D。它有低级别的结构,如指针和内联汇编,但看看STD范围或STD算法,例如,在D2。你可以在D中进行很高级别的编程。你是对的,D还不是很稳定,但这是一个短期问题。D2应在未来6个月左右稳定下来。因此,如果这是一个大型/长期项目,您可能需要重新考虑D。问题是,这正是人们多年前告诉我的关于SmallEiffel的内容,也是人们多年前告诉我的关于我的GUI库(FOX)的内容。在接下来的6个月里,我仍然在等待这两个。因此,我学到了一件艰难的事情:决不要仅凭现状来判断一个项目。这是目前D的否定。这是一个令人惊讶的答案,但OCaml是一种令人惊讶的命令式函数语言。这是一个令人惊讶的答案,但OCaml是一种令人惊讶的命令式函数语言。值得一看。