概述
浏览器只支持Javascript和WebAssembly,所以作为Javascript的补充,要么能够转换成Javascript,要么能转换成WebAssembly。
补充Javascript的出发点有三:
- 一、重复利用已经有的代码,特别是C/C++的代码,不用为了将应用转移到Web端,用Javascript重写一遍,将原来的C/C++转换一下就好。
- 二、为了避开Javascript是动态类型的坑,因为是动态类型,所以很多错误要在运行时才能被发现,这在大型工程中是致命的,所以要用静态类型的语言来代替动态类型的语言,以便在编译时就可以发现更多的错误。
- 三、为了保密,选择Rust或C/C++,然后编译成WebAssembly,二进制的代码破解起来比文本型的Javascript困难地多,不想让人看到内部逻辑的,可以这么做。
如果是出于前两点,Javascript或WebAssembly都可以作为编译目标,看个人喜好。如果出于第三点,只能编译成WebAssembly。
所谓TypeScript就是Typed JavaScript,即增加了类型的Javascript,有了类型就可以做静态检查,就可以在编译期排查很多类型不匹配问题。TypeScript可以用tsc转换成Javascript。TypeScript可以用AssemblyScript转换成WebAssembly。
Rust可以转换成WebAssembly。WebAssembly是Rust的编译目标之一。通过rustc可以将Rust编译成WebAssembly输出。
C/C++既可以转换成Javascript,也可以转换成WebAssembly。使用Emscripten可以将C/C++转换成Javascript,也可以编译成WebAssembly。
Javascript | WebAssembly | |
---|---|---|
TypeScript | ✔ | ✔ |
Rust | ✔ | |
C/C++ | ✔ | ✔ |
重复利用 | 避开动态类型 | 保密 | |
---|---|---|---|
TypeScript | ✔ | ✔ | |
Rust | ✔ | ✔ | |
C/C++ | ✔ | ✔ | ✔ |
参考资料
- TypeScript 官网
- TypeScript 中文网
- AssemblyScript 官网
- WebAssembly - Rust Programming Language 官网
- Emscripten 官网
- asm.js 和 Emscripten 入门教程
- 五分钟了解asm.js和WebAssembly
最后
以上就是开心老鼠为你收集整理的Javascript的补充:Typescript、Rust、C/C++的全部内容,希望文章能够帮你解决Javascript的补充:Typescript、Rust、C/C++所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复