标题开玩笑的。在日常编程中,我常常感到愤怒。明明编程可以是一个充满创意和冒险的过程,却被设计成了工地打灰一样无聊的板砖过程。明明那么多地方可以解决重复,可以避免人犯错,但却没有底层的支持。
所以我设计了一种新编程语言,跟大家讨论一下,感兴趣的可以深入交流。这个语言的目标是统一天下所有编程语言,开玩笑叫做秦始皇语言。但其特性是元编程,所以叫做元神语言。
有以下几个核心特点:
1.和其他语言进行双向映射。举个例子帮助理解,wpf 的 xaml 会单向映射成 C#代码。
双向映射带来非常多好处:可以继承目标语言的语法检查。可以使用目标语言的库和生态,不需要重复造轮子。可以降低其他语言使用者转元神语言的成本。
2.类 Lisp 语法。更直接地编辑抽象语法树,足够抽象也是保证元神语言能够映射其他任意语言的前提。还带有一些 lisp 的功能,对代码本身进行操作。强大的表达能力可以让你的代码逐渐演变成适应项目的新语言。同时你可以直接在目标语言的基础上进行扩展。例如,不进行任何扩展,目标语言为 C#,那么元神语言写起来和 C#差不多,但却别在于,不需要等待微软更新,你也可以直接扩展语言的能力,比如给 C#添加类似于 python 的装饰器功能。
3.和编辑器的深度绑定。我希望编辑器的各种扩展开发都预置在元神语言内。像 unity 那样,能够方便地修改编辑器。对语法分析、高亮、语法树解析、语法提示等等功能都能便捷扩展。只需要编译一下,扩展即可执行。如此一来就可以对代码进行针对性的限制,避免过度灵活容易犯错。
所以我设计了一种新编程语言,跟大家讨论一下,感兴趣的可以深入交流。这个语言的目标是统一天下所有编程语言,开玩笑叫做秦始皇语言。但其特性是元编程,所以叫做元神语言。
有以下几个核心特点:
1.和其他语言进行双向映射。举个例子帮助理解,wpf 的 xaml 会单向映射成 C#代码。
双向映射带来非常多好处:可以继承目标语言的语法检查。可以使用目标语言的库和生态,不需要重复造轮子。可以降低其他语言使用者转元神语言的成本。
2.类 Lisp 语法。更直接地编辑抽象语法树,足够抽象也是保证元神语言能够映射其他任意语言的前提。还带有一些 lisp 的功能,对代码本身进行操作。强大的表达能力可以让你的代码逐渐演变成适应项目的新语言。同时你可以直接在目标语言的基础上进行扩展。例如,不进行任何扩展,目标语言为 C#,那么元神语言写起来和 C#差不多,但却别在于,不需要等待微软更新,你也可以直接扩展语言的能力,比如给 C#添加类似于 python 的装饰器功能。
3.和编辑器的深度绑定。我希望编辑器的各种扩展开发都预置在元神语言内。像 unity 那样,能够方便地修改编辑器。对语法分析、高亮、语法树解析、语法提示等等功能都能便捷扩展。只需要编译一下,扩展即可执行。如此一来就可以对代码进行针对性的限制,避免过度灵活容易犯错。