跳到主要内容

假努力

· 阅读需 5 分钟
amass
一个正在躺平的板砖人

有一个很大的毛病,就是泛而不精,嗯,其实到现在这个年纪,我也不知道算不算泛了。但是不精肯定是事实的。

有一个现象,就是很多东西都想自己折腾,但是往往折腾的途中发现被什么东西卡住了或是繁琐或是根本思路就不够理想等等各种原因,实现的功能总是只见三分便戛然而止。等到过一段日志回过头来,发现有缺陷,有未实现的,又感觉是重新来一遍。貌似我看似努力的时间全都耗在这上面了。

依稀记得有一阵子,突然对脚本语言有了点兴趣,于是心血来潮了解了一下AngelScript,接着跑了一下示例,然后就把代码放在AmassLibrary里面后就没管了。其实在早之前我也看过Lua,两者显得重复。另外其实在真正产品中,我还没在任何一款产品里面应用过脚本去实现某一功能逻辑。抱着一种难以描述的心态,我决定保留一下AngelScript去除Lua吧。

为什么我一定还要熟悉一个脚本,因为在工具开发中,我比较倾向于用代码保存配置。但是C/C++代码明显不行咯,修改的话就得每次编译。

那为什么我选择AngelScript呢?那就比较随意了,毕竟不是使用在公司产品中,所以就不需要考虑这个脚本是不是在积极维护呀,如果给用户用,用户会不会觉得难以理解啊一系列的考虑。

使用AngelScript的原因:

  • 平时基本都使用C++开发,AngelScript的语法和C++高度一致。
  • 在AngelScript中注册C++非常容易。
  • 采用C++面向对象开发,API易于理解,重新拎起来不用花太大时间去重新熟悉API

不适用Lua的原因:

  • 注册一个C++函数到Lua很麻烦
    • 当然也可以使用LuaBridge第三方库,但是往往这种库使用人数也少,出现BUG让人很懵逼,而且代码里面应用了大量的模板,阅读起来也费力。
  • 平时不经常使用,导致每次要用的时候,都得花时间去熟悉Lua语法。
  • C API过多,且有些API名字类似导致不易区分功能,每次拎起来都需要在文档中反复确认。

Lua也有一些优势:

  • 使用人数比AngelScript多。
  • 体积小巧,运行速度块,其还可以在MCU上移植运行。(应用开发,不太关注性能问题,也不太喜欢嵌入式C开发)
  • 真正意义上的胶水语言,可以与任何语言C/C++、Java等进行集成交互。(我只用C++)

此前也了解过OpenResty,曾想过在上面开发后端,但是也不需要啦,我不是后端开发者,估计以后也没有可能了半路转行了,那么用C++实现的Http Server基本上已经能够满足简单功能了。然后由于以上我对Lua的不适应,所以OpenResty也是得放弃的,熟悉Nginx用作代理就行了。

综上,开始去除Lua相关代码,替换为AngelScript的折腾啦~将这次的想法记录下来。