写点什么

Charles Simonyi 在 JAOO 会议上揭开意图软件产品的面纱

  • 2007-09-28
  • 本文字数:1175 字

    阅读完需:约 4 分钟

在 9 月 24 日的丹麦 JAOO 会议上,Charles Simonyi(最近的太空观光者和前微软首席的 Word 和 Excel 架构师)将软件的短暂历史归纳为分离问题和解决方案间的斗争,并谈到了两种工作方式间的不匹配,它们是领域专家思考和保存他们的领域知识的工作方式与程序员必须保存并重写那些领域知识以构建为那些领域服务的软件的工作方式。

Charles 所创建的意图软件的目标是建立一个世界,在其中,领域专家可以用他们熟悉/ 顺手的符号或输入形式(方块、线条、表格、公式等等)书写需求。这个“领域代码(domain code)”被当作软件开发项目的一等公民,被用来作为产生应用其余部分的输入。业务使用者书写领域代码,开发者书写程序产生器。

这一目标已被意图软件开发成为“领域工作台”产品,该公司为此付出超过5 年的时间,该产品目前正处于非公开的beta 测试,并被一些咨询公司作为产品使用,包括Capgemini。领域工作台完全符合Martin Fowler 定义的语言工作台的全部需求。

在幕后,领域代码以一个被称为“意图树(intentional tree)”的树型结构表示,它可被投影成多重符号以便业务使用者可以用更适合他们的方式来表达领域代码。

领域代码可类比领域特定语言,但是它们是不可执行的,而且可以简单很多。因为它们不必是一个正式的可被解析的语言,它们可以有二义性。二义性的问题可使用底层领域代码(它们可捕获数据的不同子集)的多重符号/ 投影来解决——Charles 给出了一个CAD 系统的例子,在其中你可以画一个圆,但是接下来你可以在一个单独的视图中定义这个圆是什么。

Charles 邀请了 Henk Kolk(Capgemini 的技术副总裁)展示他们使用意图的工具所完成的一些工作。Henk 谈到了养老金领域,该领域的养老金计划极其复杂且还随着时间推移频繁的变化。一家公司试图为一个养老金计划建立一个通用数据模型,这耗费了他们好几年的工夫。

Henk 提到意图的工具允许那些习惯了用 Word 和 Excel 结合自制的公式 / 符号的业务专家使用相同符号来捕获复杂的养老金计划信息。下图显示了内置在领域工作台中的表格界面,它看上去与原来以 Word 作为来源的表格是一样的:

领域工作台允许代码完成,同样允许相同领域代码的多重投影:

业务使用者甚至可以在他们自己的定义旁边将可执行的测试内嵌于领域工作台中:

Henk 解释了整个工作过程:业务使用者可以很自然地参与进来,独立地开始“编码”,接下来所有的那些业务知识被保存并被用于产生应用的其余部分。Capgemini 最初试图为养老金计划构建一个通用的 DSL,但是现在使用意图后,他们打算为他们所有的养老金公司客户发布一个领域工作台。

关于意图软件目前还没有太多的报导,但是 InfoQ 将发布一个对 Charles Simonyi 的专访视频(在 JAOO 录制),对于本文中谈及的议题也会被拍成录像。一篇研究论文也会深入探究意图软件。该工具还没有一组启动的时间表,但是我们将对任何变化进行紧密跟踪报道。

2007-09-28 02:22783
用户头像

发布了 255 篇内容, 共 57.3 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

如何设计贴合业务的高性能高可用中间件系统

天天向上

架构实战营

谈谈MemoryCache原生插值方式

喵叔

28天写作 12月日更

成都成都-01

wood

成都 28天写作

「架构实战营」模块三《如何保证设计出合理的架构》作业

DaiChen

作业 模块三 「架构实战营」

瞰见 | 初创1个月就融到3亿美金,ClickHouse 你凭什么?

OpenTEKr

狄安瞰源

架构实战营模块四作业

Poplar

#架构实战营

C++对象的底层原理都在这儿了,还敢说学不会?

博文视点Broadview

模块三-学生管理系统详细架构设计

圈圈gor

架构实战 「架构实战营」

模块三作业

novoer

「架构实战营」

外包学生管理系统详细设计文档

guodongq

「架构实战营」

Kafka往事——Kafka的诞生

Kafka中文社区

FunTester2021年总结

FunTester

性能测试 测试框架 测试开发 年终总结 FunTester

架构模块三作业

holdzhu

「架构实战营」

外包学生管理系统架构设计文档

李晓笛

「架构实战营」

作业

AUV

「架构实战营」

架构实战营第三模块作业

墨宝

模块三作业——学生管理系统详情设计

黄秀明

架构实战营

040022-week8-design

InfoQ_70156470130f

netty系列之:请netty再爱UDT一次

程序那些事

Netty 程序那些事 12月日更 UDT

Java 数据持久化系列之池化技术

程序员历小冰

MySQL 持久化 28天写作 池化技术 12月日更

第三模块学习总结

Anlumina

#架构实战营

盘点 2021|自己一个人扛起了公司的半边天

liuzhen007

技术人生 盘点2021 盘点 2021

Apache 海豚调度 PMC 郭炜:开源,不是天才的甜点,而是执着者的盛宴 I OpenTEKr 大话开源 Vol.7

OpenTEKr

大话开源

[架构实战营] 模块八作业

危险游戏

架构实战营

尚硅谷喜获央广网2021年度公信力教育品牌

编程江湖

教育

“学生管理系统”架构文档

CH

#架构实战营

做个总结

为自己带盐

28天写作 12月日更

元宇宙100讲-0x011

hackstoic

元宇宙

Prometheus Exporter (三十四)JSON Exporter

耳东@Erdong

json Prometheus 28天写作 exporter 12月日更

攻略 | 如何实现一个满足业务需求的流程设计器

全象云低代码

typescript 前端 低代码 流程

移动办公时代,数智化平台如何赋能企业管理升级?

WorkPlus

Charles Simonyi在JAOO会议上揭开意图软件产品的面纱_编程语言_Floyd Marinescu_InfoQ精选文章