代码的未来读书笔记<二>

代码的未来读书笔记<二>

3.1语言的设计

对Ruby JavaScript Java Go 从服务端客户端以及静态动态这2个角度进行了对比. 这四种语言由于不同的设计方针,产生了不同的设计风格.

Header客户端服务端
动态Html5Ruby
静态JavaGo

静态动态

  • 静态:无需实际运行,仅根据程序代码就能确定结果.
  • 动态:只有到了运行时才能确定结果.不过无论任何程序,或多或少都包含的动态的特性.

动态运行模式

运行中的程序能识别自身,并对自身进行操作.对程序自身进行操作的编程,被称作元编程(Metaprogramming)

有鸭子样的就是鸭子

如果某个对象的行为和鸭子一模一样,那无论他真正的实体是什么,我们都可以将它看作一个鸭子.我们不关系对象到底是哪一个类的实例,只关心其拥有怎样的行为.

Go, Dart, CoffeeScpript, Lua

分别介绍了这4种语言的语法区别,已经编译器做出的优化

显著高速化的语言

从更本上说,性能和引擎的性质有关,和语言的种类是无关的

JIT

Just In Time Compiler,指的是在程序运行时将其编译为机器语言的技术.

特殊化

指的是一种在将函数转换为内部表达时所运用的技术. 通过假定参数为特定类型, 事先准备一个特殊化的高速版本, 在函数调用的开头先执行类型检查, 当前提条件成立时直接运行高速版本. 动态语言运行速度慢的理由之一, 就是因为在运行时需要伴随大量的类型检查, 而通过特殊化则可以回避这一不利因素.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值