【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

外部 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:491450
用户头像

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

关注

评论

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

『新华报』回血上岸导师[手机乐乎]

天马行空

回血上岸导师

『新华报』秒速飞艇开奖[手机乐乎]

天马行空

秒速飞艇开奖

聊聊 Kafka: Kafka 的基础架构

老周聊架构

签约计划第二季

现实扭曲力场引论

Justin

群体心理学 28天写作 玄学

『新华报』秒速飞艇开奖结果官网[手机乐乎]

天马行空

秒速飞艇开奖结果官网

架构实战营 - 毕业总结

en

#架构实战营

架构实战营 - 毕业设计

en

#架构实战营

DDD领域驱动设计落地实践系列:工程结构分层

慕枫技术笔记

后端 架构师 签约计划第二季

趣谈“链路追踪组件” Skywalking 和 PinPoint

悟空聊架构

链路追踪 Skywalking 28天写作 悟空聊架构 12月日更

一图看懂软件缺陷检查涉及的内容

Tom(⊙o⊙)

软件安全 静态代码检查

圣迪

『新华报』北京飞艇赛车微信群[手机乐乎]

天马行空

北京飞艇赛车微信群

Prometheus Exporter (十五)PostgreSQL Server Exporter

耳东@Erdong

Prometheus postgres 28天写作 exporter 12月日更

Java应用线上事故排查实战

JavaEdge

内容合集 签约计划第二季

『新华报』不建议强制上岸[手机乐乎]

天马行空

不建议强制上岸

linux重要的目录之proc和dev目录

入门小站

Linux

《深入理解JVM虚拟机》第三章 垃圾收集器与内存分配策略

Joseph295

复制流动改变世界

mtfelix

28天写作

『新华报』一分飞艇怎么操作的[手机乐乎]

天马行空

一分飞艇怎么操作的

『新华报』赛车飞艇群[手机乐乎]

天马行空

赛车飞艇群

2.《重学JAVA》--初探JAVA

杨鹏Geek

「Java 25周年」 28天写作 12月日更

新知识的地图绘制

Nydia

用错误的动作,让正确的事情发生(3/28)

赵新龙

28天写作

『新华报』重庆试试彩官方平台[手机乐乎]

天马行空

重庆试试彩官方平台

『新华报』飞艇分析工具[手机乐乎]

天马行空

飞艇分析工具

『新华报』飞艇开奖结果官网[手机乐乎]

天马行空

飞艇开奖结果官网

不懂这五项权力,做什么项目经理

Ian哥

项目管理 28天写作 五项权力

请清晰沟通选题-从策略层面定义技术演讲

将军-技术演讲力教练

举重若轻流水行云,前端纯CSS3实现质感非凡的图片Logo鼠标悬停(hover)光泽一闪而过的光影特效

刘悦的技术博客

CSS html css3 LOGO HTML5, CSS3

Prometheus Exporter (十六)Microsoft SQL Server Exporter

耳东@Erdong

microsoft Prometheus 28天写作 exporter 12月日更

在线蚂蚁文,菊花文生成工具

入门小站

工具

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