Steve Cook(看到他的说话我觉得有些奇怪,一查他的身份,哦,Micorsofter,难怪)在他的blog中说到他在OOPSLA会议MDA小组上的发言,把MDA支持者分成了三个阵营:

1)UML PIM阵营:用UML来构建PIM,转换到PSM,再由PSM生成代码;
2)MOF阵营:MDA的核心是MOF,而不是UML,建模语言和语言转换都基于MOF来描述;
3)可执行UML阵营:构建UML编译器,从而使UML成为一种“编程语言”;

其实我觉得我在前面blog中的划分倒更清晰一些:

1) 不严格遵循OMG标准的;
2) 严格遵循OMG标准的;

在那篇blog中,我把它们分别叫做广义和狭义的MDA。

个人感情上,我更倾向于后者。这可能说明了我是个理想主义者。
但现实往往和理想存在差距。
标准化的好处毋庸置疑。标准化带来的重用级别的提高,是所有开发者和广泛意义上的所有开发商所乐意看到的。但具体到利益第一的厂商,大家的ROI和他的ROI,经常是不一致的。
同时,没有了羁傲不逊的厂商们的鞭策(说好听点,是积极参与或民主监督),技术的进步也难以保证(说委婉点,是动力较小)。比如,OMG官僚的作风已经让很多人难以没有微词。
这是一个矛盾。有点像民主和自由。
作为处于大厂商和大组织战场上的小小沙砾,作一个广义的MDAer,显然比狭义的MDAer更现实一些。
Stefan Tilkov已经说,他对EMF的期待,更多于MOF(这是他的blog)。

Ps:关于EMF,请看我前面的blog。

btw,微软发布了一个DSL的工具,有兴趣的去下载:Microsoft Tools for Domain Specific Languages Technology Preview。

Stefan觉得微软的DSL让人觉得奇奇怪怪的,让人感觉更象又一种编程语言。哈哈,这话深得我心,虽然我对微软的东西了解不多,但按照他们的宣传,可以对建模的细节描述得多么精确,从而保证模型和代码的同步多么的好,照目前技术的进展,我的确是有不小的怀疑。从那天看到的一点点演示来看,好像也部分证实了我的怀疑。

MDA:两种MDAer相关推荐

  1. 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题

    继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...

  2. tornado 异步两种实现形式 通过回调可以利用

    两种实现异步的方式 通过回调可以返回自己的数据

  3. Pytorch两种模型保存方式

    以字典方式保存,更容易解析和可视化 Pytorch两种模型保存方式 大黑_7e1b关注 2019.02.12 17:49:35字数 13阅读 5,907 只保存模型参数 # 保存 torch.save ...

  4. 2021年大数据Spark(九):Spark On Yarn两种模式总结

    目录 Spark On Yarn两种模式 引入 一.当一个MR应用提交运行到Hadoop YARN上时 二.当一个Spark应用提交运行在集群上时 注意 client 模式 cluster 模式 总结 ...

  5. 周一02.3运行python程序的两种方式

    一.运行python程序的两种方式 方法一:交互式:                      优点:输入一行代码立刻返回结果                       缺点:无法永久保存代码 方法 ...

  6. 单例模式的两种实现方式对比:DCL (double check idiom)双重检查 和 lazy initialization holder class(静态内部类)...

    首先这两种方式都是延迟初始化机制,就是当要用到的时候再去初始化. 但是Effective Java书中说过:除非绝对必要,否则就不要这么做. 1. DCL (double checked lockin ...

  7. 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...

  8. SQL Server中灾难时备份结尾日志(Tail of log)的两种方法

    简介 在数据库数据文件因各种原因发生损坏时,如果日志文件没有损坏.可以通过备份结尾日志(Tail of log)使得数据库可以恢复到灾难发生时的状态. 例如: 上图中.在DB_1中做了完整备份,在Lo ...

  9. SQL Server 日期和时间相关的数据类型有两种

    SQL Server 日期和时间相关的数据类型有两种: DateTime和SmallDateTime. DateTime: 需要8个字节,前4个字节用1900年1月1日以后的天数表示日期,后4个字节表 ...

最新文章

  1. 高斯混合模型的解释及Python实现
  2. 一秒完成充电,超级量子电池即将问世
  3. 安装bigsur卡在12分钟_Big Sur为什么安装不了?macOS Big Sur无法完成安装的解决办法!...
  4. 仿苹果涂鸦软件_这些iPhone自带软件,学会一个少装十几个APP,16G手机也够用
  5. 高效实用Kafka-Kafka消息处理(底层原理)
  6. 如何卸载删除内核扩展︳Mac
  7. 关于Java Web工程中web.xml文件
  8. iis7 php mysql安装包_IIS7+PHP+MYSQL安装
  9. 软件产品测试报告模板
  10. 静态电子购物网站设计回忆
  11. 关于如何创造VBS编程语言环境
  12. 别做正常的傻瓜 读书笔记
  13. RTSP支持MPEG-4格式监控
  14. 01.14_学习Java的day23(详解)
  15. 常用mysql数据库工具简介
  16. TypeError: object of type ‘type‘ has no len()
  17. java代理模式总结
  18. 黑链详解。黑链的含义
  19. Android 基于dkPlayer实现抖音列表播放
  20. 概率论与数理统计期末复习题(1)

热门文章

  1. Garrett Motion将在Auto Shanghai 2021上展示用于混合动力汽车和燃料电池汽车的下一代电动助力技术
  2. MIUI双开的权限bug
  3. android项目实战博学谷百度云,Android项目实战系列—基于博学谷(七)课程模块(下)...
  4. react-Mobx基本使用
  5. 七款代码味道识别工具【简介】
  6. Linux环境下安装Oracle 11g R2完整图文教程
  7. 各国电源插头标准和电压标准
  8. Android 统计流量数据
  9. oracle 移动分区表到指定表空间,及修改表的默认表空间
  10. 关于uniapp小程序发布新版本,小程序不及时更新问题记录