写点什么

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

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

关注

评论

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

AI 原生应用开发实战营·深圳站精彩回顾 & PPT 下载

阿里巴巴云原生

阿里云 AI 云原生

毅硕HPC | Pritunl + ECS + Frp 搭建远程办公VPN

INSVAST

远程办公 HPC 高性能集群 部署教程

AI智能识别分析系统:不是“读心术”,却是帮你看透数据的“火眼金睛”

上海拔俗

亲测有效!用Dify工作流+AI智能体,我们的测试效率提升了300%

测试人

手写套件五大能力,让创作办公高效流畅

HarmonyOS SDK

HarmonyOS NEXT HarmonyOS SDK应用服务

可观测数据质量从“看不见”到“修得准”

日志易

可观测性 日志易

数据要素×旅游业:打开高质量发展新空间

郑州埃文科技

深入理解 Doris Variant:如何让 JSON 查询性能追平列存,还能承载万列索引字段?|Deep Dive

SelectDB

json apache doris 数据库 大数据

Kubernetes CRD 方式配置容器日志采集最佳实践

观测云

日志分析 kubernetes CRD

大模型调优的第一性原理

陈一之

技术思维 大模型 技术原理

Scrapy与Brotli解压缩漏洞导致拒绝服务攻击

qife122

网络安全 Python开发

RPA 选型不踩雷!头部厂商全拆解,企业级 / 个人级精准匹配指南

Techinsight

ETL调优指南:内存、并发、批量插入的取舍

谷云科技RestCloud

数据处理 数据传输 ETL 数据集成 ETL调优

从60帧到360帧:对比ToDesk、向日葵、TeamViewer三款远程巨头的画质进化

陈橘又青

“最懂大疆”的拓竹,成了大疆最难容的对手?

趣解商业

科技 大疆 拓竹科技

电商平台与小程序与快递鸟物流轨迹API

快递鸟

AI Coding:屎山终结,优雅重现

MortiseAI@HugoHu

agent LLM vibe coding spec coding

AI数据治理系统:给大模型喂"干净饭"的技术底座

上海拔俗

从60帧到360帧:对比ToDesk、向日葵、TeamViewer三款远程巨头的画质进化

陈橘又青

远程办公

AI赋能功能型用户画像:轻量实用的工作流程

qife122

AI UX设计

【本不该故障系列】从 runC 到 runD:SAE 如何化解安全泄露风险

阿里巴巴云原生

阿里云 Serverless 云原生

全局取色,手写笔服务让精准配色“一触即达”

HarmonyOS SDK

HarmonyOS NEXT HarmonyOS SDK应用服务

使用 AI 编程工具开发邮件插件 MailMind Assistant

严学峰

人工智能 AI编程 文心快码Zulu

基于Hologres构建多模态AI数据分析与检索系统

阿里云大数据AI技术

AI hologres 多模态分析

实时日志关联分析工具:智能检测潜在安全威胁

运维有小邓

日志分析 日志管理 日志审计 日志关联

IP种子技术:构建全球P2P网络实时监测方案

郑州埃文科技

代码的未来:当AI学会创造,我们技术人的价值何在?

咕泡科技

咕泡ai 咕泡科技 咕泡大模型

JNPF 报表操作全攻略:函数 / 图表 / 导入 / 打印一键搞定

引迈信息

被裁后,我如何实现0到3份大厂Offer的逆袭?(内附面试真题)

测试人

软件测试

低空经济数据要素市场化配置的路径探索

郑州埃文科技

当养老遇上数据要素:如何重塑未来养老体验

郑州埃文科技

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