距离《GacUI 1.0 眼看着就要写完了 (3)》已经过去了两年多了。这两年主要在做最后的release,这段时间主要更新如下:
- 完成了对GacUI源码的索引,基本上就是写了个C++编译器前端,推导出了所有的信息之后把代码输出成HTML (http://www.gaclib.net/CodeIndexDemo/Gaclib/FileIndex.html )。
- 推进GacUI的文档工作,目前已经写了1/4的控件了(http://www.gaclib.net/doc/current/gacui/components/controls/home.html ),进展喜人,希望这几个月能做完。
- 找到了人搞iGac,现在GacUI在macOS跑起来也是有模有样。不过目前GacUI XML Resource到C++代码的工作只能在Windows上完成,并不能只用macOS开发GacUI应用程序。
做完文档,翻新一下主页,就可以正式发布GacUI 1.0了。不过其实代码基本不会改了,现在直接用也没什么问题。基本的冷启动教程网站里面已经有了,而控件、排版、动画等功能的具体应用,还有XML以及脚本的写法,大部分也已经有文档了。暂时还没有的,还可以看Release repo里面的Tutorial目录,想自己开发皮肤的同学们还可以参考默认皮肤的代码,还有roodkcab同学使用GacUI开发的密码管理软件(https://github.com/roodkcab/gacpass ),可以在Windows、macOS以及Chrome插件上存活。
许久之前提到的某商业杀毒软件也使用了GacUI,不过因为卖得不好,作者也没来赞助我(逃。该作者在只开发过Java程序的情况下,现学C++并使用GacUI及其基础库成功开发了一个中型软件,成功展示了GacUI的易用性,甚至连C++陡峭的学习曲线都可以在一定程度上override掉。从Vlpp写起来的这套东西当初也是参考了.net的,非常适合有Java、C#和TypeScript经验的同学们使用。流行的语言除了C++和几个函数式语言以外,其他的语言的概念、类库甚至操作方式都是长得很像的,使用GacUI将体验到一种前所未有的亲切感(逃
最后就是展望一下GacUI 2.0,下一个版本希望加入的功能有:
- drag and drop。
- UI automation。
- 跨平台的2D画图API+矢量图,以及在这个矢量图的机制上做个简单的3D表面排序渲染器,顺便开发一个Chart控件。这个渲染器功能十分有限,不支持贴图和光照,就是用来画界面的。
- 支持Web Assembly。
- VlppParser写个新的,这样就可以支持更简便的colorizer和auto complete的开发,甚至帮你做一大半的refactoring的功能。colorizer和auto complete的框架将支持嵌套语言这种强大的feature,就像JavaScript嵌入在HTML这样的东西,GacUI也有(Workflow嵌入在XML理)。
- 有空的话顺便利用上面的新库写个Language Service Provider的框架,这样还能支援vscode插件,说不定GacStudio既可以是GacUI的版本也可以是vscode的版本,想想就开心。
- 坑了很久的Hero DB,也给他做出来。大概的目标就是一个支持MVCC的object oriented database,既可以file based,也可以memory based,主要做一个嵌入式的数据库来用。现在的专业知识想挑战分布式数据库是不太可能的,但是嵌入式数据库的作用也很大,完成一下学生时代的梦想。不要问我为什么不用sqlite,因为这就是一个学习的过程,什么都用别人写的东西,不自己做一下,你的编程技能是不会提升的,相关的领域知识也不会有更深刻的了解。
希望40岁以前可以把上面这些东西都做完(逃