我也精通C#/VB.NET,但我正在寻找更像这样的东西:
- 开源
- 编译型
- 跨平台
- 面向对象
- 大型标准库
- 广泛的文档
- Web开发是一个重要的加分项
也许值得看一下其他JVM语言- Clojure和Scala是我个人认为最有前途的两种语言。
是的,您在JVM上运行,但与Java语言相比,您非常独立,如果不想使用任何Sun/Oracle实现,可以自由选择。
话虽如此-我认为您对Java的担忧有些过多,太多的参与者(包括Oracle!)已经投入了太多,不会让它偏离轨道太远。
试试Scala。它看起来非常优雅和有前途。以面向对象的方式,以非常简洁的方式与Java共享很多特性。
你说的一切都指向C#,除了开源这一点。
为了解决这个问题,有一个叫做Mono的东西。
我也希望出现另一种类似Java的技术。最近我一直在使用Flex/Actionscript。虽然我非常喜欢它,但是Actionscript技术严重缺乏Java的优雅。Adobe可以编写一些很好的跨平台API,但他们没有足够的资本来构建优雅的语言和编译器。我也尝试过Ruby,但Ruby的VM真的很差。在与其他技术的暧昧之后,我回到了Java,我认为这是因为这种语言已经足够好了,而JVM是迄今为止最好的。
那么你想留在JVM上还是完全离开JVM?留在JVM上有很多选择:JRuby、Scala、Groovy、Javascript、Clojure都是大牌。然而,有很多优秀的语言可以利用JVM的特性。
如果离开JVM,仍然有像Python、Ruby和Erlang这样的好选择。但是你会失去JVM的一些好功能,比如性能(非常重要),以及需要速度时可以切换到像Java这样的好语言。其他语言意味着使用C或根本不使用。
我终于不再担心Java的未来了。Sun已经尽其所能地搞砸了它,但它仍然表现得相当不错。我认为开源对Java的成功有比Oracle或Sun更大的影响力。
同时使用Cython可以兼顾两个世界的优点,既可以使用Python编程,也可以使用C和C++编程,当然还可以编译代码并能够立刻使用Python和C/C++库。如果您不喜欢C++语法,Cython语法是Python语法及其扩展。
个人而言,我不太喜欢PHP,但它确实满足您的所有要求。它没有官方支持编译,但有Hip Hop项目可以将PHP编译成C代码,Facebook目前正在领导此项目。
话虽如此,我强烈不建议您使用它 :)
C#是唯一能够满足您需求并且不会感到过时或受限于有限的库的编程语言。对于开源/非Windows平台,可以使用Mono。它是CLR中最重要的部分的成熟实现。
一些东西(如WPF、WCF等)在Mono中“缺失”,但这些并不是平台的一部分,而是Windows特定的专有工具包。其中一些正在慢慢地在Mono中实现,而有些则没有。从Java转换过来,您不会错过它们,因为您正在寻找一个平台和良好的标准库来构建,而不是GUI工具包或华而不实的通信框架。
就像Java提供类似的功能水平一样,C# + CLR是构建应用程序的最佳选择。