`
agile_boy
  • 浏览: 556849 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【翻译】Graeme答复:Groovy and JRuby: Enterprise-Ready?

阅读更多
    有博客报道说Groovy并不适合企业,其目的只是在散播FUD(Fear, Uncertainty, Doubt)而已. 此报道如下:
  http://www.huxili.com/index.php?cat=reports&id=ID000188
    此报道以"Groovy and JRuby: Enterprise-Ready?"为题且得出结论是:Groovy还不适合企业仅仅是因为内存泄漏。某些人并不懂语言间习惯用法差异,而简单地放在一起进行对比,当然是无稽之谈了。
    此报道并没有提供任何示例代码,更多的是通过怀疑的方式来验证其正确性,尽管如此报道还是陈述了Groovy运行在以下一些步骤的时候,会导致内存溢出:
  1. Call shell.evaluate("x = 100")
  2. Call System.gc()
  3. Thread.sleep(1000)
  4. Record used memory
  5. Repeating (1-4)

    我要猜一下他们可能用到的Groovy代码,我敢打赌这些代码应该象下面所示那样:
shell = new GroovyShell()
while(true) {
  shell.evaluate("x = 100")
  sleep(2000)
  System.gc()
}

    那么这段代码有什么问题呢?并且是怎样导致内存泄漏呢?答案很简单:每一个GroovyShell实例都有一个内部的类加载器(class
loader),而Groovy一门编译类型的语言,即便是示例中很少的一段脚本都将会被编译成类因此随着时间的流逝,类加载器将会变得越来越大。那么该
如何解决呢?请看如下代码:
while(true) {
  new GroovyShell().evaluate("x = 100")
  sleep(2000)
}

    这么做,JVM就会自动回收不再使用的GroovyShell (当然包括它的类加载器)了,加载器都被回收了,其旗下的类当然也自然被回收了。JRuby当然不存在这样的问题,因为其本身就是解释性语言。没有相关语言的习惯用法,而仅仅凭借4行脚本代码,就断定一门语言是否适合企业应用,实在是滑稽可笑!所以要提防那些未经你自己证实的所谓的官方展望报告吧!


    至此翻译已经完毕,可是所谓的报道,本人也觉得的很可笑,不过从Graeme的答复中,本人也受益匪浅,也了解到自己对Groovy掌握还是比较肤浅的,继续努力[img]../../../images/smiles/icon_biggrin.gif" alt="[/img]
    其实从报道中也可以看到Groovy正在快速的发展,当然发展过程中不可能避免的有流言蜚语,同时也说明Groovy在备受关注中。
    最后,有几个有意思的链接与大家共享一下
5
0
分享到:
评论
13 楼 bnmcvzx 2008-05-03  
引用

shell = new GroovyShell()
while(true) {
  shell.evaluate("x = 100")
  sleep(2000)
  System.gc()
}


照这样的例子java中也不会这样写的呀
12 楼 bnmcvzx 2008-05-03  
引用

<br /><pre name="code" class="java">shell = new GroovyShell()
while(true) {
  shell.evaluate("x = 100")
  sleep(2000)
  System.gc()
}
</pre>
11 楼 geszJava 2008-01-24  
找一下x:\Program Files\Macromedia\Dreamweaver 8\Configuration\DocumentTypes目录下面的MMDocumentTypes.xml文件,查找一下documenttype id="JSP",把gsp也给添加上.不过taglib是不支持的.这样只是凑合能用,完美得应该是楼主说的那样吧.
10 楼 agile_boy 2008-01-23  
to winter  :
  very cool!!thanks
9 楼 winter 2008-01-22  
引用
但是view的gsp文件无法在dreamweaver中可视化编辑,手工写views太低效了!grails还有太长的路走!


看这里 Using GroovyServer Pages in Dreamweaver

引用
We started using Grails in our current project for one of the internal web-applications. Grails uses GroovyServer Pages (gsp) for web pages and layout templates (you can also use JSP instead). As I don’t like to use Eclipse for web-design tasks, I figured out how to add gsp support to Dreamweaver (CS3).

Step 1: Add .gsp file extension
Edit the Extensions.txt file, which can be found here:
Windows: \Documents and Settings\username\Application Data\Adobe\Dreamweaver 9\Configuration
Mac OS X: /Users/username/Library/Application Support/Adobe/Dreamweaver 9/Configuration
Add a new line with GSP:Groovy Server Pages and add the gsp extension to the first line. Restart Dreamweaver, which will now recognize the .gsp files and open them in the editor.
Next, add the following code to configuration/DocumentTypes/MMDocumentTypes.xml

<documenttype id="GSP" internaltype="Dynamic" winfileextension="gsp" macfileextension="gsp" file="Default.gsp" writebyteordermark="false">
<TITLE>
<MMString:loadString id="mmdocumenttypes_70" />
</TITLE>
<description>
<MMString:loadString id="mmdocumenttypes_71" />
</description>
<dtdcontext>html</dtdcontext>
</documenttype>


Adjust the id values if necessary. In the folder NewDocuments create a Default.gsp file. Gsp files are not being shown as option in the new files dialog yet, so the Default file is not being used. If someone knows how to do this, please let me know.
It takes adobe a couple of pages to explain it all in detail: http://www.adobe.com/go/16410

Step 2: Add the gsp tag library
Download the GspTagLibrary for Dreamweaver, unpack it and copy the gsp folder to the TagLibraries folder within the configuration folder. Add the text of gspTagLibrary.vtm to the existing TagLibraries.vtm file.

Step 3: Enable code coloring
Open CodeColoring.xml (Configuration/CodeColering) in an editor and add gsp to the doctypes attribute of the entries for Html, JavaScript and CSS. Restart Dreamweaver.

Next step could be to add a special color schema for gsp tags and groovy when using scriptlets and maybe one day I will have time to learn how to write Dreamweaver Extensions, which would hopefully make it possible to do all of this automatically.


8 楼 winter 2008-01-22  
要是非得在DW编辑,把gsp临时改成jsp。。。。。。。
7 楼 魔力猫咪 2008-01-22  
最近正在看Grails。书是从网上下来的,虽然旧了点,但还是很不错的。用Grails快速开发好舒服。
6 楼 lordhong 2008-01-22  
我喜欢groovy,2008年喜欢可以多多用上
5 楼 murainwood 2008-01-22  
   Grails,半敏不捷
4 楼 agile_boy 2008-01-21  
qieren 写道
groovy in action还会有中文版吗?...英语太烂...都等了好久了

如果此Groovy in Action中文版公告准确的话,应该快了。
让我们期待吧,你如果有什么因为可以到GoG的圈子里提问。
3 楼 qieren 2008-01-21  
groovy in action还会有中文版吗?...英语太烂...都等了好久了
2 楼 agile_boy 2008-01-21  
gsp跟jsp是一脉相通的,如果喜欢拖拽,可以尝试JSF啊
1 楼 ourfirebird 2008-01-21  
但是view的gsp文件无法在dreamweaver中可视化编辑,手工写views太低效了!grails还有太长的路走!

相关推荐

    Beginning Groovy and Grails, From Novice to Professional

    本书《Beginning Groovy and Grails, From Novice to Professional》由Christopher M. Judd、Joseph Faisal Nusairat 和 James Shingler共同编写,并得到了Grails项目负责人Graeme Rocher的前言推荐。本书主要面向...

    java 数据挖掘,pdf,2006

    - 作者:Graeme C. Simsion 和 Graham C. Witt。 - 提供了数据模型设计的核心概念和方法。 - 对于初学者来说是一本很好的入门书籍。 14. **Location-Based Services** - 作者:Jochen Schiller 和 Agnès ...

    J1_2006_Grails_PowerPoint_v1.ppt

    在2006年的JavaOneSM会议上,Grails的 Managing Director Graeme Rocher分享了如何利用Grails进行敏捷Web应用开发。这场演讲的主要目标是向参与者展示如何利用Grails的特性实现快速开发。 1. **Grails的核心理念** ...

    php+mysql 三日通

    原作者:Graeme Merrall --------------------------------------------------------------------------------  本文介绍堪称Web数据库黄金组合的PHP/MySQL如何构筑一个网络数据库应用的方法,PHP是一个类似...

    Grails in Action - Presentation

    - **历史沿革**:2005年,Graeme Rocher、Steven Devijsver和Guillaume Laforge合作推出了Grails。 - **开源许可**:Grails采用Apache许可证发布。 - **目标定位**:简化开发者的日常生活。 #### Grails技术栈 从...

    Chapter_00_pdf_format2

    Martin 的《Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition》。 4. Michael P. Oakes 的《Statistics for Corpus ...

    The.Definitive.Guide.to.Grails.Second.Edition.2009

    此书由Graeme Rocher和Jeff Brown合著,旨在为读者提供深入理解Grails框架所需的知识和技术。下面我们将从几个方面详细探讨与这本书相关的知识点。 ### Grails框架简介 Grails是一个开源的应用程序框架,基于...

    光电二极管跨阻放大器:此脚本允许设计人员计算光电二极管transim 中的带宽和噪声规格-matlab开发

    % 计算出自 Jerald Graeme 的书 [1]。 % 用户可以从供应商处提供自己的电子元件% 制造商数据表。 % % 用法: % 用于光电二极管跨阻中的频率和噪声分析% 放大器开发。 % % 需要专门的 Matlab 工具箱: % 没有任何...

    Jerald G. Graeme_Amplifier Applications of Op Amps.pdf

    Jerald G. Graeme_Amplifier Applications of Op Amps.pdf

    The Definitive Guide to Grails Second Edition (Apress 2009)

    - **作者**:本书由Grails项目组组长Graeme Rocher和Jeff Brown共同编写,这两位作者不仅是Grails的主要贡献者,也是Groovy社区的重要成员。 - **内容覆盖**:本书全面介绍了Grails的所有功能,包括但不限于数据访问...

    Durbin et al - Biological Sequence Analysis (CUP 2002) no OCR

    - **Graeme Mitchison**:英国医学研究委员会分子生物学实验室的研究人员。 #### 五、概率模型详解 ##### 隐马尔可夫模型(HMMs) 隐马尔可夫模型是一种统计模型,它用来描述一个含有未观测状态的系统如何随时间...

    PHP_MySQL_Tutorial.zip_Everything and More_KIWI

    According to Graeme, PHP and MySQL are the world s best combination for creating data-driven sites. In the first installment of this three-lesson tutorial, our Kiwi guide covers everything you need ...

    Learning to Rank for Information Retrieval and Natural Language Processing

    - **Learning to Rank for Information Retrieval and Natural Language Processing**:该标题表明本书主要关注学习排序(Learning to Rank)技术在信息检索(Information Retrieval, IR)和自然语言处理(Natural ...

    DB2_SQLCOOKBOOK

    - **部分文档内容**:文档由Graeme Birchall编写于2002年8月20日,针对的是DB2 UDB V8.1版本。此书旨在提供关于DB2 SQL使用的详细指导,包括常见问题的解决方案、最佳实践等。 #### 二、重要声明与版权信息 - **...

Global site tag (gtag.js) - Google Analytics