除开汇编,机器码,编程语言大概分三层吧
1:下层语言(c/cpp/rust/zig...)
默认只有值类型数据,提供指针,无gc,aot编译,静态派发为主,数据结构由语言自身实现,零成本抽象,性能极高,资源占用低
2:中层语言(clr-lang/jvm-lang/go/仓颉...)
默认提供值类型(jvm语言仅提供8大基本数据)和引用类型,有gc,jit或aot编译,动态派发较多,数据结构一般由语言自身实现,低成本抽象(jvm语言除外),性能较高,目前除go和仓颉外,资源占用较高
3:上层语言(py/ruby/r/julia/js/ts/fp-lang...)
默认提供引用类型,一般无法操作值类型,有gc,解释执行或jit编译,完全动态派发,数据结构一般由下层语言实现,资源占用较高,高成本抽象,性能一般或者较低,资源占用较高
表面看现在语言层出不穷,但是一门特性丰富,较高性能,资源占用较低的中层语言,依然是空缺,
仓颉定位是弥补中层语言这个空缺(go语言特性实在简陋) |