Google Dart编程语言的当前状态是什么?[关闭]


15

Dart已经存在了很长时间(在互联网时代),但是根据Google趋势判断,它并没有受到太多炒作,而且仅在Chrome中运行这一事实也无济于事。尽管如此,Chrome每天都在获得市场份额,这使其对Dart有更好的了解。

现在的大局是什么?语言处于什么状态?人们对此高度评价吗?市场份额?Web App展示柜?一些使您“我必须使用它”的功能实现?


2
这个问题可能被认为在时间上过于本地化,不确定在不征求语言本身意见的情况下如何减少本地化程度。
Matthieu 2012年

1
@Matthieu:太本地化了吗?认真吗
Jim G.

1
@吉姆 :对于使用0.06版本每月更新的语言,我认为可以公平地说,该语言在接下来的6个月内可能会有所不同,并且今天通过的任何判断都将无济于事。
Matthieu 2012年

1
Dart通过将其编译为JavaScript在现代浏览器中工作。
塞斯·拉德

2
我真的不明白关闭该程序的原因。它确实需要事实(市场份额/使用情况),参考(在线示例等),语言所处的状态(答案中指出的技术预览),功能实现(事实/参考/特定专业知识)。该帖子甚至提供了一些与期望的信息类似的信息,这些信息非常简洁明了
Mihalis Bagos 2012年

Answers:


27

简短的回答“ Dart的状态是什么?” 是:在技术预览中。这是一种特殊的说法,“我们提早启动,因此我们可以开源所有内容并公开进行工作。” “技术预览”还意味着“我们甚至还没有进入Alpha,我们还有很多工作要做,但是有足够的地方供您使用并提供反馈。”

互联网时间可能适用于新闻报道或消费产品迭代,但可能不适用于Dart如此雄心勃勃的项目。请记住,Dart不仅仅是一种语言。它还是一组库,更好的DOM界面,虚拟机,编辑器以及与Chrome的集成。团队在许多并行线程上都在努力工作,但是我个人希望这要六个月才能完成大部分工作。

Dart仅适用于Chrome浏览器并不是真的。Dart可以编译为JavaScript,并针对现代浏览器。当然,Chrome将是第一个使用Dart原生支持的产品,但是确保Dart编译为高性能和有效的JavaScript是该项目的核心约束和功能。

总的来说,Dart将成为现代Web应用程序的“包括电池”开发环境。Dart的推动目标是帮助确保Web仍然是用于应用程序开发和部署的高效且令人愉悦的平台。这意味着需要放下很多东西:语言,库,编辑器,虚拟机和浏览器集成。综上所述,我们相信Dart将是现代Web应用程序开发人员的理想选择。

BIG的大局面是,我们希望将应用程序开发人员带到网络上,并且我们希望网络开发人员编写更复杂的Web应用程序。如果他们使用Dart,那就太好了。但是,归根结底,语言并不重要。唯一重要的是,正在构建复杂的客户端,高保真,低延迟,漂亮的现代Web应用程序。

语言处于发展中。我们大约每月一次看到该规范的新版本。缺少主要功能,例如反射,但我们不断进行迭代。例如,我们刚刚向Collection添加了map()支持。认识他的语言的Gilad Bracha(创建了NewSpeak并在Java Lang Spec上工作)和认识他的库的Josh Bloch(已经编写了有效Java并在Java Collection库上工作)正在研究该语言,图书馆,以及更大的团队。

人们对Dart的高度评价很难一概而论,对您来说可能并不重要。与Dart合作后,您应该得出自己的结论。我的经验是,来自Java,C#或Flex等其他平台的应用程序开发人员发现Dart有吸引力且熟悉。我在JavaScript开发人员方面的经历是分裂的。如果该JavaScript开发人员也在其他平台上构建了应用程序,则他们会对Dart(或者至少是它正在尝试提供的解决方案)持谨慎乐观的态度。如果那个JavaScript开发人员在JavaScript上长大,并且只使用JavaScript编程,那还会有更多的犹豫。这可能是关于语言的一些基本问题,或者是在离开舒适区时犹豫不决,或者只是没有碰到JavaScript的极端情况。这只是概括,但我

至于市场份额,现在还处于初期。这可能不是一个正确的问题,因为Dart甚至都没有发货。一个更有趣的问题是,“网络上应用程序的市场份额是多少?” 然后找出解决方法。

至于Web App展示,Dart团队构建了Swarm,一个光滑的新闻阅读器。不幸的是,我们现在仅在源代码中提供它:http : //www.dartlang.org/samples/index.html

