TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Why Domain Specific Languages? A Collection of Anecdotes

28 点作者 bnr超过 4 年前

3 条评论

tjchear超过 4 年前
I&#x27;m wondering if DSL could be the next evolutionary step of nocode and lowcode movement.<p>The language could be provided by the platform provider (e.g a simple language for expressing website UI&#x2F;UX), or it could be completely ad hoc, designed by a non technical user, with the help of a technical user or a graphical tool perhaps.<p>Armed with a newfound expressive language designed by themselves, a non technical user could go to town building whatever they wanted, instead of being bogged by the limitations and learning curve of a nocode tool.
qppo超过 4 年前
The middle ground of DSLs is to consider that to realize a DSL one must have an AST, and an AST is the ultimate data representation for complex business logic, allowing for (almost literally) infinite degrees of introspection or analysis, as well as synthesis of artifacts to be consumed by other tools or individuals in the business (as in compiling reports, generating spreadsheets, and all sorts of intermediary data).<p>If you can&#x27;t buy into a DSL, consider thinking about your data as an AST, and the usage of that data as compiling it for various targets.<p>Users can be hesitant to adopt DSLs. They aren&#x27;t that hesitant to adopt the extreme amounts of automation that a DSL can give you, and having a structured representation in the form of an AST reduces a lot of friction when developing business automation as compiler passes over it.
评论 #25426680 未加载
评论 #25425360 未加载
tonyedgecombe超过 4 年前
I&#x27;ve grown to dislike DSL&#x27;s, especially when it comes to building software. The main problem is I don&#x27;t spend much time in them so every time I need to make a change I&#x27;m back looking at unfamiliar code again. I&#x27;d much rather use the same language as the product and calling library functions or building an object model even if it is slightly more verbose.