知识大全 Groovy: 沉睡的巨人

Posted 语言

篇首语:理想的书籍,是智慧的钥匙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Groovy: 沉睡的巨人相关的知识,希望对你有一定的参考价值。

Groovy: 沉睡的巨人  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  像Ruby Python 甚至Java/ECMAScript这样的动态编程语言正在受到创新开发者们的亲睐 这种趋势已变得很明显 Ruby on Rails为提高Ruby编程语言做出了很大贡献 Ajax 正将更多的兴趣集中在JavaScript 上 Python 尽管还没有找到它的发展方向 但它现在也在受到更多的关注 动态编程语言的时代即将到来 我的意思是 当动态编程语言成为一种 标准 而不是 异类 ( 例外 )的时代即将到来

  在今后的五年当中绝大多数机构将在一些企业开发中运用动态语言程序 当然不是说在所有的开发中都会用到 因为对于传统编程语言的需求总是存在的 传统编程语言可以让你在编译时就发现(程序)错误而不是在运行时才发现 但是 动态语言摆脱被称为 危险物 或 玩具 的日子指日可待

  当创新开发者蜂拥向像Ruby这样的动态语言程序时 主流的开发群体却不太倾向于采用这种语言程序 这是因为两个原因 FUD和生产率 恐惧(Fear) 不确定(Uncertainty) 及怀疑(Doubt) 即FUD 不断得阻碍著开发者试图体验和使用动态语言程序的行动 听到人们说动态语言程序是 玩具 并且有 危险 的话也是稀松平常的事 但我所发现的是 说这些话的人通常都很少有或根本没有使用过动态程序语言的经历 FUD 的出现通常只是因为 无知 然而 对于动态程序语言为什么没有被大众采用还有一个更实际的原因就是 生产率 学习一个新的编程语言平台可不是一件轻松的事 虽然学习一种语言的语法不是很难 但学习一整个新的程序库却是一项巨大的工程 例如 Java 程序师花在学习如何使用标准 enterprise 专利权及打开APIs (应用编程接口)的时间要比花在学习语法上的时间比例大很多 事实上 依我看这种时间的比例在第一年可能是 : 而在往后会是 :

  如果你花费了所有脑力去学习如何合理的使用Java 程序包以及APIs(而不是学习语法) 那么丢掉以前所学的一切而去学习一个全新平台的想法可能……似乎……有点愚蠢 或者更准确一点说 在这个全新平台的优势不是很明显的时候 这种选择是不实际的 从本质上来讲 这种选择会使一个java 开发者所了解的有关访问数据库 控制信息串 输入及输出等一切知识变得毫无用处 另外 新平台的生态系统也没有Java的坚固

  对于主流Java 开发者来说 把平台改为Ruby 那样的看起来似乎不是很理想 不要误解我的意思 我不是说Ruby不好 我也是Ruby 的一个忠实 粉丝 但是将Java 平台与 Ruby 平台做个很真实的对比 就会看到Ruby确实有所欠缺 Ruby 生态系统的规模以及APIs(库)的数量与Java 平台相比较显然逊色不少 全世界大概有 万或更多的Java开发者 而如果Ruby开发者的数量能超过 万我都会感到很惊讶 大概仅有 万人每天在 生产代码 中用到Ruby程序 当然这仅仅是一种推测 ruby开发者的真实数量也许会与推测的有所出入 但是很少有人会说ruby 开发团体的规模能与Java开发团体的规模相比

  动态程序语言(如Ruby Python JavaScript)总体来说要比传统的编程语言多产(效率高) 在我为期三年的研究中 我总是发现开发者在同一环境中使用动态语言要比使用传统语言多产近 倍 这也就是说一旦你能熟练操作一种动态语言 那你在产量和维护方面会有巨大收益 只要是清洁代码那么代码越少越容易维护 少量的清晰的代码更容易维护

  因此这就创造了类似于 第 条军规 一样的东西(So this creates a Catch of sorts) 虽然动态编程语言相比而言更多产(更高效) 但是学习一种新的平台要花费开发者很多时间 事实上就短期内而言转而学习Python或是Ruby是很不划算的 (学习它们花费的时间要比要比因为它们高效而节约的时间多很多) 另外 真的没有一种动态语言有与java一样的生态系统及基础结构 因此要采用动态语言程序就要接受资源 工具及技术人员数量较少的状况

  因此 解决这个问题的方案似乎是找到一种以Java 开发团体已熟知的平台为基础的动态语言 虽然很多动态语言是为java平台而创造其中包括 Jython JRuby BeanShell Pnut 还有其它一些动态语言 但我坚信groovy是其中最有潜力的动态编程语言 我这么说最主要的原因是groovy在java团体中正在被标准化 虽然 标准化 从来都不是衡量质量的量度器 但无奈的事实是技术不是仅靠著自身的优点而取胜的(也就说还要符合一定标准) 不难理解企业都会认为采用一种通过了标准化过程(类似于J SE 和 J EE标准化的过程)的语言要比采用没有标准化的语言舒心的多 不管是对是错 权威们决定将标准化作为接受和使用一种技术的前提

  除了正在被标准化 Groovy 还有一个作为动态语言的优点 即从它被创造之初就考虑到了java开发者们 它保留了很多为Java开发者所熟知的语法和语义 同时又具备了动态语言的特征如动态键入 mixins 以及闭包 正是这些特征使得动态语言比传统语言更多产(更有效率) 还有最后一点就是 你现在所用的所有Java APIs 在Grooy中可以用完全相同的方式被使用 Groovy可以汇编成字节代码 因此任何你能够在java中输入和访问的字节代码同样也能在Groovy中输入和访问

  Groovy 标准化(JSR )是在三年前开始的 而现在正在取得成果 对一些人来说这似乎是很长的一段时间 但有这种想法的人是不了解相关的历史 即不了解一种语言要走向成熟需要花费多长时间 例如 Ruby这个刚刚受到很多关注的编程语言已经在 open source团体中发展了 年 JavaScript 发展了 年 Python 年 事实上 Groovy 编程语言标准的发展只用了三年时间已经算是取得了很显著的成绩

  前景看起来似乎很明朗 动态语言正逐步流行起来 它们的多产性(高效率)及广泛的适用性是不容忽视的 要知道Java 平台被 多万开发者的庞大系统以及成千的工具和APIs 支持着 如果任何一个动态编程语言要成功它就得 a) 被标准化b) 受到Java 开发者的亲睐c) 容易学习以及d) 能利用现有的Java 系统 现在只有一种动态语言程序能满足这些要求 那就是Groovy

