13

这里有没有人试用过Fantom 编程语言?(双关语)。

我的第一印象:

  • 我喜欢让代码在 .NET 或 Java VM 上运行的能力。
  • 语法很好很干净,没有尝试任何花哨的东西。
  • 我相信“库就是语言”,Fan 的开发者相信他们的 USP 就是他们的 API

但是让一种语言同时在 Java 和 .NET 上运行是很容易的部分——事实上,这个问题有很多解决方案。困难的部分是获得可移植的 API。Fan 提供了一组抽象出 Java 和 .NET API 的 API。实际上,我们认为这是 Fan 的主要优势之一,因为它使我们有机会开发一套与 Java 和 .NET 对应部分相比更优雅且易于使用的系统 API。

还有其他想法,第一印象,利弊吗?

4

5 回答 5

2

它看起来非常受 Ruby 的启发。它说它是 RESTful 的,但我不知道具体如何。与boo相比,后者更成熟但在许多方面都相似(不过,它的语法是受 Python 启发的)。

保持泛型和命名空间非常有限的设计决策是有问题的。

于 2008-09-25T14:08:04.017 回答
2

我认为他们的解释总结了这一点:

“我们创建 Fan 的主要原因是编写可以在 Java VM 和 .NET CLR 上无缝运行的软件。现实情况是,许多软件组织都致力于这些平台中的一个或另一个。”

它看起来并不比所有其他非 JVM/.NET 语言更好。在没有关于他们的任何信息的情况下(他们的博客只是一个错误页面),我看不出他们为什么一定会比其他人更正确。 每种语言开始时都相当优雅,因为它的设计目的是为了(尽管我在刚才看到的小范代码中看到了一些尴尬)——真正的问题是它如何适应全新的事物,我们只是简单地还不知道。

但是,如果您的组织有“一切都必须在我们的 VM 上运行”的规则,那么这对您来说可能是一个可以接受的折衷方案。

仅仅为了虚拟机的独立性,你就放弃了很多。例如,你的问题是关于 SO 的第一个 Fan 问题——比 Lisp 少几个数量级。

对于什么问题,范是最好的解决方案?Python 和 Ruby 已经可以在这两种虚拟机上运行(或者两者都没有),拥有大型社区和大型库,并且似乎具有大致相同的抽象级别,但要成熟得多。

于 2009-04-11T23:25:16.360 回答
1

直到几周前我才听说范。从网站上看,它大约一岁,所以还很年轻,未经证实。然而,有几个有趣的点:首先,该语言通过提供一个参与者模型(类似于 erlang)和支持不可变对象来解决并发问题。其次,该对象遵循具有类型推断的 Scala 示例。类型推断允许程序员省略类型声明,但由编译器计算它,提供了与动态类型语言一样的代码更短、更清晰的优势,同时保留了静态类型语言的效率。最后,它似乎是一种非常快的语言,几乎与 Java 一样快,并且非常接近或击败 JM 上第二快的语言:scala。显示性能的基准可以在以下位置找到http://www.slideshare.net/michael.galpin/performance-comparisons-of-dynamic-languages-on-the-java-virtual-machine?type=powerpoint

于 2009-06-13T05:36:16.720 回答
0

这很有趣。

创建 Java(或 C#)是为了通过创建 JVM(或 CLR)来消除平台依赖性,该 JVM(或 CLR)将在运行时将代码编译成特定的机器代码。

现在,有一种语言是独立于虚拟机的吗?嗯....什么鬼?!?!

再说一次,这是一个非常有趣的话题,这可能是未来......:) 去一个通用的单一语言

于 2009-04-11T22:12:25.787 回答
0

我认为它看起来像是一种很棒的语言功能,但我不确定它有多大用处。我认为针对 .NET 和 JVM 并不是那么有用。Java 已经是跨平台的,.NET 也是,与 Mono。通过以两个 VM 为目标,您必须仅使用两者都可用的 API。您不能使用任何可用于 Java 和 .NET 的优秀原生 API。我无法想象他们的 API 与 Java 或 .NET 中的任何一个一样完整。

于 2009-04-11T23:32:08.497 回答