写点什么

Dart 2 为移动开发做出改进

  • 2018-03-06
  • 本文字数:1043 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

最新版本的Google Dart 编程语言支持更强大的类型系统、更简明的语法,还提供了一个改进版的工具链,它被Google 宣传为最佳的移动端应用程序和Web 应用程序的开发方式,Google 宣称Dart 能够提高2-3 倍的生产力。

Dart 强制使用强类型模式,这能确保在开发过程的早期就能捕获错误。但是,仍然可以选用类型注释,其类型在未声明时就会被推断出来。你可以通过启用 Dart 1.x 版本代码的强模式(strong mode)来预览 Dart 1.x 代码在 Dart 2 中的可用情况。

Dart 2 语言还有一个相对比较小的改动,但是这个改动对 Dart 语法的可读性产生了巨大影响,在调用构造函数时可以省略 new 和 const 关键字。这就使得使用更加具有声明性的语法成为可能。比如,你现在可以这样写:

复制代码
Widget build(BuildContext context) =>
Container(
height: 56.0,
padding: EdgeInsets.symmetric(horizontal: 8.0),
decoration: BoxDecoration(color: Colors.blue[500]),
child: Row(
...
),
);

而不用像 Dart 1.x 所兼容的代码那样:

复制代码
Widget build(BuildContext context) {
return new Container(
height: 56.0,
padding: const EdgeInsets.symmetric(horizontal: 8.0),
decoration: new BoxDecoration(color: Colors.blue[500]),
child: new Row(
...
),
);
}

Dart 通过 Google 的 Flutter 框架来支持移动应用程序开发,该框架旨在为 Android 和 iOS 创建原生 UI。Flutter 能够原生编译至 ARM 和 x86 处理器平台。当与 Flutter 引擎相结合之后,Fultter 能够提供一个高效的垃圾收集器,这就使得创建能够运行的原生移动端应用程序成为可能。

Dart 的定位转换至面向客户端开发这一说法,经过了 Google 的 Dart 产品经理 Anders Thorhauge Sandholm 的确认:

我们在开发 Dart 语言和相关类库时,所关注的重点是最大化客户端开发的价值和实用性。

但是这并不意味着,Dart 抛弃了命令行的使用和针对服务器端的代码。Dart 对客户端开发的关注可以被视为 Google 试图在Google 产品以外的行业增加对Dart 使用的新尝试,Google 目前还是Dart 的最大使用者。据Sandholm 所说,Dart 的性能和可预测性,以及其良好的系统,使得Google AdWords 工程师们的效率比以前提升了2-3 倍。此外,Sandholm 说,Google 团队在移动端和Web 端的AdWords Express 和AppTree 上使用的Dart 代码已经占到了50%-70%。

查看英文原文: Dart 2 Revamped for Mobile Development

2018-03-06 18:002433

评论

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

为什么你的创业公司应该运行在Kubernetes上

云原生

云原生 k8s

对话 CTO〡和 PingCAP CTO 黄东旭聊开源数据库新蓝海

ONES 王颖奇

数据库 分布式 开发者

一个创业者的途中思考

非著名程序员

创业 读书笔记 程序员 重新理解创业 思考

业务代码必须要做的事情

程序员劝退师

翻译: Effective Go (1)

申屠鹏会

翻译 Go 语言

电子书:《Linux Perf Master》

RiboseYim

Linux 性能优化

【数据结构】双向链表插入操作的时间复杂度分析

遇见

数据结构 算法 时间复杂度

从流程、认知上做稳定的系统演进

Skysper

系统设计 质量管理

uni-app黑魔法:小程序自定义组件运行到H5平台

崔红保

小程序 uni-app

近两年影响我的两个重要原则

Selina

WebSphere Application Server运维实践 --从入门到监控

rafe

Java WAS perfservlet visualVM JMX

用声音在一起,听荔枝CTO丁宁聊UGC声音互动平台的技术世界

ONES 王颖奇

内容 企业架构 互联网

分享多年积累的 macOS 效率工具

张晓辉

macos

浅谈汽车行业嵌入式软件发布的流程有多复杂

WB

程序员 软件

测试

Chonge

写一个开源的 macOS 程序可以赚多少钱?

子骅 luin

node.js redis GitHub 开源 赚钱

人们喜欢彼此制造困难让大家难过

Fenng

寻找伴侣最重要的是什么?

二爷

2020了,各家小程序发展的怎么样?

崔红保

小程序 uni-app

此为开卷

X.F

Flink初体验

数据社

大数据 flink 流计算

业务系统开发程序员常用linux知识

程序员劝退师

Linux

【Vue3.0 Beta】尝鲜

德育处主任

CSS Java html5 Vue 大前端

走出舒适区最好办法别走了,扩大它

乐少

毕竟,一生很短,少有圆满

霍太稳@极客邦科技

创业 身心健康 个人成长

Linux 性能诊断:负载评估入门

RiboseYim

Linux 性能优化

OKR实践中的痛点(1):老板的KR我的O,怎么办?

大叔杨

OKR Scrum 敏捷

一文讲清楚 MySQL 事务隔离级别和实现原理,开发人员必备知识点

古时的风筝

MySQL 数据库 事务隔离级别 mysql事务 数据库事务

【gRPC】Python调用Java的gRPC服务

遇见

Java Python gRPC

芋道 Spring Cloud Alibaba 介绍

艿艿

阿里巴巴 分布式 微服务 Spring Cloud Spring Boot

初入响应式编程(上)

CD826

spring 微服务 Spring Cloud 响应式编程 reactor

Dart 2为移动开发做出改进_开源_Sergio De Simone_InfoQ精选文章