Intentional 软件经过了多年的开发,终于发布了其 Intentional 领域工作台(IDW)1.2 版本。JetBrains 则开源了目前处于 Beta 2 阶段的元编程系统(MPS)。
Intentional 软件的产品经理 Magnus Christerson 在 Lang.NET 讨论会上演示了IDW ,引起了强烈反响。IDW 本质上是个语言工作台,但它也是个投影编辑环境。整个工作台围绕意图树(Intentional Tree)建立,意图树是允许领域进行多重投影的语义模型,也可用来生成代码。用户可以从不同投影查看和编辑领域,每次编辑都会更新领域和其它投影。接着,模型会编译转换为代码。
IDW 主要用来让程序员为业务领域专家搭建领域特定环境。领域专家可以用他们喜欢的任何业务领域语言表述概念和规则,这些领域语言可用文本、图表、符号、表格等方式进行描述。程序员的工作则是建立理想的投影,以及生成编程语言领域代码的转化方法。领域专家会编辑领域需求,这些领域需求接着会转化为代码。IDW 目前有 C#、Java、C++、Ruby、SQL、HTML、Javascript 和 XML 的代码生成领域,用户还可以添加补充。
演示给观众留下了极深刻的印象。 Markus Voelter 说:
如果你对 DSL 感兴趣,你务必要观看这个视频。它清楚地显示了 IDW 的潜力。如果 ISC 有更多点儿的时间来润色该系统,它会成为一场变革!
Larry O’Brien 评论说:
Intentional 软件锻造了一颗银弹。
Glenn Block 评论道:
这不是个时髦的演示,我们知道,它可是能完全改变世界的。
IDW 目前尚不公开提供,Intentional 软件只和选定的客户共享 IDW,比如 Capgemini 和 ThoughtWorks 。Magnus C. 邀请感兴趣的同学联系他,但要求这些同学签署严格的保密协议。
JetBrains 发布了针对面向语言编程(PDF)风格的元编程系统。MPS 基本上也是个语言工作台。它目前处于Beta 2 阶段,预计本季度投入生产环境。MPS 是免费的,大多数源代码在Apache 2 许可下可用。
可用资源:Magnus C. 在Lang.NET 上进行的 IDW 介绍,Martin Fowler 在 Lang.NET 上对IDW 演示的报告,InfoQ 上由Magnus C. 所作的有关领域和DSL 的视频。
查看英文原文: Language Workbenches May Ultimately Completely Change the Way We Do Programming
评论