cha138/Article/program/Java/hx/201311/26478

相关参考

知识大全 安装Groovy的Eclipse插件

安装Groovy的Eclipse插件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Groovy的E

知识大全 Groovy编程动态改变对象的能力

Groovy编程动态改变对象的能力  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  从Groovy

知识大全 Groovy编程—Annotations的使用

Groovy编程—Annotations的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  从

知识大全 Groovy编程——Mixin的使用

Groovy编程——Mixin的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于Java

知识大全 Java帝国的王储——Groovy

Java帝国的王储——Groovy  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!让我们来回顾一下主

知识大全 哪里看得到《当你沉睡时》

哪里看得到《当你沉睡时》?好不好看?我几个朋友就在看,说是多好看的。关注天天韩剧公众号就行了。有人看过《当你沉睡时》吗?在哪看得到?关注天天韩剧公众号就行了啊,我朋友正在看这部剧,挺火的请问深圳在哪里

知识大全 用Groovy搞定SOAP消息

用Groovy搞定SOAP消息  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  看了YanHua同

知识大全 Groovy解惑——closure中的owner

Groovy解惑——closure中的owner  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 用Groovy实现最简单的ORM

用Groovy实现最简单的ORM  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我参加的学校创新试验

知识大全 Groovy编程用Closure替代匿名类

Groovy编程用Closure替代匿名类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于内