<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://groovy.dzone.com"  xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dz="http://www.developerzone.com/modules/dz/1.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
 <title>Groovy Zone - Comments for &quot; Groovy - Do More With Less (Code) - Talk Slides from Vancouver&amp;amp;#039;s 1st Groovy/Grails Meetup&quot;</title>
 <link>http://groovy.dzone.com/news/groovy-do-more-less-code-talk-</link>
 <description>Comments for &quot; Groovy - Do More With Less (Code) - Talk Slides from Vancouver&#039;s 1st Groovy/Grails Meetup&quot;</description>
 <language>en</language>
<item>
 <title>Some slide highlights:

Why</title>
 <link>http://groovy.dzone.com/news/groovy-do-more-less-code-talk-#comment-1599</link>
 <description>&lt;!--paging_filter--&gt;Some slide highlights:

&lt;h2&gt;Why Groovy? What’s wrong with Ruby (JRuby), Python (Jython), or Smalltalk (Bistro)?&lt;/h2&gt;

&lt;p&gt;Why yet another scripting language?&lt;/p&gt;

 &lt;ol&gt;&lt;li&gt;Groovy uses a Java-like syntax; easy to switch from Java to Groovy or from Groovy to Java&lt;/li&gt;
 &lt;li&gt;Groovy builds on (reuses) the Java standard class library; Ruby, Python or Smalltalk include their own batteries (that is, standard libraries)&lt;/li&gt;
 &lt;li&gt;3. Groovy compiles straight to standard Java bytecode; you can use groovyc as an alternative compiler to javac&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;What is Java?&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Java is a (systems) programming language (syntax).&lt;/li&gt;
 &lt;li&gt;Java is a “standard” class library.&lt;/li&gt;
 &lt;li&gt;Java is a bytecode runtime (virtual machine).&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;Conclusion #1, #2, #3: Groovy is Java&lt;/p&gt; 

&lt;h2&gt;Groovy is Java&lt;/h2&gt;

&lt;p&gt;Groovy Standard Class Library Types == Java Standard Class Library Types&lt;/p&gt;

&lt;ul&gt;
 &lt;li&gt;A Groovy String is a Java String:&lt;/li&gt;&lt;/ul&gt;

&lt;pre class=&quot;groovy&quot;&gt;$ hello = &quot;Hello&quot; 
$ hello.class

=&amp;gt; java.lang.String&lt;/pre&gt;
 
&lt;ul&gt;&lt;li&gt;A Groovy List is a Java List:&lt;/li&gt;&lt;/ul&gt;

&lt;pre class=&quot;groovy&quot;&gt;$ list = [ &quot;Vancouver&quot;, &quot;Ottawa&quot; ]
$ list.class

=&amp;gt; java.util.ArrayList&lt;/pre&gt;

&lt;ul&gt;&lt;li&gt;A Groovy Map is a Java Map:&lt;/li&gt;&lt;/ul&gt;

&lt;pre class=&quot;groovy&quot;&gt;$ map = [ &quot;Vancouver&quot;:&quot;British Columbia&quot;, &quot;Ottawa&quot;:&quot;Ontario&quot; ]
$ map.getClass()

=&amp;gt; java.util.LinkedHashMap&lt;/pre&gt;

&lt;h2&gt;Groovy Joint Compiler&lt;/h2&gt;

Compiles Groovy and Java code; can handle any dependency cycles

Use the &lt;code&gt;-j&lt;/code&gt; compiler switch to enable the joint compilation. Example:

&lt;code&gt;Country.groovy&lt;/code&gt;:

&lt;pre class=&quot;groovy&quot;&gt;
class Country
{
   String name
   String capital

   String toString() { return &quot;The capital of ${name} is ${capital}.&quot; }
}
&lt;/pre&gt;

&lt;code&gt;World.java:&lt;/code&gt;
&lt;pre class=&quot;java&quot;&gt;
public class World
{
  public static void main( String args[] )
  {
    Country canada = new Country();

    canada.setName( &quot;Canada&quot; );
    canada.setCapital( &quot;Ottawa&quot; );

    System.out.println( canada.toString() );
  }
}
&lt;/pre&gt;

Let’s joint compile the Groovy and Java source.

&lt;pre class=&quot;groovy&quot;&gt;
$ groovyc -j Country.groovy World.java 
&lt;/pre&gt;

That’s it. Run it.

&lt;pre class=&quot;groovy&quot;&gt;
$ java World

=&amp;gt; The capital of Canada is Ottawa.
&lt;/pre&gt;

&lt;a href=&quot;http://slideshow.rubyforge.org/groovy.html&quot;&gt;Read More...&lt;/a&gt;</description>
 <pubDate>Tue, 04 Mar 2008 00:43:03 -0500</pubDate>
 <dc:creator>geraldbauer2007</dc:creator>
 <guid isPermaLink="false">comment 1599 at http://groovy.dzone.com</guid>
</item>
</channel>
</rss>
