阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

Blossom 准备将开发语言切换为 Dart

  • 2013-05-09
  • 本文字数:2262 字

    阅读完需:约 7 分钟

Dart 是 Google 设计的新的 Web 编程语言和平台,可用于替代 JavaScript。Thomas Schranz 在一篇博客中宣布,他们公司准备将其产品 Blossom (面向产品团队的 Web 看板系统)迁移到 Dart。

长期以来,该公司一直忍受着 JavaScript 生态系统的分裂,现在终于做出了向 Dart 迁移的决定。 Schranz 写道

Blossom ,我们都是 JavaScript 的超级粉丝。而且如果知道如何避开各种坑的话,从很多方面看 JavaScript 都很不错。即便如此,我感觉 JavaScript 生态系统存在不少严重不足,尤其是核心衔接系统。

有时要完成一件事,需要绕很多圈才能开始,这让人非常沮丧。我不知道刚接触 JavaScript 生态系统的新手有何感受,但我想学习曲线会非常陡峭,而且问号比较多。

因此该公司决定逐步将应用前端迁移向 Dart。之前,前端是结合 CoffeeScript Backbone.js Underscore.js jQuery 开发的,并使用 Brunch 进行装配。

InfoQ 采访了 Schranzto,希望进一步了解相关信息。

Dart**** 还很年轻,现在你们为什么决定切换到这门语言?

和其他语言相比,Dart 的确还很年轻。但是与 JavaScript 的生态系统比起来,Dart 所提供的工具、标准库和包管理系统使之很容易使用。

JavaScript 世界存在很多分裂,尤其是构建块。我们有很多方法来管理包、处理模块、使用异步代码和依赖,甚至在集合上进行迭代,但这些方法往往相互抵触,致使各种库无法很好地混用并搭配起来。有的人会推荐使用特定的生态系统,有的人则不想了解其他系统,转而重新发明轮子。与其他编程语言(如 Ruby、Python 或 Dart)社区相比,JavaScript 社区非我发明综合症( NIH syndrome ,Not Invented Here)更为明显。

这不仅给新手带来了不必要的复杂性和困惑,写了很多年 JavaScript 的老手也好不到哪去。切换到 Dart,表面上看会有风险,但以我之见,在 JavaScript 上继续逗留风险更大。

为什么 Dart 适合 Blossom 呢?

我们在寻找一种能让我们更高效地使用我们的前端代码基的方式。这方面 Dart 提供了很好的基础。因为有了 Dart 虚拟机,我们可以快速进行保存-重新加载这一开发周期,而且我们有了一个强有力的代码分析器。这样 Dart 编辑器用起来就非常舒服。它支持自动完成、重构和调试,它支持的程度是 JavaScript 达不到的。此外,包管理器、可选类型和标准库的一致性,使我们可以很容易地定位代码基中的问题。Dart 不仅是一门编程语言,它还带来了后备力量,我认为理解这一点很重要。衔接的开发体验感觉棒极了。

Dart**** 的开发仍然处于 alpha 阶段。因此 API 还会发生变化,对你们来说这也是个问题吧?

我感觉 Dart 的语法和语义已经非常稳定了。即便如此,因为 Dart 团队正在为 1.0 里程碑版本而努力,所以在 API 层会有很多改进。幸运的是,正如我刚才所提到的,Dart 提供了极好的工具。编辑器可以显示标记为弃用的方法,它甚至还提供了一个清理工具,在可能的情况下它会自动更新代码基。如果跟踪 Dart 的博客和邮件列表的话,手动更新也没多少麻烦。

你们还在一点点地迁移应用。你们对 Dart 代码和 JavaScript 的互操作有什么经验?

可以使用 js-interop 包创建 JavaScript 对象、调用 JavaScript 函数,甚至如果你想的话,可以把 Dart 函数暴露出来,供 JavaScript 调用。这在互操作性方面已经走得相当远了。就 Blossom 本身而言,因为我们现有的 Backbone.js 代码基的组件相当独立,很容易一个部件(widget)一个部件地迁移,所以我们其实不怎么需要 interop 库。我们也使用了 Justin Fagnani 的路由包, 这让我们很容易使用 Dart 接管部分应用。到目前为止迁移比我们预期的要容易。

与 JavaScript 相比,到目前为止你们都积累了哪些 Dart 平台的开发经验?

使用 Dart 非常快乐。这种一致性的开发体验让人难以置信,我们可以集中精力改进产品,而不是纠缠于生态系统的基本构件块上。以前,我们的 JavaScript 代码散落着对 undefined 的检查,因为 JavaScript 有种倾向,正常的语言会抛出异常的地方,JavaScript 却会继续下去。我上一次有这种被解放的感觉已经是多年之前的事了,当时我从 PHP 转向了 Ruby 和 Rails 框架。那时进行这种迁移也被认为是风险很高,甚至有点疯狂。

