前言

2020 春节,众所周知的原因在家。开始找出之前的书没读完的书依次kill time。

这波读的书很杂, 也比较快,担心很多信息没领悟清楚,先记一波笔记,回头翻阅。过程是读书, 所以内容更多的是关于理论/思考方式/概念相关的,不涉及具体的操作/实践/demo。

关于Dart语言

Dart语言,最开始知道其实是因为Angular 和Flutter, 对它本身没太详细了解过。
从语言的角度看,几个比较显著的特点如下:

  • 纯面向对象的语言,(甚至包括最简单的数字 布尔型,函数也是对象,OO中的很多设计都是可以继续follow)
  • 可选类型(类型在语法层面可选,类型对运行时语义没有影响)

接触一个新的语言,我们总会从这个语言的一些规则开始。
有些语法糖或者使用方法和之前的一样,有些长的不一样但本质一样,有些完全不一样。

故人

和以前在其他语言里面遇到的基本一样,还是熟悉的配方。

还有些和之前的一样的

  • 基本的结构控制(for循环 if判断 swicth)
  • Mixin ≈ Ruby中Mixin(或者其他类Lisp语言也有)
  • yield和ES6

类似的但长得不一样

或者说只是换了个说法,看着不一样但本质做的事情基本一致,比如

  • 基于库的封装 ≈ 前端中的package 后端的lib
  • Future ≈ JS中Promise
  • is操作符 ≈ JS中 instanceof

不一样或者比较特别的

  • label (自动代码生成,不知道和元编程有木有啥关系)
  • 反射与自省
  • 异步处理中的isolate

整体感觉

整体看完全书,大概花了4小时,这一篇比较简略,主要是给自己后期看的。

Dart语言特性取了百家特点,如actor借鉴了Erlang, mixin借鉴了lisp语言... 当然受影响最大的可能还是smalltalk,书里面都详细说了历史,不赘述。

但从设计者的设计意图来看,还是是一门对程序员很友好的语言(和ruby的友好方向不一样),比如可选类型充分考虑了程序员的对待warning和error的习惯,语法上手容易兼顾Java程序员和JS程序员。

建议可以从angular和Flutter 入手试试。


Yangyang
105 声望11 粉丝

Coding/Reading|Thinking