10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

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

关注

评论

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

阿里云高庆瑞:如何快速搭建低成本高弹性的云上应用

阿里云弹性计算

应用 自动化运维 CloudOps 弹性伸缩

【高并发】亿级流量场景下如何为HTTP接口限流?看完我懂了!!

冰河

并发编程 多线程 高并发 协程 异步编程

电商出海,独立站小程序化能更好的连接人和应用

Speedoooo

小程序 移动开发 DTC 独立站 移动框架

给ShardingSphere提了个PR

艾小仙

Java GitHub 程序员 shardingsp

日拱算法:什么是“煎饼排序”?

掘金安东尼

算法 8月月更

BaaS助力区块链技术开启下一轮应用热潮

旺链科技

区块链 产业区块链 企业号九月金秋榜 BaaS平台

快速开始安装部署ArkID构建IDaaS,轻松拥有标准化用户身份体系

龙归科技

单点登录 Idaas ArkID

基于 JMeter 完成 Dubbo 接口的测试

霍格沃兹测试开发学社

【小程序项目开发--京东商城】uni-app之自定义搜索组件(上)-- 组件UI

计算机魔术师

8月月更

【小程序项目开发-- 京东商城】uni-app之自定义搜索组件(中)-- 搜索建议

计算机魔术师

8月月更

干货 | Dubbo 接口测试原理及多种方法实践总结

霍格沃兹测试开发学社

3. Docker镜像详解

鱼书

c++ 8月月更

锁分类

TimeFriends

8月月更

【Django | allauth】登录_注册_邮箱验证_密码邮箱重置

计算机魔术师

8月月更

HMS Core基于地理位置请求广告,流量变现快人一步

HarmonyOS SDK

广告sdk

科普达人丨一图看懂镜像

阿里云弹性计算

镜像 ECS

锁住它,快告诉我乐观锁与悲观锁的区别?

知识浅谈

8月月更

京东云PostgreSQL在GIS场景的应用分享

京东科技开发者

postgresql 检索 jieba 京东云 信息检索

Flomesh 发布 Pipy 0.50.0

Flomesh

前后端数据接口协作提效实践

百度Geek说

Java 数据 企业号九月金秋榜

运维理想和现实,你是?

嘉为蓝鲸

运维 AIOPS 故障处理 补丁

vivo前端智能化实践:机器学习在自动网页布局中的应用

vivo互联网技术

机器学习 前端 网页布局

列存数据仓库怎样做才能更高效

jiangxl

实战 | 电商业务的性能测试(一): 必备基础知识

霍格沃兹测试开发学社

长安链源码分析启动(6)

长安链

从项目经理过渡到ScrumMaster的三个技巧

ShineScrum

Scrum 敏捷 ScrumMaster 项目经理

开源一夏 | count(列名)、 count(常量)、 count(*)区别

六月的雨在InfoQ

开源 count MySQL 数据库 MySQL InnoDB 8月月更

科普达人丨一图看懂安全组

阿里云弹性计算

防火墙 安全组 ECS

2. 字符串、向量和数组

鱼书

c++ 操作系统 8月月更

STM32+M5311对接 OneNET 项目记录

矜辰所致

stm32 8月月更 M5311

拔掉电源会怎样?GaussDB(for Redis)双活让你有备无患

科技怪咖

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