至于一些“杀手级”功能,我想说一些有趣的功能:

  • 可选类型很漂亮,它们为人和机器添加了注释和文档。
  • 隔离是一种以安全方式实现并发的好方法。
  • Web堆栈非常需要库(模块化),而Dart具有库和类。
  • 快照将使启动过程非常迅速
  • 捆绑的库(如集合,秒表等)将统一代码库并缩小可交付的代码
  • 不错的新DOM接口,这使使用DOM更加有趣。感觉就像本地的Dart代码。

希望我已经回答了您的问题。我认为唯一重要的问题是:“我的语言是否可以帮助我构建复杂,高保真,低延迟的模块化现代Web应用程序?” 所有这些的最终状态仅仅是帮助更多的应用程序开发人员向现代Web交付更多成功的应用程序。


在观看视频时来到了这个话题Introduction to Dart。准备在Dart上动手实践。:)
SachinGutte

8

您无法以“互联网年”来衡量编程语言的年龄。实际上,您无法衡量互联网时代的任何实际技术。在互联网时代,您真正可以衡量的只是炒作,但炒作并不能反映现实。

Dart已公开3个月了。将该技术与该领域的“新鲜”和“热门”技术(例如CoffeeScript或Node.js)进行比较,它们分别已公开两年和近三年了。同样值得注意的是,与Dart相比,两者都是相对较小的步骤。基本上,CoffeeScript意味着将JavaScript生成器插入基于Ruby的解析器中,而Node.js意味着将非阻塞I / O绑定到Google V8。

Dart试图重新设计所有级别的前端Web编程,即语法,语言功能,运行时环境,API。例如,将Dart与CoffeeScript进行比较,就好比将太阳能自动驾驶的个人飞机原型与1968 Shelby GT进行比较。当然,前者具有更大的潜力,但对其进行投资,更不用说登机了,需要大胆。后者有许多已知的缺陷,但是它们是已知的,这使得整个事情是可预测的和可靠的。

当然,这只是猜测,但我认为Dart是死胡同,最终可以挽救JavaScript向前发展的步伐或其他解决方案。如果您想要一种动态语言,那么CoffeeScript和Parenscript已经可以完成Dart的承诺。如果您更喜欢静态类型的语言,那么haXe和Opa可以解决问题。这四个人在Dart上都有领先优势。所有这些都被设计为默认编译为JavaScript,而不仅仅是后备。


3
我认为,尽管Dart 作为一种语言是的,但我还没有看到任何特别创新的东西。据我所知,它主要由旧语言的功能组成。因此,它实际上并不像“以太阳能为动力的自动驾驶个人飞机的原型”。
迪洪

@ back2dos +1“您无法衡量“互联网年”中编程语言的年龄。实际上,您无法衡量互联网年中的任何实际技术。” 这为我思考提供了新的见解。为什么不能,在互联网时代之前和之后如何衡量技术?
Ubermensch 2012年

@TikhonJelvis:比较更多是关于成熟度。太阳能,自动驾驶和航空仍然存在,因此我所描述的车辆与Dart类似,“只是”对现有想法的重新组合。工程学的挑战不是重组,而是使其飞翔;)
back2dos 2012年

就本次讨论而言,将Dart与其他语言进行比较是不可行的,而且据我所想,任何讨论都不可行,因为无论如何它们都是不同的。Dart不仅是预处理器,而且肯定不是面向服务器端的。我确实同意有关dart未来的猜测,这就是我期待得到回答的事情之一
Mihalis Bagos 2012年

@MihalisBagos:好吧,由于Dart可以编译为JS,因此您已经可以在Node.js上运行它,因此可以在服务器端使用它。同样,时间也很难进行有意义的衡量,因此要了解Dart在什么时候可以走多远,在更进一步的阶段与给定语言进行比较,并获得大量功能,这几乎是您可以获得的最佳参考框架。
back2dos 2012年

5

Dart仍处于技术预览中。目前,语言规范的版本为0.0.6,预计本周某个地方将为0.0.7。它远非“完整”。存储库中有几个示例:http : //www.dartlang.org/samples/index.html

以下是关于语法方面比JavaScript更好的一种观点:http : //www.grobmeier.de/10-reasons-why-dart-is-cooler-than-javascript-03012012.html 免责声明:这是我的文章。我需要在这里说我喜欢JavaScript,但是在某些方面它有一些古怪的地方,我不太喜欢。

