写点什么

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:102234
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

田间地头“有智慧”,华为云助力盈禾嘉田打造病虫害防治新模式

华为云开发者联盟

人工智能 机器学习 华为云 华为云开发者联盟 企业号2024年7月PK榜

技术干货|数据科学助力制造业智能化变革

Altair RapidMiner

人工智能 机器学习 算法 数据分析 altair

大模型落地,「city不city」?

白洞计划

AI

TON钱包选择全面资产保护教程,bitget钱包

BlockChain先知

企业数字化转型成刚需 协同管理行业步入黄金发展期

快乐非自愿限量之名

数字化 数字经济 企业转型 协同办公

构筑自主可控大数据“底座”,赋能数字经济发展

EquatorCoco

大数据 信息技术

【YashanDB知识库】收集分区表统计信息采样率小于1导致SQL执行计划走偏

YashanDB

yashandb 崖山数据库 崖山DB

利用财务团队的转型来推动企业业务成功

智达方通

企业管理 全面预算管理 财务管理

解读MySQL 8.0数据字典缓存管理机制

华为云开发者联盟

MySQL 数据库 华为云 华为云开发者联盟 企业号2024年7月PK榜

蓝易云 - Linux系统:CentOS 7 CA证书服务器部署

百度搜索:蓝易云

云计算 centos 运维 云服务器 CA

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

百度搜索:蓝易云

Linux ubuntu 运维 报错 云服务器

在 Go 中如何使用 go:embed 指令嵌入静态文件

江湖十年

Go golang 后端 golang 面试

在 JeecgBoot 项目中基于 Vue 3 配置多页面入口

JEECG低代码

前端开发 Vue3

卷不动了!去香港工作可以重启人生吗?

王中阳Go

Go 面试题

企业全历史行为数据 让你对竞争对手的一切清清楚楚

客户在哪儿AI

ToB营销 ToB获客 ToB增长 大客户营销

蓝易云 - ELK安装、部署、调试zookeeper安装,配置

百度搜索:蓝易云

Apache zookeeper Linux 运维 ELK

AI+资源数据分析运营助手

鲸品堂

AI 运维 资源管理 企业号2024年7月PK榜

基于低代码思想的可视化开发平台:引领未来软件开发的新趋势

不在线第一只蜗牛

软件开发 低代码 可视化

好用的Mac应用程序清理卸载工具:App Cleaner & Uninstall

你的猪会飞吗

Mac 软件

人工智能与机器人学:智能自主系统的融合与未来

天津汇柏科技有限公司

人工智能 机器学习人工智能

玩转生成式 AI ,抓住时代机遇

科技热闻

谷歌DeepMind被曝抄袭开源成果,论文还中了顶流会议

Openlab_cosmoplat

人工智能 开源 ChatGPT

蓝易云 - 互联网发展跨境电商企业建站云服务器应用优势

百度搜索:蓝易云

云计算 运维 服务器 云服务器 高防服务器

蓝易云 - PHP用CURL发送Content-type为application/json的POST请求方法

百度搜索:蓝易云

php 云计算 运维 post

【7月27日丨上海】Elastic & 阿里云邀您参加 AI 搜索 Tech Day

阿里云大数据AI技术

人工智能 elastic

在MoneyPrinterPlus中使用本地chatTTS语音模型

程序那些事

工具 程序那些事 AIGC MoneyPrinterPlus

在线PDF转PPT软件!这2款AI工具值得推荐!

彭宏豪95

职场 PPT 办公软件 效率软件 AI生成PPT

一群追星星的人,对AI的盼与怕

脑极体

AI

一文读懂有关 LISTA、bitget 钱包的所有信息

股市老人

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