[linux-l] Re: groovy

Oliver Bandel oliver at first.in-berlin.de
Fr Aug 25 17:32:20 CEST 2006


On Fri, Aug 25, 2006 at 05:19:54PM +0200, Ivan F. Villanueva B. wrote:
> Am Fr, Aug 25, 2006 01:50:06 +0200, David Hansen schrieb:
> > On Thu, 24 Aug 2006 21:15:24 +0200 Ivan F. Villanueva B. wrote:
> > 
> > > Hier ein Beispiel in Groovy, um XML zu generieren. Gibt es bessere Alternativen?
> > >
> > >     import groovy.xml.MarkupBuilder;
> > >     myXMLDoc = new MarkupBuilder()
> > >     myXMLDoc.library {
> > >        section(id:"Programming") {
> > >          book(title:"Java? Groovy!", author:"Duke McCoffee", "book 1")
> > >          book("book 2", title:"The art of hacking code", author:"Uber Hacker")
> > >        }
> > >     }
> > >
> > > Ausgabe:
> > >
> > >     <library>
> > >       <section id='Programming'>
> > >         <book title='Java? Groovy!' author='Duke McCoffee'>book 1</book>
> > >         <book title='The art of hacking code' author='Uber Hacker'>book 2</book>
> > >       </section>
> > >     </library>
> > >
> > > Ich finde es genial.
> > 
> > Du bist ziemlich einfach zu beeindrucken,
> 
> das Stimmt.
> 
> > wenn du ein einfaches Zusammenfügen von Strings als "genial" empfindest.
> 

Es ist nicht genial, aber ganz praktisch.

Perl's CGI.pm macht ja auch nur sowas in der Art,
spart aber viel Tipparbeit (ok und man kann da
variablen Content nutzen, ist also doch mehr als nur
(vorgefertigten) Text-Zusammenfügen).


> Das Stimmt nicht. Jemand hat sich eine Syntax ausgedacht, die fast genauso
> aussieht, wie ihre Semantic. Das ist die Genialität.
> 
> Ein anderes Beispiel:
> 
>     class Book {
>         public title
>         public author
>     }
> 
>     myXMLDoc.library {
>         section(id:"Programming") {
>             books.each() {b ->
>                 book(title: b.title, author: b.author)
>             }
>         }
>     }

Die vielen Klammern würden mich dann  aber schon nerven.
Dann spart man ja doch nicht so viel Tipparbeit ;-)


Gruß,
   Oliver



Mehr Informationen über die Mailingliste linux-l