使用 TypeScript 开发 AGI
目前似乎还没有最完美的语言,我也是试了 java、 python 、golang
之后,最后综合考虑,定位到 TypeScript
。
优点
TypeScript
的好处是:
- 一定程度上是静态语言,语法不复杂且类似于
c 、c++、c#
系列语法,支持 类编程 或 函数式编程,有自动提示和自动完成。 - 基于
v8
,足够快。相关编辑环境启动也很快(这很重要,人往往是懒得等哪怕一两秒) - 和 ui 最接近,做调试界面时改起来快(
AGI
后期涉及大量监控界面) - 相关 ui 库比其它平台更新快 且效果好,比如 naive ui 、 Ant Design 或 blueprintjs ,它们的控件的丰富度和交互体验都非常好 (这也很重要,自己看着养眼,有持续做下去的动力,如果有投资人,那么养眼就更重要了)
- 可以编译成 js 运行在
node.js
等环境中,或游戏引擎中(unreal、unity、cocos、laya、egret
等),而这些都是跨平台的,并且现在有这样一个趋势,游戏逐渐 mod 化和动态化,也就是热更新频繁,所以静态语言反而没有动态语言(js、ts)好用,最近腾讯
出品的Puerts
,就是一个支持在 Unreal 和 Unity 中使用 ts 的插件 https://github.com/Tencent/puerts。 - 编译足够快,热刷新足够快,一些环境,比如
vite
还支持只编译更新修改的部分。 - js 和 ts 的生态足够大,有 3d 库
three.js
,有大量游戏库,基础网络协议库,也有将 js 部分部署到 gpu 的库(gpu.js
)。 - 基于
chrome
调试,非常方便快捷,还支持性能分析、内存分析等功能。 - ts 有自身完善的
parser
,将来可以很方便的编译到其它语言。 - ts 有一个版本叫
Static TypeScript
,可以不依赖于虚拟机,直接运行在硬件上。
缺点
缺点也有:
不是最快的语言,DeepLearning 库和 数学库 也没有 py 那么多。
取舍和平衡
研发阶段,只要编码时的体验足够快(感觉不到快慢差异)即可,性能上极致的快并不是必须的(况且上面也提到 ts 后期也可以编译到硬件上)。
而且我所学的 AGI 理论 ,恰恰是一定程度上反对 DeepLearning 算法的(明确知道它们的致命缺陷),所以不需要 DL 库。同时也反对盲目使用数学和堆砌复杂公式,所以也不需要复杂的数学库,甚至连矩阵、向量都不需要。
在 AGI
研发阶段,调试方便最重要,且 逻辑神经元
和 底层网络架构
都是自己写的,不需要调用什么数学库, 普通的加减乘除足以应付,复杂的效果不在于数学公式有多复杂,而在于简单的逻辑神经元集群精妙配合所产生的自组织、协同和适应
。
没有最好,适合最重要
总之,以上只是我个人的体会,不适用于其他人,不好说哪个语言最好,先试试才知道哪一个最合适自己。