flutter的引擎,Dart语言概括

什么是Dart?

Dart是谷歌开发的,类型安全的面向对象的编程语言,被应用于Web、服务器、移动应用和物联网等领域。

dart是谷歌在2011年推出的编程语言。谷歌希望使用dart来取代JavaScript。谷歌是一个颠覆式创新公司,谷歌退出golang是为了取代java,c++。谷歌退出flutter就是为了取代RN。dart的情况也是类似的。谷歌工程师觉得JavaScript有无法弥补的设计缺陷,所以就开发了dart,但是dart作为JavaScript的取代者,他并没有获得成功,然而是JavaScript后来因为nodejs的崛起成为了全栈语言前后端通吃。那dart也就进行了转变,作为flutter的开发语言重新出山

Dart最大的特点是什么?

他同时支持 JITAOT 两种模式
我们开发阶段使用JIT
我们在发布阶段是AOT
完美实现了鱼和熊掌兼得,开发效率和运行效率都是业界标杆

1.JIT 是just in time

开发效率特别高,但是因为需要实时编译,性能会受到一定的影响

运行的时候实时进行编译。
及时编译可以简单的理解为脚本语言
他一边解释一遍执行,他不需要事先编译
可以动态的下发和执行代码,这就实现了flutter最受欢迎的功能叫热重载(hot reload)

代表语言有:JavaScript python 等等

2.AOT 是 ahead of time

运行前先编译,要生成二进制代码,由机器直接执行,好处是 速度快性能高

但是每次执行之前,他都需要提前去编译,编译需要花费一些时间,所以开发效率会相对低一点

代表语言有: C Golang 等等

Dart另外一个特点-单线程模型

我们在编程的时候都是需要支持并发。并发的支持目前主流有两种方式

一种是通过内存共享的方式,采用抢占加锁的方式来实现线程,进程直接的切换,从而实现并发,像c语言之类的就是这么做的(难度高,容易出错)。
另外一种没有共享内存,各个worker之间,通过消息通信来协调的

dart没有共享内存,只有单线程,是单线程模型,它可以有多个isolate(隔离) 通过event loop 、event queue 来传递消息来协调 isolate的工作。这种模式的概念相对会比较简单。代码写起来和维护起来都相对比较容易,对并发的支持也比较好。

Dart有那些运行方式?

  • 原生虚拟机(Dart代码可以运行在Windows、Mac、Linux上)
  • JavaScript引擎(Dart代码可以转成JS代码,然后运行在浏览器上)

pub 类似npm的工具

pub pub是管理包的工具类似npm
https://pub.dev 是包的仓库 类似 https://www.npmjs.com/
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥肥呀呀呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值