思考Ruby如何获得Go的能力

一、更换编程语言

这是一段针对中国的互联公司,不断地通过更换编程语言,给自己赋能的一个思考。

我们需要更换编程语言么?

为什么要更换编程语言?

更换编程语言背后的本质是什么?

老的代码是一种抽象资产,如何不更换语言的情况下重新赋能?

二、建立推论

几个基本假设,可以建立起推论

  1. 所有的代码终会变成C Code/ 汇编

  2. 图灵完备: 图灵完备 意味着语言之间可以替代

  3. 逻辑守恒

我们真的需要替换语言来获得新能力么?

并不。

因为所有代码都会变成C Code 因为图灵完备的语言可以被互相替代

所以理论上我们只需要一种语言

Javascript 是携带了 Eventloop 机制的语言。Go 是携带了Go routine机 制的语言。

语言自己就像一个上层的软件

3.1 语言多做一点,用户就少做一点。 语言少做一点,用户就多做一点

4.抽象层

4.1 不同语言之间可以通过增加逻辑层来弥合。

如果我们在ruby上层实现一个框架,框架实现了Go的routine模型,我们就相当于给 ruby 赋予了Go

4.2 我们也可以才用胶水思路,让ruby编译成Go或者变成 Go

两种思路

  • 要么我们成为他们

  • 要么让他们成为我们的一部分

这样就可以获得新能力

三、基于此关于方向的思考

1.建立一个抽象层

抽象层拥有不同的工作模型,建立自己的工作模型秩序

比如react把系统调度实现了一遍在用户层。

2.下沉到语言层面

搬运个工作模型

比如 ruby 可以增加 async模型,性能比肩 nodejs

3.胶水方向

让不同语言联合工作 webpack

4.新应用方向

新的组合产品

Mark24

Everything can Mix.