周围还有一个成长中的社区:http : //www.dartosphere.org

有些人设法将Box2D移植到Dart,另一个人连接到CouchDB。无论如何,您在生产中应该没有任何使用。

不久之前,Josh Blochua已加入团队,致力于API的重构。您甚至可以期望在Core API中进行一些更改。

浏览器支持:您可以将Dart转换为JavaScript,最好是使用Frog(不是DartC,它可以编译为巨大的javascript文件)。Dartium是支持本机Dart的浏览器之一,有关Webkit分支的讨论也引起了争议。

我个人的期望是在明年年中得到更具体的信息。根据我的经验,Google Devs不仅在Java方面,而且从Erlang和JavaScript方面都在努力使语言正确和良好。

这是一个从JavaScript移植的游戏示例:http : //blog.sethladd.com/2011/12/10-lessons-from-porting-javascript-to.html

人们可以期望Dart甚至可以作为一种“主要语言”进入Android。人们说它将用于AppEngine。

我个人认为Dart非常优雅,已经很不错了。另外,我认为一旦完成,它将占有一定的市场份额。

您会在此FAQ中找到许多回答:http : //www.dartlang.org/support/faq.html#compare-to-coffeescript


感谢您的动手答复,非常有趣的链接!
Mihalis Bagos

0

Dart已经使用了很长时间(在互联网时代)

它甚至没有被广泛使用,而且还不成熟。生产就绪技术已经存在了10-15年以上...对于Dart来说,您甚至不能说它是预测试版。在没有人使用的情况下,新技术在纸面上总是看起来不错。

它没有太多炒作

我认为相反。如此糟糕,落后的语言获得如此积极的评价真是可惜。它从具有寄生继承,闭包和回调的精美Ecma / Java Script OOP追溯到Java附带的数十年古老的木制OOP,并附带了Java附带的所有可怕编程实践。

一些使您“我必须使用它”的功能实现?

没有。如果您了解Java,并且不懂得正确学习Ecma / JavaScript的知识,那么Dart可能只是对您有用的东西。

你知道谷歌是如何工作的。他们经常使用Java,所以这可能就是为什么他们产生如此可怕的语言的原因……他们只是习惯了它。

除此之外,它进一步分散了网络,我只能希望Mozilla和Opera永远不要实现这一目标(因为MS肯定不会添加对某些Google Java语言的支持)。除了整个概念都是DATED之外,至少在编写UI时,我们应该摆脱C ++或Java之类的语言,因为它们非常无效。这就像用Assembler代替C ++,因为50年代后期的编码人员拒绝学习新知识。


2
您可能需要调低您的语言偏见;您的第一段进行了很好的总结,最后得到了不错的观察,但是这些内容在所有“可怕”中都迷失了。
Patrick Hughes 2012年

在+1上,对于特定的应用程序,c ++仍然非常活跃(就像汇编程序一样)。它可能并不是每个工作的最佳工具,但是在很多情况下,它都很棒。我相信例如汇编程序可用于游戏引擎。
Paul Hiemstra

我并不是说Java或C ++不好...两者都对用户界面不利,这正是JS用于(主要)进行编程的目的。两者在其他领域都很好。Dart只是只用Java编程的人的幼稚方法,因此他们可能认为Java对一切都有好处。另外,我在UI上使用MFC和Java,因此我想即时消息可以这么说:)这就像说Assembler比C更高级,因为您只知道ASM :)
Slawek 2012年

我曾经使用过Java和JavaScript,可以说您的帖子太过恐怖和天真了。编程语言不是宗教,Dart有很好的方法。我认为我们不能或不应该摆脱Java之类的语言。这只是黑客言论,没有任何理由。
基督教徒

推理?您可以在JS中完成与Java中相同的操作...如果我们谈论的是UI,则只需快几倍的时间+代码更易于管理和更改。时间=金钱。当我们在浏览器中同时使用VBScript和ECma时,这已经够糟糕了……为什么要回到90年代呢?JS是一种针对特定情况的特定语言,为什么用普通通用的语言替换它?
Slawek 2012年

0

遵循Javascript的脚步,Dart是一个有缺陷的概念。Google应该合作为网络浏览器创建标准运行时(类似于HTML 6)。类似于Java字节码或Microsoft的IL。

我们不应该在特定语言上进行标准化,而应该在运行时上进行标准化。“浏览器是操作系统”。对?WTF Google?跟随自己的愿景!!!


2
Java字节码一种特定的语言。和CIL一样。
约尔格W¯¯米塔格
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.