[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

The Free World vs Microsoft Inc: A Closer Look At Groovy

  • To: xml-dev@l...
  • Subject: The Free World vs Microsoft Inc: A Closer Look At Groovy
  • From: Gerald Bauer <luxorxul@y...>
  • Date: Fri, 31 Oct 2003 13:53:55 -0500 (EST)

microsoft groovy
Hi,

  allow my to follow up with another commentary on
XAML - Microsoft's latest "innvention" unveiled at the
Longhorn Love-In last week in Los Angeles - that lets
you mix markup languages with classic programming
languages and declares both first-class citizen made
for each other.
  
  To see how "revolutionary" Microsoft's latest XAML
thingy is may I introduce Groovy a new dynamic
scripting language for the Java runtime cooked up by
James Strachan (of Geronimo, Jelly, dom4j and more
fame) and Bob McWhirter (of Jaxen, dom4j, codehaus and
more fame) that lets you do more with less and that
also tries to fix up XML using the headline
"TreeBasedSyntax".

   James writes on the Groovy TreeBasedSyntax Wiki
page:

We have native syntax support for List and Maps. We
should also support arbitrary nested tree structures.
e.g. DOMish APIs or Ant tasks or Jelly tags or Swing
widgets or whatever. Each may have their own
particular factory mechanism to create the tree of
objects - however they can share the same markup
syntax to define them - in a concise alternative to
XML.

In general we'd like to support a few kinds of
markup...

* generic tree structures (making groovy.lang.Node a
first class syntax like Map and List are)
* custom tree structures (beans, DOMs, Swing, Ant,
Jelly etc)
* metadata (JDK 1.5 style) 

  Now James is not all talk but also wipes up some
examples that already work with the latest Groovy CVS
snapshot:

f = frame(size:[300,300], text:'My Window') {
    label(bounds:[10,10,290,30], text:'Save changes')
    panel(bounds:[10,40,290,290]) {
        button(text:'OK', action:{ save(); close() })
        button(text:'Cancel', action:{ close() })
    }
}

 James also shows off how you can mix scripting with
markup:

f = frame(text: calculateFieldName(foo, 1234))

    // lets iterate through some map
    map = [1:"hello", 2:"there"]

    for e in map {
      label(name:e.value)
      textfield(name:e.value)
    }
}
    
  Full story @
http://wiki.codehaus.org/groovy/TreeBasedSyntax

  Any comments?

  - Gerald

PS: For more info about Groovy, check out the Java
Republic stories titled "Groovy - Jazzing Up Plain Old
Java" online @
http://viva.sourceforge.net/republic/2003/09/groovy_jazzing_up_plain_old_java.html
and "Groovy: Making Java More Funky" online @ http://viva.sourceforge.net/republic/2003/10/groovy_making_java_more_funky.html

______________________________________________________________________ 
Post your free ad now! http://personals.yahoo.ca

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.