还在用 JS?过来看看 GS

165 天前
 heroisuseless

什么是 GS ? GS 是我自创的一门编程语言,全名叫“GreatScript”,是一门类型化语言,可以编译成 JavaScript 。简单来说,就是又一门 TypeScript 。

GreatScript 的生态位跟 Typescript ,CoffeeScript ,ReScript 相同,那么,GS 究竟有什么优点,从而在众多类型化语言中脱颖而出呢?

答案就是写出来的代码少,在某些情况下,写出来的代码甚至比 JS 还少!而做到这样的关键,就是对 JS 代码进行大刀阔斧的改革,与其他类型化语言不同,JS 并不是 GS 的子集,GS 是对 JS 取其精华去其糟粕,它的优点是:

至于我为什么要造一个 GS ,说起来也算是一个副产品,我最初的打算是做一个用自制编程语言写自制操作系统的项目(很肝),自制编程语言起名叫 zlang ,自制操作系统起名叫 zos ,z 的意思是我的姓名的首字母,没有其他特别的含义,后来这个项目烂尾了(很正常),我只做到了用自制编程语言在自制操作系统上打印出一串“Hello World”,b 站录制了两期视频后,就彻底不干了,但是我自认为我设计的 zlang 还不错,而且现在我是一名前端程序员,而前端又向来以娱乐圈著称( bushi ),于是我就琢磨着能不能把我的 zlang 移植到前端上,如果用的人多的话,我也算一个前端创始人了,于是就有了 GS 。

附一个我的 b 站链接: [ [自制编程语言+操作系统 2 ] 在空无一人的赛道狂奔...-哔哩哔哩] https://b23.tv/6HjF8Fz

为了适配 JS ,GS 还是与 zlang 有一点点的不同,所以我又取了一个单独的名字而不叫 zlang ,那么 GS 到底长什么样呢?我弄了一个 GitHub 仓库,语法写到 readme 上了:

https://github.com/HeroIsUseless/greatscript.github.io/blob/main/index.md

目前这个仓库里就一个 readme ,不过我已经实现了 zlang 的编译器了,改一改就能用于 GS ,做一个 demo 不算太难,不过做一个完整的编译器就不容易了。

下面展示一段相同功能的 JS 与 GS 的代码片段:

使用 React 的情况:

可以看到 GS 甚至比 JS 更简约,这就是 GS 的最突出的特点之一,虽然现在 GS 还处于“刚创建一个文件夹”的水平,不过我相信由于 GS 的简约特性,将来一定会有大批拥趸的。

3294 次点击
所在节点    分享创造
27 条回复
codingguy
165 天前
变量赋值用冒号代替等号的目的是啥?然后解构里面的赋值又换回了等号,但是对象里的键值对又是冒号分隔(破产女孩疑惑脸.jpg )
js 为了区分变量常量进化出来的 const ,let 你又给改回去了,开倒车属于是
heroisuseless
165 天前
@Leon6868 抱歉,之前的回答有点不太准确
在 GS 中,一个文件可以看作一个实例(大括号包裹的那种),内部定义的东西默认是 export/public 的
如果不想导出,则在变量名前加一个“.”:
```
viewList : []
.ContView() : ()
```
那么有.作为前缀的,就是不导出的,protected 的,如果是 private 的,则可以用..定义:
```
..ContView() : ()
```
nomagick
165 天前
一塌糊涂
keepRun
165 天前
有想法是好事,得鼓励。
不过是否是更好值得商榷
a132811
164 天前
这是逆 ECMA/TC39  标准而行呀。es 不是不想简化,是要兼容,而且这些年语法上渐近的精进了不少了。

Deno 走 web 标准,做得很好,但是就因为跟 node/npm 不兼容,推广起来老费劲了
changwei
164 天前
目前对于 js 改造最好的语言我觉得是 rescript ,原 po 可以参考一下他的设计
jones2000
164 天前
又是强制类型的。js 的好处就是什么类型都可以,天马行空。一上来就强制类型,直接被阉了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1010934

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX