原生开发什么意思_编程领域的“原生”一词是什么意思?

“原生”一般想说明的是程序直接编译成单独的可执行文件(机器码)在本机的操作系统层面(用的是本机线程,可以直接访问本机硬件)执行,而不是编译成字节码在虚拟机上执行(Java),或者解释型编程语言直接有虚拟机解释执行( JavaScript)。编译成原生程序有执行速度的优势(没有任何中间层解释的负担),缺点就是不能跨平台(不同的平台可以指不同的操作系统,也可以指底层硬件架构比如不同的CPU架构指令集),能在虚拟机上执行的编程语言只要在不同平台上有相同的虚拟机实现,就被声明为可以跨平台。前者比如 C/C++写的程序,在Windows下编译的exe程序你拿到Linux系统是没法执行的,另外比如你给NVIDIA显卡写的Cuda C++程序拿到装有AMD显卡的机器上也是不能执行的。后者比如Java,所谓的编写一次到处执行(只要该平台装有Java虚拟机)。你也可以看到很多在Java平台上的新兴的编程语言比如kotlin /scala / clojure,其实仅仅意味着它们可以编译成Java 虚拟机执行的字节码而已。

是否是原生执行,这里的界限其实是非常模糊的,因为即使是虚拟机执行,虚拟机底层还是有机器来承载的。你也可以开发编译器直接把Scala代码编译成原生的机器码直接执行。再比如Hotspot Java 虚拟机,可以动态检测热点代码,把这部分热点代码动态编译成机器码执行以获得更快的速度。

当你慢慢看过更多的例子,就能更深刻的理解,特别在前端领域,比如JavaScript引擎,WebAssembly等去了解一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值