js怎么跟php结合使用?php编译成jsjs怎么和php结合?
解释JS如何调用PHP,PHP如何调用JS。在学习任何编程语言时,我们都会听到call这个词。那么,如何用javascript调用php呢?php中也可以调用js吗?让我们一起来看看吧。1.JS调用
顺晟科技
2021-07-03 13:32:13
253
前两天写了几篇文章,谈了谈Dart做后端开发的优势,比如:
《Dart开发服务端,我是不是发烧(骚)了?》
《持续发烧,试试Dart语言的异步操作,效率提升500%》
《持续发烧,聊聊Dart语言的并发处理,能挑战Go不?》
如果没有看过的同学,可以先看一下。
今天,我们再来谈谈 Dart 的另外一大优势,那就是静态编译。估计 php 和 python 直接认输, java 和 go 冷眼旁观?
提前预告,内容略干,请自带矿泉水。
目前主流的开发语言,一般来说要么支持  JIT 模式,要么支持 AOT 模式,要么两种都支持。
照顾小白, 稍稍解释下名词
JIT 即是 Just-In-Time, 实时编译,简称 解释型,简单的说就是代码运行后,边编译代码边运行代码,优点便于开发调试,缺点是执行效率不太行
AOT 即是 Ahead-Of-Time, 预先编译,简称 编译型, 简单说是代码运行前就编译代码,优点是执行效率高点,但是开发调试不友好
主流的后端语言,从 实际使用 上来说:
php, python 都是 解释型, 实际开发的时候,代码写的非常爽,但总是被抱怨性能低
java, go 都是 编译型, 总是被抱怨编译一次,出门打个架都还没结束,我说的是 java
面对这样的情况,机智的同学看出来了,那开发的时候使用 JIT模式, 运行的时候使用 AOT 模式不就好了吗,开发调试也方便了,执行效率也高了?
不错不错,小伙子你颇具慧根,你是对的,Dart 也是这样做的。
当你使用 Dart 编写好应用程序后,可以使用 dart compile 命令来编译成最终文件
比如使用如下命令直接编译成 exe 文件
dart compile exe bin/main.dart将得到 main.exe 文件,该文件可以在 win 平台直接运行, 但是它不能在 linux 下执行
那能不能编译成通用的,各平台都通用的文件呢? 当然可以。
执行如下命令
dart compile kernel bin/main.dart将得到 main.dill 文件,它是个二进制文件,可以在所有平台,所有CPU架构使用。
熟悉 go 的同学一脸茫然,抄我的?
当然,你也可以执行下面的命令,将其编译成 aot 文件
dart compile aot-snapshot bin/main.dart它有一个不好的地方,win平台编译的aot文件,不能在linux下使用。
同理, linux 下编译的不能在win下使用。
当然,它更好的地方是性能更好,所以也是最推荐使用的。
有的。
在 Dart 的官方文档中,关于编译的页面,有特别提醒
https://dart.dev/tools/dart-compile就是这个页面,其中有这样的描述,请一定要注意:
The exe and aot-snapshot subcommands have some known limitations:
...
No support for dart:mirrors and dart:developer
...意思是说,exe, aot 两种模式下,有一些局限性,比如:
不支持 dart:mirrors    反射   
不支持 dart:developer  开发者工具
有一些同学可能天天都是写基本的增删改查,估计不知道 反射 有什么用。
实际上用处非常大,包括 java 领域里 SpringBoot 框架, PHP 领域里的 Laravel 框架,在实际运行的时候,都需要使用到 反射 功能,来获取运行的类的属性信息,方法信息,以完成一些自动化处理。
然而, Dart 禁用了 反射,这就给框架编写带来了非常大的不便。
当然,Dart 给出的理由是,禁用 反射, 一是这个库还不稳定,二是可以提高性能。
嗯嗯,我信了。
Dart 的编译方式还算主流,充分考虑了易用和性能,没有硬伤,不像PHP在这方面受人诟病,为后端开发铺平了道路。
加上文章开头提高的其他两大特性,异步 和 并发,所以我在公司主力推荐使用 Dart。
有同学该说了,好好的 Java 为什么不用, Dart 还能比 Java 更适合开发后端?
这个问题,以后再说。
30
2022-11
03
2022-11
17
2022-09
15
2022-09
15
2022-09
15
2022-09