写点什么

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

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

关注

评论

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

STM32的启动过程 — startup_xxxx.s文件解析(MDK和GCC双环境)

矜辰所致

stm32 arm 8月月更 stm32启动流程 startup_xxxx.s

Kubernetes日常故障解决

CTO技术共享

开源 签约计划第三季 8月月更

Web网页端IM产品RainbowChat-Web的v4.1版已发布

JackJiang

html5 前端 websocket 即时通讯 IM

Kubernetes 集群 Ingress 网关

CTO技术共享

开源 签约计划第三季 8月月更

JOIN查询时,我为什么建议你将小表放在前面?(NLJ,SNL,BNL算法全面解析)

董哥的黑板报

MySQL 数据库 后端 服务端 db

阿里架构师力推jvm架构解析文档,把JVM调优实战讲的明明白白

Java工程师

Java JVM GC

设备树

贾献华

8月月更

MySQL存储引擎

武师叔

8月月更

阿里SpringCloudAlibaba实战小抄(第五版)GitHub独家首发开源

冉然学Java

GitHub 开源 springcloudAlibaba spring-boot

Kubernetes 虚拟机部署弊端

CTO技术共享

开源 签约计划第三季 8月月更

Istio的扩展和定制

阿泽🧸

istio 8月月更

一个可以提前结项的敏捷项目

Bruce Talk

敏捷 Agile 敏捷项目

兆骑科创创新创业大赛承办,线上直播路演,企业孵化

兆骑科创凤阁

迄今为止见过最详细的零拷贝技术讲解

C++后台开发

后端开发 零拷贝 Linux服务器开发 C/C++后台开发 C/C++开发

1500字简述 Apache ZooKeeper 的基本原理

wljslmz

Apache zookeeper 分布式 8月月更

架构实战营毕业总结

融冰

Kubernetes 污点和容忍

CTO技术共享

开源 签约计划第三季 8月月更

IPv6地址规划

穿过生命散发芬芳

ipv6 8月月更

兆骑科创双创服务平台,创新创业高层次人才引进,投融资对接

兆骑科创凤阁

Go-Excelize API源码阅读(二)——OpenFile()

Regan Yue

Go 开源 源码刨析 源码解读 8月月更

阿里大神级 最新Elasticsearch 笔记,抓紧学起来!

冉然学Java

elasticsearch 编程 分布式 java; 程序员、

阿里巴巴2022全新出品亿级并发设计速成宝典(系统拆分,缓存,MQ,读写分离,分布分表,ES扩容应有尽有)

程序员小毕

Java 程序员 面试 后端 高并发

基于 OPLG 从 0 到 1 构建统一可观测平台实践

阿里巴巴云原生

阿里云 分布式 云原生 可观测 全链路

今天面了个腾讯拿38K出来的大佬,让我见识到了Java面试八股文的天花板

Java全栈架构师

Java 数据库 spring 程序员 面试

从没见过能把高并发拆解的这么详细!阿里巴巴这份堪称神级的“高并发”教程太香了

Java永远的神

Java 程序员 架构 面试 高并发

阿里内部高并发核心编程笔记:多线程、锁、JMM、JUC、设计模式

冉然学Java

JMM 设计模式 java; 多线程高并发

Kubernetes微服务、容器介绍

CTO技术共享

开源 签约计划第三季 8月月更

开源一夏 | 自从我使用HiFlow场景连接器后,在也不用担心成为“落汤鸡”了

叶秋学长

开源 8月月更 Hiflow

深入浅出边缘云 | 5. 运行时控制

俞凡

架构 边缘计算 网络 深入浅出边缘云

STM32+果云GA6-GPRSGSM模块+MQTT+HTTP协议连接中移OneNet上传GPS数据定位

DS小龙哥

8月月更

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