写点什么

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

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

关注

评论

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

Hello World !!!

潮湿了我押韵的心情

MySQL锁等待与死锁问题分析

Simon

MySQL 死锁

maven打包,常用启动方式

秋天

mavne

HashMap加载因子为什么是0.75?

java_wxid

Java 面试 hashmap HashMap底层原理 加载因子

单线程、多线程和协程的爬虫性能对比

小小明

Python 爬虫

iOS 面试策略之简历的准备到面试流程

iOSer

ios 面试

后端服务器网络编程之 IO 模型

Linux服务器开发

后端 网络编程 web服务器 Linux服务器开发 网络io

CloudQuery v1.3.5 上线!

BinTools图尔兹

数据库 oracle 运维 开发工具 dba

用户需求差异化需要更专业的云管理平台 | 演讲实录

BoCloud博云

云计算 多云管理

美团3面(Java后台):NIO+BIO+Zookeeper+线程池+Redis+kafka

钟奕礼

Java 编程 程序员 架构 面试

何止一个惨字形容!水滴Java面试一轮游,壮烈了,问啥啥不会,数据库血崩,我该怎么办?

钟奕礼

Java 学习 编程 程序员 面试

重点人员可视化研判分析系统搭建,可视化大屏系统

硬件测试的思考和改进:有道词典笔的高效测试探索

有道技术团队

大前端

高并发下的Redis分布式锁

java_wxid

Java redis 高并发 分布式锁 setnx

将word试卷匹配转换为结构化表格

小小明

Python word

JVM 诊断之 jps 工具使用

hepingfly

JVM jvm调优 jvm诊断 jps

Flink程序优化及反压机制

大数据技术指南

flink 3月日更

Pandas实战案例-冷空气活动寒潮级别分类

小小明

试着找一下抖音下单的用户路径地图

小匚

产品经理 产品经理训练营

又是一些小细节!3面成功入职字节跳动:算法+数据库+中间件+JVM

Java架构之路

Java 程序员 架构 面试 编程语言

Apache Iceberg学习日志

InfoQ_Springup

数据湖

2021版金三银四Java面试突击手册开源(涵盖p5-p8技术栈),“吊打”面试官的“葵花宝典”

Java 编程 程序员 架构 面试

MySQL四大属性(特性) 底层实现原理

java_wxid

Java MySQL 数据库 面试 底层实现原理

批量从Word中提取图片

小小明

Python

AI技术在小程序生态质量保障方向的落地实践

百度开发者中心

百度智能小程序

程序员:如何写出斗帝级简历?

Java架构师迁哥

KeyChrone-K8使用体验

ITCamel

爆肝一周总结了一份Java学习/面试自测指南!200+道Java最常见面试题。

Java架构之路

Java 程序员 架构 面试 编程语言

Python实现excel公式格式化工具

小小明

Python Excel

支付宝高级研发一二三面题目:CMS+CAS+线程锁+事务+雪崩+Docker

钟奕礼

Java 编程 程序员 架构 面试

字节跳动5面喜提offer!分享给朋友们面试感受

Java架构之路

Java 程序员 架构 面试 编程语言

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