写点什么

外部 DSL:成功与失败的因素

  • 2008-12-23
  • 本文字数:903 字

    阅读完需:约 3 分钟

领域特定语言持续升温的背景之下, Michael Feathers 对外部 DSL 提出了一些看法,包括它们的优点、缺点,以及技术之外的成功和失败因素。他强调,外部 DSL“进一步解放了你的双手”,允许你建立“一套完整的语法,并直接根据特定领域的需要去调整”,然而更重要的是,一旦公司使用了它们,就代表着承担了一种重大的义务。并且这种“义务并不随着软件实现的完工而结束”。

由于内部 DSL 专注于特定的领域,它可能带来高昂的维护成本,因为你需要专业的技能才能应用 DSL 应对变化。同样的原因,使用外部 DSL 也使得公司的招聘变得更困难,尤其在雇用领域专家的时候更是如此:

让我们面对现实吧,如果你正在寻找工作,那么希望在简历上写点儿什么?写你熟悉一种专属于某一家公司的语言,还是一种整个业界都熟知的语言?

一个非常流行的例子是 Erlang。今天,人们正在强烈地关注 Erlang,但是我们不应该忘记,在某种程度上,它曾经被 Ericsson 放弃,因为 Ericsson 担心自身招聘和培养开发者的能力。很多人都知道 Erlang 的故事,但是他们没有意识到这种场景在业界有多普遍。我看过很多的遗留代码,其中的很大一部分代码都是用公司“自产自销”的语言开发的,而公司在支持这些代码的时候就遇到了麻烦。

因此,Michael Feathers 的建议就是,对于外部 DSL 来说,“成功的决定因素远远不止技术方面”。公司只有客观地评估了将要承担的负担,决定即使在“不利的商业环境下”也不退缩,才能真正地释放外部 DSL 的威力。除了这些以外,Feathers 还罗列了一些如何降低采纳外部 DSL 之代价的建议:

  1. 如果你创建了一套外部 DSL,那么考虑将它开源,或者至少考虑在业界形成一个围绕它的组织。这样可以在一定程度上降低维护的开销,也能避免招聘的麻烦。
  2. 如果你不能或者不愿向外界开放你的 DSL,那么也不要指望你的开发者会完全忠实地使用这些 DSL。否则,你就要为同等能力的开发者支付更多的薪水。在协商薪水的时候,公司就要为使用小众(little known)技术的开发者多付出一些了。

内嵌式 DSL 是值得考虑的另一种选择,因为根据作者的观点,内嵌式 DSL 更容易构建,并具有很多与外部 DSL 相同的优势。

查看英文原文: External DSLs: Success and Failure Factors

2008-12-23 03:492083
用户头像

发布了 53 篇内容, 共 16.4 次阅读, 收获喜欢 2 次。

关注

评论

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

区块链 Web3 项目开发

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

Python 的 PyPy 能追上 Go 的性能吗?

王中阳Go

Python Go 后端

【ACM出版|稳定EI检索|设优秀论文评选】2025年计算机技术、数字媒体与传播国际学术会议(ICCDC 2025)

搞科研的小刘

数字媒体 计算机技术 传播 信息传播模式

为什么说BeeWorks是适合企业选择的内部通讯系统?

BeeWorks

即时通讯 IM 私有化部署

大数据-124 - Flink State:Keyed State、Operator State KeyGroups 工作原理 案例解析

武子康

Java 大数据 flink spark 分布式

低代码应用授权避坑指南:创建者移交 + 开发者配置,权限边界一次分清

引迈信息

强化烟草专卖人才队伍建设:实现人员精准画像与科学考评

中烟创新

夜莺监控设计思考(一)整体定位、架构设计、单进程多进程选择、高可用设计

巴辉特

Nightingale 夜莺监控 开源监控

QMS质量管理系统:质检数据如何赋能工厂持续改进?

万界星空科技

数字化转型 智能质检 万界星空科技mes QMS 质量管理QMS系统

Playwright MCP入门指南:从零开始构建自动化测试

测试人

软件测试 playwright

鸿蒙应用开发从入门到实战(二十一):ArkUI自定义弹窗组件

程序员潘Sir

鸿蒙

首站深圳!构建AI时代数据护城河 YashanDB引领数智升级加速度

极客天地

达索多物理场有限元仿真软件Abaqus介绍-达索指定代理商思茂信息

思茂信息

仿真 abaqus 有限元分析

跨境商家最容易忽视的一步:如何判断一个国家的红人营销成熟度?

Wolink

跨境贸易 出海企业 海外营销推广 沃链Wolink 达人营销

企业如何选择局域网聊天工具?

BeeWorks

即时通讯 IM 私有化部署

黑龙江等保测评:护航企业数字化与合规运营

等保测评

智算驱动·万象更新 | 超智算AI项目路演大赛在京落幕,以赛为媒共筑产业创新生态

新消费日报

Rokid 手势识别技术深度解析:解锁 AR 无接触交互的核心秘密

鸽芷咕

AR Rokid 手势识别

亚马逊云科技 WAF 指南(十)用 Amazon Q Developer CLI 解决 DDoS 防护与 SEO 冲突问题

亚马逊云科技 (Amazon Web Services)

使用 Playwright MCP Server 为你的 AI Agent 赋予浏览器自动化能力

测试人

软件测试

哈尔滨二级等保测评:企业安全合规的关键支撑与实践方向

等保测评

【RFID隧道机哪家做得好】能高速盘点的隧道机有哪些厂家?

斯科信息

斯科信息 RFID隧道机

数字化转型下半场,企业最该补足的三大数据能力

助睿数智

数据分析 数据治理 数据集成 BI 分析工具 智能分析

AI原生应用架构

陈一之

大模型 AI应用 应用架构

线程池ThreadPoolExecutor源码深度解析|得物技术

得物技术

Java 缓存 编译器 DNS 调度

AI时代下,中国低代码市场发展的如何了?附行业研究报告

优秀

人工智能 AI 低代码

京东商品列表API助力电商竞品分析与价格监控

tbapi

京东API 京东商品列表API 京东数据采集 关键词搜索京东api

华为开发者空间携手乐知行:轻松实现智能网联小车数据可视化系

华为云开发者联盟

人工智能 华为云开发者空间

柔性LED屏幕租赁的创意应用

Dylan

广告 LED LED display LED显示屏 LED屏幕

【IEEE出版,格林威治大学主办】第六届信息科学与并行、分布式处理国际学术会议(ISPDS 2025)

搞科研的小刘

分布式处理 国际学术会议 信息科学

外部DSL:成功与失败的因素_开源_Sadek Drobi_InfoQ精选文章