编程|开发者都懂的领域特定语言,连鸿蒙都开始支持DSL开发

编程|开发者都懂的领域特定语言,连鸿蒙都开始支持DSL开发

之前有几篇文章是关于太极图形编程语言的 , 虽然这个编程语言在圈里引发了不少的关注和点赞 , 不过还是有很多朋友不太了解 , 不太认可也罢 , 觉得不可思议想不通的也罢 , 甚至觉得就是Python语言 , 换皮之说的也有 , 反正评论什么的都有 。 而这款Taichi图形编程语言其实就是一种领域特定语言 。
如果了解了领域特定语言 , 可能我们也就没那么多非议了 , 至少很多问题就能一下子弄明白 。 其实领域特定语言 , 和我们平时用C语言 , JAVA或Python语言都不一样 , 它的确属于编程语言 , 然而它却不是通用编程语言 。 也就是说不具备很广泛的普适性 , 只作用于特定领域 。

虽然说起DSL , 有的了解前端的朋友会想到前端DSL , 毕竟这个词在前端社区中中频频出现 , 诸如React啦Vue啦Angular啦这些现代框架的表现层设计往往就和DSL有较强的关联 。 也正因为如此 , 华为的声明式UI框架ArkUI组已宣布鸿蒙开始支持DSL开发 。 即便DSL和前端相关性比较强 , 但也不能说DSL就局限于web前端了 。 我们学习的Taichi不就是DSL嘛 , 它可不是前端语言 。
说到底 , DSL是一种为特定领域设计的 , 具有受限表达性的编程语言 , 在前端中开发可以是它 , 在高级语言本地开发也可以是它 。 我们用的JAVA啦C啦都是通用性编程语言 , 也就是我们可以用于多个不同的领域 , 普通应用编程啦 , 图形啦什么的 , 甚至还可以用于不同的平台终端 , PC端移动端诸如此类 。 然而DSL语言则不一样 , 它不太通用 , 往往需要嵌入到其他编程语言中 , 机智客想到了寄生这个词 , 嗯 , 有点像 , 不赖 。 比如嵌入到Python语言中 。 我们学习的Taichi图形编程语言就是嵌入到Python中的DSL语言 。
DSL语言算是一种“寄生”的语言 , 也就是寄生在宿主语言中 。 比如React或者Vue支持的JSX语法都属于DSL , 这是一种DSL , “寄生”于前端HTML中 , 当然 , 由于鸿蒙新一代的UI框架ArkUI支持DSL , 所以应该就是前端领域的DSL 。 而再比如太极图形编程语言 , 这就又是一种DSL , 以我们大众开发者的视角而言 , Taichi则是“寄生”于Python脚本语言中的DSL , Python是taichi图形语言的宿主语言 。
【编程|开发者都懂的领域特定语言,连鸿蒙都开始支持DSL开发】因此 , DSL算是我们应该了解的语言 。 可能我们很多人不从事前端开发 , 也未必就一定用类似Taichi这样的图形编程语言来实现一些功能 。 不过机智客个人觉得 , 这个在以后应该会越来越多 , 当然也可能是自己孤陋寡闻了 。 不管如何吧 , 即便我们未必用它 , 不过我们多了解一点它还是不错的 。