| By Java News Desk | Article Rating: |
|
| March 20, 2004 12:00 AM EST | Reads: |
28,644 |
Nonetheless he is also a co-spec lead of JSR-241, which aims to introduce "Groovy - A New Standard Programming Language for the Java Platform."
"The Groovy Programming Language proposes the standardization of a new programming language for the Java Platform," Monson-Haefel writes in his blog, "one that's on equal footing with the Java programming language."
According to Monson-Haefel Groovy is "an agile, dynamic programming language like Python, Perl and Ruby, but it's designed specifically for the Java Platform and is completely interoperable with conventional Java programs." Groovy isn't a replacement for the Java programming language, he adds, it's a complement to that language. "It fills a niche that is in demand by developers but is currently neglected by the Java Platform."
"Until now," Monson-Haefel continues, "the Java programming language has reigned supreme as the standard programming language for the Java Platform. It has served us well for close to nine years, but it cannot be all things to all people. And it shouldn't. The Java Programming language, like C++ and C#, is a strongly and statically typed programming language. While this type of language, sometimes called a 'conventional' language, is useful for solving many problems, it is not a panacea. Conventional programming languages are very exacting, meaning that you have to dot every 'i' and cross every 't' in order for the program to compile. This orthography of statically defining all the types may result in more predictable code, but it also tends to slow developers down."
His blog continues:
"An alternative to conventional programming languages are agile programming languages like Python, Ruby and Perl among others. These agile languages have long been called 'scripting' languages, but that term is not, IMO, sufficient. Many in IT perceive scripting languages as layman languages that sacrifice technical sophistication for easy of use. This may be true of some scripting languages, but it's certainly not the case with Python, Ruby or Perl. These are dynamic and powerful programming languages that happen to use less syntax to accomplish more.
To be perfectly honest, although I'm listed on the JSR as a co-spec lead, I'm a Johnny-come-lately to the Groovy bandwagon. Groovy already has a grass roots following and all the credit for the development of Groovy goes James Strachan and other contributors to the Groovy open source project. I'm not a language designer, but I understand the power that languages like Python and Ruby offer developers and I believe it is time for the Java Platform to include an agile programming language. It's this personal conviction that led me to initiate and co-develop JSR-241 with James Strachan and Gier Magnusson of Apache. My role as a specification lead is to manage the progression of this JSR through the JCP and author the Groovy Language Specification - two tasks that can be terribly distracting to those doing the really hard work of developing the JSR itself.
Groovy represents the beginning of a new era in the Java platform, one in which the Java community embraces language diversification and harnesses the full potential of the Java platform. It's the recognition that the Java is more than a programming language; it’s a robust platform upon which multiple languages can operate and co-exist. To me this has always been the unrealized promise of the Java Platform.
The Java programming language is, simply put, a convenient abstraction for the real language of the Java platform: byte code. As a user-friendly abstraction for byte code the Java programming language is powerful, but it's not omnipotent. There are circumstances in which a different language, an agile programming language, is more expressive and productive."
So why Groovy? Why not Jython or JRuby? Why not one of the dozens of other programming languages that are designed to run on the Java Virtual Machine?
Monson Haefel has the following answer: "It's my opinion, and I believe the opinion of those who support this JSR, that Groovy is the best choice because it was built from the ground up for the Java Platform and uses syntax that is familiar to Java developers, while leveraging some of best features that Python, Ruby and Smalltalk have to offer."
"Jython and JRuby are excellent examples of how existing languages can be ported to the Java platform," he continues, "but they are, after all, ports. They use syntax that is not designed with Java developers in mind and they are founded on a completely different set of code libraries. Groovy is designed for Java developers and its foundation is the standard APIs of the Java Platform."
Published March 20, 2004 Reads 28,644
Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Java News Desk
JDJ News Desk monitors the world of Java to present IT professionals with updates on technology advances, business trends, new products and standards in the Java and i-technology space.
![]() |
Dean Moses 01/11/05 03:24:15 AM EST | |||
I have set all the environment variables as directed, yet I cannot get Groovy to work on Windows 98 -- even going directy into groovy\bin I cannot run groovysh or anything else. |
||||
![]() |
efp 03/26/04 11:26:16 AM EST | |||
Wait a minute. It''s not because Sun/Netscape have subverted the meaning of "scripting language" that scripting is not useful. Scripting as in "bash" or "perl", which could be called "bash on steroids", scripting is nothing more than the fine-grained scheduling of executables. I mean, it''s always an exercise in IPC (InterProcess Communication).In its true meaning, scripting is absolutely meaningful. If you''re referring to e.g. javascript, I must say you''re right. But the true issue is that javascript is not a scripting language. It''s not an excercise on IPC. Javascript would not even be able to do it. If Groovy is meant to be a true scripting language, it should excel at IPC; and be seriously better at it, than what exists already. I doubt, however, that Groovy will be any good at IPC. Java itself, with its VM cum startup time can hardly do any IPC; so where is Groovy supposed to get its IPC talents? Nowhere. And that''s indeed where Groovy is heading. According to you "javascripting" is not programming and javascripters are not necessarily programmers. I think you are probably right. But then again, would you attack the Logo afficionados so viciously? Or Playstation2 addicts? Come on... |
||||
![]() |
Troll Fiddler 03/26/04 07:56:52 AM EST | |||
Why do we want scripting languages? If you can''t program in a real language then go and get a different job. All we do is to wander from job to job and find applications infested with scipting languages and written by unstructured, un-tutored script-kiddies. Go away and do an art degree and leave programming to programmers. Shove Groovy where Sun don''t shine. |
||||
![]() |
Bryan 03/24/04 08:50:02 PM EST | |||
I spent a good amount of time on the groovy site and wiki. It seems there are three killer features: |
||||
![]() |
Robert 03/21/04 10:43:57 PM EST | |||
I cannot seem to get it to run the groovyConsole and groovysh under WindowsXP. |
||||
![]() |
Bob 03/21/04 10:41:17 PM EST | |||
I am sorry. I don't care how good it is. I am NOT using anything called "Groovy". |
||||
![]() |
efp 03/21/04 07:48:02 PM EST | |||
Java is truly a strange beast. On the client it keeps on taking bashings, because its Swing GUIs are not attracting the crowds, to say the least. On the server, Java has erected its own playfield, in it so-called containers, where Java only wants to play with Java. To participate in a shell script, like anybody else? Can't be done: too slow and too resource-hungry. Either Java will manage to force all non-Java to cease developing interesting stuff, which sounds unlikely, or else most of the interesting action will be elsewhere, and Java won't be able to survive all by itself. You can't compare Python or Perl to Java. They can interoperate with everybody else. Java can't, and that's why it won't last. |
||||
![]() |
Ronald Newton 03/20/04 11:31:28 AM EST | |||
Seems to me that instead of shooting down Groovy or any other new language or tool, we should be looking at it for what it is--another possible option to use to solve our business problems (strategic or tactical). Who cares who "owns" Java or Groovy or makes the majority of the profit from it. Microsoft owns most desktops and despite other options, I wrote this note in IE. (And you most probably are reading it in the same.) Look at the article in the 18 March edition of this article titled "1 in 4 IT Jobs Going Offshore..." and we might all get motivated to focus on growth and delivery. A bit of perspective from someone who started on punch cards using COBOL and RPG -- the more languages you can wield, the more value you bring to the team. Regarding the 95 percent of programmers who do not know what Smalltalk or Ruby is one could say either so what (check positions listings for how infrequently one sees Smaltalk or Ruby) or too bad for them as they have become very focused -- maybe too much so for their own good. Options empower us. Me? C, C++, Basic, COBOL, Java, assembler, PL/SQL, JavaScript, VBScript, whatever is needed to deliver against the requirements and constraints of the current project. |
||||
![]() |
Enrique 03/20/04 05:14:00 AM EST | |||
After reading the Groovy users manual I think I still prefer Python. I just see Groovy syntax to be more similar to Java syntax, but I don't consider it to be an advantage. Maybe it's even dangerous to have such similiar syntaxes doing such diferent things. On the opposite many usefull Python constructs are missing and you loose the multi-platform nature of Python(Windows, Unix, Java, .Net, ...). I've never used Ruby, that some people says is really good so I can't compare with it. ¿Perl? ... well UNfortunatelly is still here with us. |
||||
![]() |
bincbom 03/19/04 11:27:24 PM EST | |||
Oh good, another programming language... |
||||
![]() |
Dan 03/19/04 04:44:08 PM EST | |||
Michael, I imagine the scripting language is mostly for Java programmers. However, this also allows Admins to utilize too if they want to switch from Perl, as this seems to be the most popular scripting language. An advantage for Groovy is that almost all desktops at a certain point will have a JVM on it, whereas Perl needs to be loaded, so scripting will be available from the get go. In addition, Java programmers will be able to look at an admins scripts and modify them. Currently, if a Java person has to support legacy Perl, then he does have to learn a new syntax. Hakl Du, I have no idea what you are talking about with Sun''s platform. It seems to me that there are a lot more companies than Sun that work on Java. I wouldn''t say Sun owns Java as IBM, BEA, HP, Oracle, and many others contribute to it. Sun seems to me to be more of a steward. Plus, the JVM from Sun is an implementation and not the "official" JVM by any means. Other companies have developed their own JVM. |
||||
![]() |
Michael Wexler 03/19/04 11:24:17 AM EST | |||
I''ll start out by saying that I am not a very good Java programmer. That''s part of why I turned to scripting languages. I don''t worry so much about which scripting language looks like Java, or which best leverages features used by either pure OO or low-impact languages (well, debatable about python, but ruby still is rare these days), I look at which one helps me get my work done fastest. Judoscript, without question, was the easiest to pick up, and is the easiest for perl programmers to transition into. http://www.judoscript.com/index.html Groovy, Jython, Pnuts, Beanshell are all either just as hard as Java, or add new syntax structures which require new learning, but still do not help me with higher level programming. The excitement around closures and other somewhat esoteric programming constructs (yes, they are esoteric; ask 100 randomly selected programmers if they have tried ruby or smalltalk and don''t be surprised at the 95 who say "Who?") is hitting the problem at the wrong point. Language constructs which are clearly designed to help solve higher level data problems, like Judoscript''s built in tabledata structure, is really where we need to look. http://www.judoscript.com/articles/misc.html#tableData I don''t need any more tools to reinvent the wheel yet again, I need a language with the wheels already in the kit instead of making "yet another file parser" or "yet another gui framework". If I more basic tools, I''ll just use Java itself; I need a scripting language to help me skip the tedious stuff... and learning yet another syntax is, yes, tedious. So, I like the thinking that people are pushing towards, but for most of us, the issue is not how we can start to include the more esoteric (if interesting) features. The useful scripting language is the one with the features which lets us get work done, glue programs, and munge data. Perl excels in this, and so does Judoscript. Haven''t seen this for Groovy (other than impressive Ant scripts) So, I say dump this JSR. If we want agile scripting languages, look for the ones that solve problems, not ones which make you learn a new programming philosophy just to get started. All in my humble and biased opinion, Michael |
||||
![]() |
JEANNIN 03/19/04 11:22:33 AM EST | |||
Smalltalk is an old language (1980) but it include virtual machine, garbage collection, exeption handler, meta model, and it''s syntax is as simple as space beetween word and dot at the end of the sentence :-) myCar start. |
||||
![]() |
Andrew Wolfe 03/19/04 09:04:54 AM EST | |||
Java is the worst possible implementation of Java! Java as a language has many flaws which compromise its readability and hence its maintenability: its heavy use of punctuation (cf. C) instead of keywords (Pascal) -- you simply can''t come into a piece of unfamiliar Java code and see what''s going on. And it continues to boggle me that not only does Java not define standard mathematical operators for the Number subclasses, it doesn''t support overloading. The ''cultural'' preference for case-distinguishing words in an identifier -- e.g., thisIsAVariable -- patently absurd from the standpoint of readability. TheAncientGreeksAndOtherLiteratePeopleUsedToWriteSentencesLikeThis -- I guess this is all kind of sour grapes. I had a job programming in Ada in the late 1980''s and, although it couldn''t be called object-oriented, the syntax was so clear that my rate of dumb coding errors went way down, the possibility of subtle syntax errors (like a semicolon after an if in Java) was eliminated, and I could return to a piece of code after six months and start in immediately. |
||||
![]() |
jkauslar 03/18/04 05:15:25 AM EST | |||
Wouldn''t it be nice to have a community supported alternative to Java? Or even a language integrated tightly into Eclipse to implement quick and dirty scripts? The language could be integrated into IDEs for faster IDE customization and extension in the same way that Emacs supports Lisp. |
||||
![]() |
angel'o'sphere 03/18/04 05:12:33 AM EST | |||
There are two things which make a HUGE difference: a) programming paradigm b) SYNTAX But what I want to say is: If you are already fluent in Java you pick up Groovy in 5 minutes. If you ever heard anything about other programming languages, notably SmallTalk, then the new features Groovy offers you are easy to learn. Did you notice that Python has a completely uncommon syntax? It has no relation to Pascal or C. It is not Fortran and not PERL, its something DIFFERENT. Please don't talk about easy or not ... alone the fact that you have to "install" Python and to learn something new while Groovy is just another library, another jar file in my class path ... OH, that's a difference. |
||||
![]() |
hakl du 03/18/04 05:10:04 AM EST | |||
Groovy seems to offer nothing that you don't already get in Python, and Python has implementations available based on C (C Python), Java/JVM (Jython), and C#/CLR (IronPython). The only thing Groovy does offer is that it is Java/JVM-specific at this point--there are no implementations based on anything other than the Java/JVM runtime. That may be a good thing for Sun--tying people even more to Sun's platform--but it sure isn't good for anybody else. |
||||
![]() |
cxvx 03/18/04 05:07:49 AM EST | |||
fyi you can create servlets using Groovy. |
||||
![]() |
Freethinker 03/18/04 05:05:14 AM EST | |||
This groovy thing looks like a really nice Smalltalk-esque language that hooks right into Java, enough to satisfy both sides of my brain. This is cool and I can benefit from this *right now* in my work. Forget Parrot or Perl 666 (heh). How come I never heard of this? |
||||
![]() |
angel'o'sphere 03/18/04 05:02:52 AM EST | |||
Groovy is an excellent language. And in case it gains momentum like one has written here, there is no doubt that people will port it to Parrot and the Python VM just like Python is ported to the JVM. |
||||
![]() |
MarkTrade 03/18/04 05:01:32 AM EST | |||
It sounds to me like anywhere you think you want this, you would be better off with actual Python. |
||||
![]() |
ObviousGuy 03/18/04 05:00:37 AM EST | |||
Having a glue language to tie together Java objects is definitely cool, as is having the scripting language compile down to bytecode for easy deployment. |
||||
![]() |
Guillaume Laforge 03/17/04 04:50:15 AM EST | |||
Wooohoooo, that''s really great news. I''m quite excited by this JSR :-) |
||||
- The Top 150 Players in Cloud Computing
- Commercial vs Federal Cloud Computing
- Why IBM’s Server Chief Got Busted
- Industry Experts Discuss the State of Cloud Computing
- Cloud Expo New York Call for Papers Deadline December 15
- Cloud Computing on Gartner's Top 10 List and SYS-CON Events' 2010 Calendar
- US Federal Government is Major Cloud Computing Innovator
- Google Wave
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Adaptivity & Cloud Computing: Exclusive Q&A with CEO Tony Bishop
- 4th International Cloud Expo: Photo Album
- The Top 150 Players in Cloud Computing
- SYS-CON.TV: Cloud Computing Expo Power Panel
- Commercial vs Federal Cloud Computing
- Why IBM’s Server Chief Got Busted
- 1st Annual GovIT Expo: Letter from the Technical Chair
- Deputy CIO of the CIA to Keynote 1st Annual GovIT Expo
- Industry Experts Discuss the State of Cloud Computing
- SOA World Power Panel on SYS-CON.TV
- CIA was Headed to an Enterprise Cloud All Along: Jill Tummler Singer
- 1st Annual Government IT Conference & Expo: Themes & Topics
- Cloud Expo New York Call for Papers Deadline December 15
- Stock in Focus: Dragon Capital
- The i-Technology Right Stuff
- Who Are The All-Time Heroes of i-Technology?
- Get the Message
- Where Are RIA Technologies Headed in 2008?
- i-Technology Viewpoint: Is Web 2.0 the Global SOA?
- i-Technology Viewpoint: Thinking Outside the VC Box
- ESB Myth Busters: 10 Enterprise Service Bus Myths Debunked
- i-Technology Viewpoint: When to Leave Your First IT Job
- SOA Web Services Edge Conference Coverage on SYS-CON.TV
- Five Reasons Why Web 2.0 Matters
- SYS-CON.TV's "SOA Web Services" and "Enterprise Open Source" Programs To Air in December
- SOA World Conference & Expo SYS-CON.TV Power Panel Live From Times Square










There are a variety of applications that supp...

























