什么是GS?GS是我自创的一门编程语言,全名叫“GreatScript”,是一门类型化语言,可以编译成JavaScript。简单来说,就是又一门TypeScript。
GreatScript的生态位跟Typescript,CoffeeScript,ReScript相同,那么,GS究竟有什么优点,从而在众多类型化语言中脱颖而出呢?
答案就是写出来的代码少,在某些情况下,写出来的代码甚至比JS还少!而做到这样的关键,就是对JS代码进行大刀阔斧的改革,与其他类型化语言不同,JS并不是GS的子集,GS是对JS取其精华去其糟粕,它的优点是:
- 比JS多类型标注
- 比TS代码量更少
- 比JS更简约直观
至于我为什么要造一个GS,说起来也算是一个副产品,我最初的打算是做一个用自制编程语言写自制操作系统的项目(很肝),自制编程语言起名叫zlang,自制操作系统起名叫zos,z的意思是我的姓名的首字母,没有其他特别的含义,后来这个项目烂尾了(很正常),我只做到了用自制编程语言在自制操作系统上打印出一串“Hello World”,b站录制了两期视频后,就彻底不干了,但是我自认为我设计的zlang还不错,而且现在我是一名前端程序员,而前端又向来以娱乐圈著称(bushi),于是我就琢磨着能不能把我的zlang移植到前端上,如果用的人多的话,我也算一个前端创始人了,于是就有了GS。
附一个我的b站链接:【【自制编程语言+操作系统2】在空无一人的赛道狂奔...-哔哩哔哩】 【自制编程语言+操作系统2】在空无一人的赛道狂奔..._哔哩哔哩_bilibili
为了适配JS,GS还是与zlang有一点点的不同,所以我又取了一个单独的名字而不叫zlang,那么GS到底长什么样呢?我弄了一个GitHub仓库,语法写到readme上了:
https://github.com/HeroIsUseless/greatscript.github.io/blob/main/index.md
目前这个仓库里就一个readme,不过我已经实现了zlang的编译器了,改一改就能用于GS,做一个demo不算太难,不过做一个完整的编译器就不容易了。
下面展示一段相同功能的JS与GS的代码片段:
可以看到GS甚至比JS更简约,这就是GS的最突出的特点之一,虽然现在GS还处于“刚创建一个文件夹”的水平,不过我相信由于GS的简约特性,将来一定会有大批拥趸的。