开源管理编程语言

时间:2009-03-28 16:01:54

标签: java open-source mono

除了Mono和Java之外,是否有任何好的,可移植的,开源的,高级的,静态类型的,命令式的,面向对象的,垃圾收集的,安全的语言/运行时具有合理的性能?单声道很好,但它是微软的技术,我有点害怕使用它(我不确定这种恐惧是多么理性)。 Java的问题在于它太简单了(没有无符号数据类型,没有结构等)。

12 个答案:

答案 0 :(得分:9)

Mono不是Microsoft技术。 .NET是,但Mono不是--Mono是ECMA-334和ECMA-335国际标准的开源实现。是的,它们起源于微软,但Mono本身并非不是 Microsoft技术。

当然不是Mono是一种语言 - C#是语言。但是 languages 并不是真正的开源或不是 - 实现是。

听起来你可能对C#有一种非理性的恐惧 - 而且对Java也是如此。我当然希望在Java中看到这些东西(我非常喜欢C#),但它仍然完全有可能在其中编写非常重要的应用程序。

答案 1 :(得分:2)

Eiffel满足您的所有要求

答案 2 :(得分:2)

在CLR上,有Boo

  

Boo是一个新的面向对象   静态类型编程语言   用于公共语言基础结构   用python启发的语法和   特别关注语言和编译器   扩展

Boo Manifesto是一个很好的起点。

答案 3 :(得分:2)

嗯,在java中没有无符号数据类型很少被认为是一个问题。

但是Lisp呢 - 它是引入垃圾收集的语言,可能是最强大的语言。

检查Peter Norvig(Google的研究主管)的表现comparison。您可能会对Lisp在某些领域甚至是Java中击败C ++感到惊讶。

alt text

然而Lisp似乎不是主流语言 - 我wondering为什么会这样? 因为它有点简约 - 它可能不会被当前或未来的任何语言所击败。

(我想是什么让C#或Java如此受欢迎不仅仅是语言而是图书馆。)

答案 4 :(得分:2)

带有garbage collector的C ++?虽然你对Java的问题不是那么多的显示限制因素(除非你能详细说明为什么你需要这些东西,但从表面上来看,这些论点通常不是很合理,但有时候它们也是如此)。

答案 5 :(得分:2)

我想指出Vala,这是一种基于C#语法的语言,但它以C编译器(类似于Eiffel)和轻量级自托管运行时为目标。但它缺乏garbace系列。

答案 6 :(得分:1)

你怎么能说java太简单了?

好的,开发Java的原因之一是使它比没有900多页规范的C ++复杂化。但是,它比C复杂得多。

大约10年前,我参加了Les Hatton的课程,他研究了如何使您的C程序更安全。他认为几乎没有人能够记住140页的C标准,因此理解像C ++这样的东西会非常难。

当然,你的目标可能不需要安全,但如果你这样做是值得记住的。

答案 7 :(得分:1)

scala比java更简洁,它运行在java运行的任何地方,因为它编译为java字节码。 twitter在scala中重新实现了一些核心基础架构。

答案 8 :(得分:0)

总有Python和Ruby

答案 9 :(得分:0)

首先,Mono不是微软的技术。 第二,只有两个具有上述功能的严重虚拟机(VM) - .Net / Mono和Java。但是,撇开静态类型语言的要求,您可以在新的Parrot Virtual MachineWikipedia article about Parrot)上引起注意。

当然,Ruby,Python Erlang等也是跨平台的VM(用于单动态语言)

答案 10 :(得分:0)

您可以查看D编程语言。

但说实话?我建议远离mono / C#。为什么?很多原因......

另外,对于实际的选择,需要使用Java或C ++。

Java与C#一样好,即使它有点不同。 C ++也很好,因为使用引用计数可以解决99%的GC问题......

答案 11 :(得分:0)

如果你想学习这个以便能够更适合工作,我建议你考虑.NET(如果你想去微软平台)或Java(如果你想去平台)独立),并做了很多编码。两者都是非常大的平台!

其他任何东西都只是在一些地方使用的小众语言,这可能非常好,但不太可能让你在任何地方找到工作,但在那几个地方。