到目前为止,你们大约迁移了多少代码了?

现在约有 5% 了。我们用 Dart 编写新功能,而且每周都会对现有部分做一些迁移。

有其他产品应用也在进行这种迁移吗,你是否了解?

我还没听说其他产品应用从 JavaScript 切换到 Dart,不过如果未来有更多公司宣布选择这个方向,我不会感到意外。Dart 社区正在成长,很多人对 1.0 里程碑版本已经迫不及待了。此外,一些服务提供商也开始支持 Dart 了,比如 drone.io ,这是一个持续集成服务,可以使用很多 Dart 开源包来测试。

你是否建议其他公司现在也切换到 Dart?

现在切换可能还是为时过早,但我强烈建议研究下 Dart,玩玩这门语言,试试它的工具,特别是要体验一下 Web UI。最好这个周末就动手!

你认为 Dart 未来会怎样,会不会广泛应用?

我认为 Dart 前途光明。它给我们找回了 Web 开发的快乐。Dart 平台背后的人都是顶尖人才,早期的社区和可用的包也非常优秀。利用它为 Web 构建应用程序令人非常激动。

Dart 在一年半前首次发布之时,这一语言及其实现方法受到了尖锐批评。但Dart 平台从那时以来就稳步迭代,包括JetBrains 的WebStorm 和IntelliJ 在内的第三方IDE 也添加了对Dart 的支持,而且现在已经可以把服务器端的Dart 应用部署 Heroku 上了。

Blossom 是第一个做出这种切换的发布产品。至于是否会像俗话“一羊跳过沟,众羊跟着跳”说的那样,让时间来说明吧。

查看英文原文 Blossom Switches to Dart

2013-05-09 12:102150
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 130.1 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

200元上岸3万技巧分享

闵东升

规律总结上岸经验顺口溜技巧

闵东升

如何计算下期和值最准办法

闵东升

找到A不存在于B的记录,not in, except ,not exists ,left join + is null 大比拼

TiDB 社区干货传送门

6.x 实践

大小单双推算数学技巧公式规律

闵东升

云服务器利用Docker搭建sqli-labs靶场环境

百度搜索:蓝易云

Docker 云计算 Linux 运维 云服务器

上岸技巧稳赢讲解规律诀窍

闵东升

捷途山海T2预售正式开启,起售价18.49万元,性价比超高!

Geek_2d6073

ubuntu镜像更新时出现E: Problem executing scripts APT::Update::Post-Invoke错误

百度搜索:蓝易云

云计算 Linux ubuntu 运维 云服务器

TiDB v8.0 组件 TiProxy 测试

TiDB 社区干货传送门

8.x 实践

大小单双规律200元上岸一万技巧

闵东升

走势上岸稳赢最准选号技巧

闵东升

切换到tidb用户使用tiup命令出现bash: tiup: command not found

TiDB 社区干货传送门

管理与运维 7.x 实践

上岸顺口溜买大小单双规律技巧

闵东升

长龙短龙怎么确定技巧方案图

闵东升

docker安装elasticsearch、kibana

百度搜索:蓝易云

Docker elasticsearch Linux Kibana 云服务器

vben-admin 如何实现多语言

麦兜

大小单双走势规律分享个人心得

闵东升

快速上岸大小单双技巧口诀

闵东升

大小单双口诀技巧买法公式

闵东升

和值什么计算公式实战技巧总结

闵东升

大小单双规律最容易掌握技巧方法

闵东升

dockerfile命令详解

百度搜索:蓝易云

Docker 云计算 Linux Dockerfile 云服务器

Ubuntu开启生成Core Dump的方法

百度搜索:蓝易云

Linux ubuntu 运维 云服务器 Core Dump

大小单双规律倍投上岸规律方法

闵东升

怎么玩大小单双有技巧规律攻略

闵东升

最容易中奖的技巧上岸规律口诀

闵东升

买大小单双稳赚的技巧上岸方法

闵东升

教你快准狠上手基于 Dashboard 快速定位问题 SQL

TiDB 社区干货传送门

监控 实践案例 管理与运维 故障排查/诊断 7.x 实践

有什么规律技巧大小单双怎么看稳赢

闵东升

怎么看走势稳赢技巧上岸诀窍

闵东升

Blossom准备将开发语言切换为Dart_JavaScript_Zef Hemel_InfoQ精选文章