`
netbaixc_gmail_com
  • 浏览: 55322 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于DSL(domain-specific language)的幻想

阅读更多
我在使用各种框架开发的岁月中,对编写代码有很多看法。这些看法对语言设计者或对所谓开发平台设计者而言大概就是需求了。我的这么些看法往往也是一种直观的感受,到了开发平台设计者那也许就能联想创造出一套设计概念来。千千万万的程序员,老的少的,这么多想法真就能促使着开发工具的进化。不过不是所有想法都是正确的认识。现在有些java老手们在开发的时候已经很厌烦java了,说用一行行的代码去构建信息系统实在不直接。他们说你看那一行行的代码不就是要帮助人存一下知识,哪天能查一下这些知识,信息系统搞来搞去不就是这么点事,这么简单的事还得用一行行代码表达太罗嗦也不直观。我觉得这种说法有点偏颇。

不论用什么开发语言开发的信息系统,其实里面的一行行代码并不是在纯粹描述人类的认知,不是在描述那种纯粹的业务知识,而是在从信息系统的角度出发所作的描述。你看,需求分析完了,再到设计,设计完了的结果是什么界面,点什么按钮,怎么处理数据,存起来还是发邮件等这样的未来的信息系统蓝图,这个蓝图才是一行行代码的描述目标。这样描述出来的信息系统,提供给用户的是各种功能,用户通过这提供的各种功能,才完成他们的认知方面的需求。

没错,你看任何一个java实现的业务系统,那些代码的变量的命名,都是业务上的名称,似乎就是在用机器的代码在表达人类的认知,但其实这个认知是“二阶”的,是关于信息系统蓝图的认知。

那么如果你要做一个类似人工智能系统,能输入一些人类的业务知识表达,日后机器能够给你推导出或查询出一些知识的表达视图来,则这样的系统确实能够满足人们大部分信息化的需求;可是实际客户往往不是这么单一的需求,人们想利用信息系统做事情的手段和花样多得呢,像自动发个邮件啦,或者呈现个漂亮的报表了,搞个单据审批了,这些东西层出不穷,是和“知识管理”这种功能并行的。

所以你说用代码开发出一个可以方便的描述知识并能查询能推理新知识的智能系统,甚至客户自己都可以借此系统去描述自己的认知体系,马上能得到输入查询推理的功能,那真是不错;但是你说想基于此智能系统解决客户需求而取代java或者代码开发,那你就不能停留在针对业务知识的智能系统,你得开发一个能够写机器指令的智能系统,客户自己描述想怎么借助计算机玩什么花样,即借此智能系统描述“二阶”认知,然后智能系统自动推理出能在机器上运行的指令,这样才对。

那么摆脱这个误区后,我觉得想通过DSL"取代"java的喊声更可取一些。毕竟jdk那些东西是提炼的通用的东西,我们都知道一种东西如果提炼一下就变得很灵通,但要要表达原来的样子就会要很多组合啊之类的,这就像什么阴阳八卦生万象什么的。面向一个专门的领域比如表达玩email的花样,那么就给个简单的email-DSL,比如Send{netbaixc@gmail.com,"你好"}嘿,大部分就成了,不用再去想jml包了,多省事也好读。
1
0
分享到:
评论

相关推荐

    Eclipse Modeling Project A Domain-Specific Language (DSL) Toolkit

    《Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit》是关于利用Eclipse平台进行领域特定语言(DSL)开发的重要资源。DSL是一种为特定领域或问题设计的编程语言,通常比通用编程语言更为简洁、...

    Domain Specific Languages(martin fowler)

    通过以上对《Domain Specific Languages》这本书的概述和关键知识点的详细解读,我们可以深刻地认识到DSL在软件开发中的重要性和潜力。无论是对于软件架构师、开发人员还是领域的专家来说,掌握DSL的设计和实现方法...

    Eclipse Modeling Project(A Domain-Specific Language Toolkit)

    ### Eclipse Modeling Project (EMP): A Domain-Specific Language Toolkit #### 概述 《Eclipse Modeling Project:一种领域特定语言(DSL)工具包》是Richard C. Gronback编写的一本全面介绍Eclipse Modeling ...

    Implementing Domain-Specific Languages with Xtext and Xtend(PACKT,2013)

    “Implementing Domain-Specific Languages with Xtext and Xtend” will teach you how to develop a DSL with Xtext, an Eclipse framework for implementing domain-specific languages. The chapters are like ...

    eclipse-dsl-2021-03-R-win32-x86_64.zip

    3. DSL(Domain Specific Language)支持:DSL是为特定领域定制的编程语言,可以提高开发效率,增强代码可读性。Eclipse IDE提供了对DSL开发的支持,包括创建和编辑DSL语法,生成DSL解析器和编译器,以及提供图形化...

    [Xtext Xtend] 领域特定语言 (Xtext & Xtend 实现) (英文版)

    Learn to quickly develop a domain-specific language with Xtext Implement any aspect of a DSL using Xtend, a fully featured Java-like programming language Discover how to test a DSL implementation and ...

    Implementing.Domain.Specific.Languages.with.Xtext.and.Xtend.2nd.Ed

    Leverage the latest features of Xtext and Xtend to develop a domain-specific language. Integrate Xtext with popular third party IDEs and get the best out of both worlds. Discover how to test a DSL ...

    SQL DSL (Domain Specific Language) for Kotlin and Java. Su.zip

    SQL DSL(领域特定语言)是为特定编程语言设计的、用于简化数据库操作的专用语法。在Kotlin和Java中,SQL DSL提供了一种更简洁、类型安全的方式来编写SQL查询,使得开发者可以像编写代码一样编写SQL,提高了开发效率...

    eclipse-dsl-2023-09-R-linux-gtk-x86-64.tar.gz

    Eclipse DSL(Domain Specific Language)是一款专为特定领域设计的集成开发环境(IDE),它扩展了标准Eclipse IDE的功能,使其更适应特定语言或行业的开发需求。2023-09-R版本的Eclipse DSL针对Linux平台进行了优化...

    eclipse-dsl-2023-09-R-linux-gtk-aarch64.tar.gz

    Eclipse DSL(Domain Specific Language)是Eclipse生态中的一个重要组件,专门针对特定领域语言提供支持,使得开发者可以更加高效地编写和理解代码。 标题中的"eclipse-dsl-2023-09-R-linux-gtk-aarch64.tar.gz...

    DSL-SQL源码分析

    DSL(Domain Specific Language,领域特定语言)是一种专为特定领域设计的语言,通常用于简化复杂的操作。在SQL领域,DSL-SQL允许开发者以一种更高级、更抽象的方式编写SQL语句,提高了代码的可读性和可维护性。这篇...

    Addison.Wesley.Domain.Specific.Development.with.Visual.Studio.DSL.Tools.May.2007.pdf

    《特定领域开发与 Visual Studio DSL 工具》是微软.NET开发系列书籍之一,主要介绍了如何利用 Visual Studio 的 Domain Specific Language (DSL) 工具进行高效、专业的软件开发。本书由 Steve Cook、Gareth Jones、...

    eclipse-dsl-2023-09-R-win32-x86-64.zip

    Eclipse DSL 2023-09-R-win32-x86_64.zip 是一个专为Windows操作系统设计的软件包,它包含了Eclipse IDE的特定版本,用于支持领域专用语言(Domain Specific Language, DSL)开发。这个压缩包的核心是Eclipse集成...

    敏捷开发:Domain Specific Language

    ### 敏捷开发中的领域特定语言(Domain Specific Language, DSL) #### 一、DSL概念介绍 领域特定语言(Domain Specific Language, DSL)是一种为解决某一特定领域问题而设计的计算机程序设计语言。它通常用于软件...

    PyPI 官网下载 | solr_dsl-0.0.14-py3-none-any.whl

    1. **Solr接口**:该库提供了一种Pythonic的方式来构建和执行Solr的查询语句(Solr DSL,Domain Specific Language),允许用户通过Python代码编写复杂的搜索逻辑。 2. **安装与使用**:使用pip工具,用户可以通过...

    kotlin-dsl-conventions:Gradle Kotlin DSL常规插件

    `kotlin-dsl-conventions` 是一个Gradle插件,专为使用Kotlin DSL(Domain Specific Language)编写构建脚本的开发者设计。它提供了标准和约定,以提高Gradle构建脚本的可读性、一致性和维护性。在深入探讨这个插件...

    Visual Studio DSL Tools 教材

    本教材详细介绍了如何利用Microsoft的Visual Studio DSL(Domain-Specific Language)Tools进行领域特定语言的开发。DSL是一种用于特定领域的问题表示和解决的编程语言,它允许开发者以更接近他们所处理问题的自然...

    Python库 | rita_dsl-0.3.0-py3-none-any.whl

    Rita DSL(Domain Specific Language)0.3.0便是这样一个专注于自然语言处理的库,它为Python开发人员提供了一种强大的工具,用于理解和解析特定领域的语言。 首先,让我们来理解一下什么是DSL。DSL是一种特殊类型...

Global site tag (gtag.js) - Google Analytics