注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

韩国恺的博客

hanguokai.com

 
 
 

日志

 
 

声明式语言感想  

2011-10-10 15:12:25|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
同时做过通用编程语言(Java、C++等)GUI开发和Web开发的,会发现二者差异如此之大,而他们本质上都是在做GUI。思考之后,认识到了声明式语言的作用在逐渐上升,不少人也有类似的观点。现在编程语言越来越高级,我觉得语言的最高级形式就是:只要简单清晰地描述想要的即可。

一、从Web应用的流行说起
过去大家都是用VB、VC、Java之类的通用编程语言为基础做GUI开发,而现在Web开发是以声明式内容为主(由引擎解析渲染)。

GUI可以有两种不同的实现模式:声明式和命令式。
声明式很适合GUI设计,因为GUI的显示部分完全可以用声明式的方式表达出来。
Html、Css是声明式的,只专注内容和样式。其实Html 用标签内置了常用动作,如a标签、表单提交。

ExtJS借助javascript的对象语法,使得使用起来有声明式的感觉,而在自身实现上是OO式的设计。GWT、Vaadin之类框架是想让web开发回归原来那种命令式编程模式上。但这些都没有太过流行,反倒是JQuery更加流行,JQuery的出发点是要让现有开发变得更容易,而不是去改变编程模式。

二、声明式语言和通用编程语言
除了Html、Css,SQL、正则表达式、Ant脚本、SVG等也都是声明式的语言。

通用编程语言都是图灵完备的,而声明式语言一般不是(不需要)。没有判断、分支、循环、过程等控制流处理。由于缺少这些,声明式语言更像是数据而不是语言。

声明式的特点是:描述应该是怎样的(what),而不是如何实现成那样(how)。如何实现是交给引擎来处理。

表达力也是通用编程语言所追求的,好的代码也是在追求好的表达。一定程度上说,好的表达要说清楚要做什么,而隐藏如何做的。而这点正是声明式的强项。声明式非常简单直接,表达力很强。有些语言由于其特殊的语法也可以达到类似声明式的效果如groovy、scala中的一些模块。

声明式与DSL很相关,DSL多采用声明式语法,而声明式语言的设计一般是特定于某个领域的。

OO被认为很适合GUI领域的(本质上是命令式的升级),但OO还是主要侧重如何实现,和声明式不同。
还有些语言是混合式的,既有声明式也有动作处理。

  评论这张
 
阅读(953)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018