写点什么

Dart 1.8:采访 Google 工程师 Seth Ladd

  • 2014-12-26
  • 本文字数:1364 字

    阅读完需:约 4 分钟

Google 近期发布了其开源Web 编程语言 Dart 的 1.8 版本。该版本带来了对枚举的实验性支持,Google 的 Dart 开发倡导者 Seth Ladd 介绍说,枚举是请求最多的特性之一。为了解该特性相关的更多信息,以及 Dart 项目的最新信息,InfoQ 采访了 Ladd。

InfoQ: Seth,你提到枚举是 Dart 中请求最多的特性之一,为什么说枚举这么好呢,缺乏枚举会有什么不便吗?为什么有人这么关心这个特性?

Ladd:枚举可以帮助开发者用最少的代码清晰地表达其意图,还可以帮助工具捕获潜在的 bug。开发者可以方便地使用枚举来命名一组相关的术语或值。

对于喜欢看代码的开发者,我们先看一个例子。在引入枚举之前,开发者必须像下面这样指定来自业务中的状态(OPEN、INPROGRESS 和 CLOSED):

复制代码
// 在引入枚举之前
class FormState {
static const FormState OPEN = const FormState._(0);
static const FormState INPROGRESS = const FormState._(1);
static const FormState CLOSED = const FormState._(2);
final int value;
const FormState._(this.value);
static const List<formstate> values = const [OPEN, INPROGRESS, CLOSED];
}</formstate>

而有了枚举的适当支持,代码简洁了很多:

复制代码
enum FormState { OPEN, INPROGRESS, CLOSED }

新的语法可以帮助开发者识别潜在的 bug。枚举经常用在 switch 语句中。为确保开发者处理了枚举中所有可能的状态,Dart 工具可以在缺失显式的 case 语句时给出警告。

InfoQ:枚举支持目前的描述还是“实验性特性”。那如何确定实验是否取得成功呢?

Ladd:之所以将枚举标记位“实验性特性”,这是因为,一方面语言规范已经完成,还在等待 ECMA TC52 的批准;另一方面,我们还希望我们所有的工具都能正确处理枚举。我们希望开发者现在就开始使用枚举,并报告发现的实现中存在的问题。我们期待尽快去掉“实验性”的标签。

InfoQ:在你看来,社区对枚举的实验性支持反应如何?

Ladd:Dart 1.8 还非常新,反馈还在收集。然而,枚举是社区要求最多的特性之一,所以我们非常激动地想看到开发者使用它。有些开发者还要求支持将整数值赋给枚举值,未来的 ECMA TC52 会议会讨论这个特性请求。

InfoQ:除了枚举,Dart 1.8 还有其他一些变化。你可以给读者详细介绍下吗?

Ladd:在 Dart 1.8 中,添加了新的 JsonUtf8Encoder,以帮助开发者编写性能更好的服务器。我们注意到,将 JSON 解码为 UTF8 这种操作很常见,所以我们希望提供一个优化的解决方案。

API 也有一些小变化,主要是为提高开发效率。

InfoQ:InfoQ 的读者对 Dart 1.9 可以有哪些期待呢?对于 2.0 版本,有哪些特性我们可以先睹为快吗?

Ladd:我们正在努力实现 async / await,这个特性可以帮助开发者编写异步代码,而且是看上去更像同步代码的异步代码。这意味着减小了进入“回掉黑洞”的机会。

关于 Dart 2.0,目前还没有什么可以分享的。按照我们的期望,1.9 版本之后会是 Dart 1.10。

InfoQ:你还有什么想要跟大家分享的吗?

Ladd:希望开发者参加我们的第一届 Dart Summit ,将于 2015 年 4 月在旧金山举行。大会是学习 Dart 方方面面知识的好机会,可以直接跟我们的工程师和 Dart 社区交流。大会现在也在开放征集演讲提议

Dart 团队也欢迎大家向该项目做出贡献。InfoQ 的读者可以通过报告 bug、回答 StackOverflow 上的问题以及提交代码来做贡献。更多信息,可以参见该页面

2014-12-26 04:251647
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

记一次spring注解@Value不生效的深度排查

捉虫大师

spring Spring Boot dubbo

Linux系统优化

桥哥技术之路

Linux

一次漫长的dubbo网关内存泄露排查经历

捉虫大师

dubbo 内存泄露

IPFS 星际传输协议的入门(二)

AIbot

区块链 分布式数据库

LeetCode 前1000题二叉树题目系统总结

Yano

面试 算法 LeetCode 二叉树 刷题

nacos的一致性协议distro介绍

捉虫大师

nacos

Docker运行常用软件:MySQL,Redis,Nginx,RabbitMQ,Neuxs,Gitlab

读钓

MySQL nginx Docker gitlab

一行代码实现网站可编辑,并解决网站禁止复制的限制

王坤祥

复制 破解 DOM

一个工程师向电信公司的维权

D

以为是青铜,没想到是王者的dubbo标签路由

捉虫大师

dubbo

身为程序员,怎么接私活赚外快?

爱看书的小代码

MacOS配置网络命令

编程随想曲

macos network

Ledge:这可能是距今最好的『DevOps + 研发效能』知识平台

Phodal

DevOps 敏捷开发 软件开发 研发效能

18个PPT,29个提问解答,都在这儿啦!

Apache Flink

大数据 flink 流计算 实时计算

Sentinel在docker中获取CPU利用率的一个BUG

捉虫大师

Java sentinel cpu

读书·行路·问心·求道

黄崇远@数据虫巢

读书笔记 个人成长 读书

XOR异或运算在计算机中的应用

王坤祥

XOR 异或运算 对称加密

零基础应该如何学习爬虫技术?

极客时间

Python 编程 爬虫

SpringBoot中如何优雅的使用多线程

读钓

Java spring Spring Boot

用jdk8的stream实现斐波那契数列

编号94530

jdk stream 斐波那契 fibonacci

Python 有哪些黑魔法?

极客时间

Python 编程语言

Apache Beam 大数据处理一站式分析

李孟聊AI

Java 大数据 数据中台 数据交换 Beam

centos7.6操作系统安装

桥哥技术之路

Linux

当dubbo多注册中心碰上标签路由

捉虫大师

dubbo

项目实施要避免哪些坑?

顾强

项目管理

如何在非 sudo 用户下运行 docker 命令?

愚一

Docker DevOps

都在说实时数据架构,你了解多少?

Apache Flink

大数据 flink 流计算 实时计算

什么是物联网中台

老任物联网杂谈

物联网中台 IOT Platform 物联网平台

思维导图学《Linux性能优化实战》

Yano

Linux 后端

skywalking内存泄露排查

捉虫大师

dubbo 内存泄露

在Kubernetes上运行SpringBoot应用

铁花盆

Docker Kubernetes Spring Boot

Dart 1.8:采访Google工程师Seth Ladd_JavaScript_James Chesters_InfoQ精选文章