This JSR has been Dormant
Reason: The Specification Lead chose to list this JSR as dormant in April 2012.
Updates to the Original JSR
The following information has been updated from the original proposal.
Specification Lead: VMWare
E-Mail Address: glaforge
Telephone Number: -
Fax Number: -
2011年03月24日:
Groovy makes writing scripts and applications for the Java Virtual Machine fast and easy. Groovy includes language features found in Python, Ruby, and Smalltalk, but uses syntax natural to developers that use the Java programming language. Because Groovy is based on Java SE and its grammar derives from the Java 5 language grammar, applications written in Groovy can use the full complement of Java SE APIs, and work seamlessly with other packages and applications written in the Java programming language.
Groovy is a complement of the Java programming language, not a replacement of it. Where the Java programming language is exacting, Groovy is expedient. Where the Java programming language is extensive, Groovy is convenient. Using Groovy, developers can take advantage of rapid application development features like those in Python and Ruby for quick application prototyping and development of scripts for the Java Virtual Machine. In addition, Groovy is useful as a shell-level scripting language that can execute other Groovy scripts as well as native operating-system scripts.
Groovy is a very "learnable" programming language that makes adoption of the Java platform by developers go more quickly and smoothly. Groovy incorporates syntax similar to the Java programming language. That developers can use familiar Java-like syntax in Groovy source code makes learning of Groovy easier, and facilitates transition from either language to the other. Groovy can be a low-threshold language for developers new to the Java platform as well as a productivity-enhancing tool for experienced Java developers.
Like the Java programming language, Groovy defines a programming language used to develop applications for the Java Virtual Machine. It is compiled into standard Java byte code that conforms to the Java Virtual Machine Specification. To the JVM, there is no difference between a class file compiled from the Groovy language and one compiled from the Java programming language.
To parse the Groovy programs, the Antlr parser generator is used, and for the generation of the bytecode, the ASM library is being used.
This specification will target the version 2.0 of the Groovy programming language. The current plan of the Open Source Groovy project development team is to release Groovy 2.0 by the end of the year 2012, and thus, we intend to release the final version of the specification by that timeframe. Before that, we're looking forward submitting an Early Draft for review around mid 2012.
Our plan is to run this JSR as an open source project, with open mail lists for the public and open access to the codebase. Further, public IRC chats, a public Wiki, and face-to-face meetings open to all interested parties will also be used to promote transparency and open communication.
That has been the practice for the Groovy open source project to this point, and the spec lead, contact and expert group members are all experienced participants and managers of successful open source projects.
Original Java Specification Request (JSR)
Identification |
Request |
Contributions
Section 1. Identification
Submitting Member: Geir Magnusson Jr.
Name of Contact Person: Richard Monson-Haefel
E-Mail Address: Richard@Monson-Haefel.com
Telephone Number: +1 612 822 1400
Fax Number:
Specification Lead: James Strachan, Richard Monson-Haefel
E-Mail Address: james_strachan@yahoo.co.uk, Richard@Monson-Haefel.com
Telephone Number: +1 612 822 1400
Fax Number:
Initial Expert Group Membership:
James Strachan
Richard Monson-Haefel
Geir Magnusson, Jr.
Supporting this JSR:
Apache Software Foundation
BEA
Richard Monson-Haefel
Thought Works Inc
Section 2: Request
This specification will standardize the Groovy programming language so that vendors can provide compliant implementations and developers will have a sanctioned scripting language they can use on the JavaTM platform.
Java 2 Platform, Standard Edition 1.4, and subsequent versions of J2SE. (desktop and server)
Note that this information has been updated from this original proposal.
This technology is not targeted for inclusion in any platform edition, although as Groovy compiles to regular bytecode for standard JVMs, Groovy can and is used on both J2SE and J2EE environments.
Note that this information has been updated since this original proposal.
No
Currently the Java community does not have a standard JCP-sanctioned agile programming language for writing scripts and applications that interoperate with the entire J2SE platform.
Groovy makes writing scripts and applications for the Java Virtual Machine fast and easy. Groovy includes language features found in Python, Ruby, and Smalltalk, but uses syntax natural to developers that use the Java programming language. Because Groovy is based on J2SE, applications written in Groovy can use the full complement of J2SE APIs, and work seamlessly with other packages and applications written in the Java programming language.
Groovy is a complement of the Java programming language, not a replacement of it. Where the Java programming language is exacting, Groovy is expedient. Where the Java programming language is extensive, Groovy is convenient. Using Groovy, developers can take advantage of rapid application development features like those in Python and Ruby for quick application prototyping and development of scripts for the Java Virtual Machine. In addition, Groovy is useful as a shell-level scripting language that can execute other Groovy scripts as well as native operating-system scripts.
Groovy is a very "learnable" programming language that makes adoption of the Java platform by developers go more quickly and smoothly. Groovy incorporates syntax similar to the Java programming language. That developers can use familiar Java-like syntax in Groovy source code makes learning of Groovy easier, and facilitates transition from either language to the other. Groovy can be a low-threshold language for developers new to the Java platform as well as a productivity-enhancing tool for experienced Java developers.
Note that this information has been updated since this original proposal.
There is currently no standard dynamic scripting language specifically designed to take full advantage of the Java platform. We have considered JSR 223, and believe that while 223 is in the same problem domain, scripting, the scope and purpose is completely different than this JSR, and there is no overlap between the work of the two EGs.
Note that this information has been updated since this original proposal.
Like the Java programming language, Groovy defines a programming language used to develop applications for the Java Virtual Machine. It is compiled into standard Java byte code that conforms to the Java Virtual Machine Specification. To the JVM, there is no difference between a class file compiled from the Groovy language and one compiled from the Java programming language.
Note that this information has been updated since this original proposal.
groovy.*
No
No
No
No
Early Draft Review before the end of 2004.
Note that this information has been updated since this original proposal.
The working group will use a variety of communication methods to develop the specifications including, but not limited to: phone conferences, e-mail, occasional face-to-face meetings, IIRC Chat, and Wiki. This JSR will be run in the same way as a conventional Open Source project, with an open mailing list for the entire Java community.
Our plan is to run this JSR as an open source project, with open mail lists for the public and open access to the codebase. Further, public IRC chats, a public Wiki, and face-to-face meetings open to all interested parties will also be used to promote transparency and open communication.
That has been the practice for the Groovy open source project to this point, and the spec lead, contact and expert group members are all experienced participants and managers of successful open source projects. Their experience includes well-known projects such as velocity, dom4j, drools, classworlds, maven, jelly, jexl, and many others.
Note that this information has been updated since this original proposal.
The RI and TCK will be delivered stand-alone.
N/A
The RI and TCK will be available free of charge in both binary and source forms. The RI and TCK will be licensed under a business-friendly, Open Source license similar to the BSD or Apache Software License that include language supporting required limitations for RIs and TCKs. Please see
http://www.apache.org/licenses/proposed/JSR-LICENSE-2.0.txt
and
http://www.apache.org/licenses/proposed/TCK-LICENSE-2.0.txt
for examples on how the necessary compatibility-enforcing requirements would be addressed.
Section 3: Contributions
The Groovy language specification will be based on work in progress on the Groovy open source project at http://groovy.codehaus.org/
The Groovy open source project ( http://groovy.codehaus.org/) will produce the RI and TCK for the Groovy JSR.