50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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:221169
用户头像

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

关注

评论

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

2023年 - 我的程序员之旅和成长故事

Leo

#技术人的2023总结

DevOps|研发提效-敏捷开发之任务看板

laofo

DevOps Scrum 敏捷 敏捷开发 研发效能

19 | 散列表(中):如何打造一个工业级水平的散列表

鲁米

24 | 二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树?

鲁米

app开发

Geek_8da502

搜狐智能媒体基于腾讯云大数据 EMR 的降本增效之路

腾讯云大数据

EMR

实时3D渲染-定义、原理及应用

3DCAT实时渲染

实时渲染 实时云渲染

WorkPlus企业数字化转型的超级APP,All in one完美解决方案

BeeWorks

RocketMQ 如何保证消息不丢失

是月月啊2023

RocketMQ

《钢岚》今日首发,成为首款基于HarmonyOS NEXT开发的战棋新游

最新动态

程序员职业规划-实践篇

吳先森321

程序人生 职业规划 求职

专业直观Git客户端:Fork 免激活最新

胖墩儿不胖y

git Mac软件

搭乘“低代码”快车,引领食品行业数字化转型全新升级

优秀

低代码 数字化转型

喜讯!云起无垠上榜《成长型初创企业推荐10强》

云起无垠

实用编程技巧:MybatisPlus结合groupby实现分组和sum求和

知识浅谈

MyBatisPlus Mybatis-Plus

20 | 散列表(下):为什么散列表和链表经常会一起使用

鲁米

25 | 红黑树(上):为什么工程中都用红黑树这种二叉树

鲁米

CAS原理,看这一篇就够了!

是月月啊2023

CAS Java 面试题

智能工厂关键技术应用(第一、二、三讲)

工赋开发者社区

NFT 市场开发:洞察、功能和成本综合指南

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Python终于可以操作Office了

程序员晚枫

Python 自动化办公 入门版

不同类型的IT外包服务分别适合什么企业?

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

2023工作总结怎么写?保姆级的年终总结万能公式来了,助你一臂之力!

彭宏豪95

互联网 职场 年终总结 在线白板 工作总结

Helio 升级为 LISTA DAO,开启多链时代新篇章并宣布积分空投计划

股市老人

22 | 哈希算法(下):哈希算法在分布式系统中有哪些应用

鲁米

23 | 二叉树基础(上):什么样的二叉树适合用数组来存储

鲁米

奇点云2023数智科技大会来了,“双12”直播见!

奇点云

操作系统 发布会 奇点云

SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则

小万哥

MySQL 数据库 sql 程序员 后端开发

平台工程动态 Monthly News 2023-11

杨振涛

平台 平台工程 平台工程社区 PECommunity 内部开发者社区

浅谈 SpringMVC 执行过程

是月月啊2023

Spring 配置解析

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