最近我一直在寻找制作网络应用的新方法(至少对我来说是新的).我发现有两种语言看起来很有前途.谷歌dart 和哈克斯.两者都可以编译为javascript,因此它们应该都可以在所有浏览器上工作.

现在,我的问题是,对于那些与其中一个或两个都合作过的人,他们的状况如何.他们经常使用吗?它们可以使用吗?他们是什么社区的?在你看来,哪一个是最好的,或者是最有前途的?最重要的是,这两者的状态如何,它们还在积极发展吗?您认为哪一个会存活得最久?

(编辑:作为额外奖励,我计划在其中制作一个小游戏,可能会使用HTML5画布,那么哪一个对此有最好的支持呢?)

非常感谢!

-巴勃罗

推荐答案

我与埃里克·J·史密斯正好相反--我只能代表哈克斯说话.

Haxe肯定已经是一门很棒的语言了.我想说,它的大部分商业用途都是在游戏行业——能够将相同的代码库编译成Flash、JavaScript、桌面、iPhone、Android、WebOS和BlackBerry真是令人印象深刻:)例如,在上一届Ludum Dare 48小时游戏制作比赛中,有games that were created名玩家使用Haxe,其中一些甚至在GitHub上有源代码.

如果你要go 哈克斯市打球,有几个 Select .最流行的似乎是使用NME,这是一个基于Haxe的库,它提供了一个类似Flash/AS3的API,可以编译到许多目标上.它可以输出到JavaScript,但它的主要关注点是Flash和Native CPP(适用于iPhone等)-因为它的性能比JavaScript要好得多.您还可以使用专门针对JavaScript的框架,比如CreateJS-这里有一个blog post将NME与CreateJS for Haxe进行了比较.我也听说过Flambe的好消息,它似乎针对JavaScript游戏/交互式图形进行了优化.

(Side note: it's pretty easy for Haxe to create 'externs', so many normal JavaScript libraries can be used without too much trouble in Haxe)

对于应用程序开发(不是游戏),Haxe仍然可以做得很好-这是我更多地做的事情.我通常使用非常标准的JS技术,比如jQuery,但是Haxe提供了一大堆不错的额外功能,包括编译时错误判断、非常强大的语言以及与服务器共享代码的能力.我确信DART提供了一些相同的优势.

在成熟度、 solidity 和支持性方面:

  • Haxe已经存在了很长时间,虽然它的开发团队规模较小,但他们非常投入(参见how many changes are being committed).
  • 达特有一家更大的公司做后盾.对于Haxe来说,正在建立一个官方基金会来促进Haxe的future -但他们不会有谷歌那样的钱!最终,如果DART真的起飞了-我预测很快就会有人将Haxe设置为输出到DART-就像他们在服务器上使用NodeJS所做的那样:)
  • 两者似乎都有超级忠诚的社区
  • 许多Haxe可用的库似乎都与游戏相关--很多补丁、动画、物理等等.不确定DART在这里是怎么回事.

我也很想听听那些同时使用这两种语言的人对实际语言差异的看法.据我所知,Haxe的类型似乎更严格(我更喜欢这样——在编译时捕获更多错误!)但有些人不喜欢这样.

Dart相关问答推荐

我不明白在DART的`if()`语句中使用`case

VS Code 无法识别 Flutter 中的单元测试

在构建函数之外使用 BuildContext

错误:不要从另一个包中导入实现文件

在Flatter中,依赖项必须指定版本号?

如何在Flatter中导入intl库?

如何在 Flutter 中渲染单个像素?

Flutter web url 导航

dart2js代码比javascript快多少?

如何实现从左侧滑动的侧边菜单?

如何更改手机屏幕上的Flutter应用程序名称显示?

我们如何在 Dart 中删除一个对象?

如何将条目添加到列表中的特定索引?

Dart:你如何让 Future 等待 Stream?

Dart如何将逗号添加到字符串编号

如何从 Dart 中的 forEach 循环返回?

dart中的max/mi int/double 值是否有常数?

如何在 Dart 中获取文件名?

使用 VSCode 创建和运行 Dart 控制台应用程序?

在 Dart 中为数字添加前导零