<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>www.jugpadova.it: Tag Gosling</title>
    <link>http://www.jugpadova.it/articles/tag/gosling</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Java User Group [Padova]</description>
    <item>
      <title>Java 7</title>
      <description>&lt;p&gt;No, non avete letto male, non è ancora uscita la release ufficiale di Java 6, che già si pensa a cosa inserire in Java 7.&lt;/p&gt;


	&lt;p&gt;In questi giorni si è aperta nella blogosfera che ruota attorno a Java una piccola guerra di religione sulla necessità o meno di inserire le chiusure nel linguaggio.&lt;/p&gt;
&lt;p&gt;Per chi è avezzo di Smalltalk, Ruby o anche C# il concetto di chiusura è familiare. Per chi invece ha visto solo Java, il concetto è nuovo (o quasi).&lt;/p&gt;


	&lt;p&gt;Brevemente un &lt;a href="http://www.martinfowler.com/bliki/Closure.html"&gt;closure&lt;/a&gt;  è una funzione dichiarata all&amp;#8217;interno di un&amp;#8217;altra funzione della quale condivide le variabili. 
&lt;a href="http://gafter.blogspot.com/2006/09/closures-for-java-version-01.html"&gt;Neil Gafter&lt;/a&gt;  (già co-autore del Collection Framework) propone che questo tipo di costrutto sia inserito anche all&amp;#8217;interno di Java.&lt;/p&gt;


	&lt;p&gt;Il concetto non è completamente nuovo perché in Java esistono già dei costrutti simili, le classi interne anonime, che svolgono grossomodo lo stesso compito, con due differenze, secondo Gafter, importanti:&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;Le classi interne anonime possono lavorare con variabili del metodo che le contiene solo se queste sono dichiarate &lt;code&gt;final&lt;/code&gt;.&lt;/li&gt;
		&lt;li&gt;La sintassi che si ottiene con le chiusure è più semplice e pulita.&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;Vediamo un piccolo esempio del secondo punto. Supponiamo di avere un metodo che ha il compito di sottomettere un task ad un altro thread (usando &lt;code&gt;java.util.concurrent.Executor&lt;/code&gt;).&lt;/p&gt;


	&lt;p&gt;Con le classi anonime scriveremmo il seguente codice:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;void sayHelloInAnotherThread(Executor ex) {
    ex.execute(new Runnable() {
        public void run() {
            System.out.println(&amp;quot;hello&amp;quot;);
        }
    });
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;mentre con le chiusure potremmo scrivere (la sintassi è ancora oggetto di discussione):&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;void sayHelloInAnotherThread(Executor ex) {
    ex.execute(() {
        System.out.println(&amp;quot;hello&amp;quot;);
    });
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;La questione è aperta. Anche &lt;a href="http://blogs.sun.com/jag/entry/the_black_hole_theory_of"&gt;James Gosling&lt;/a&gt; ha espresso dubbi circa la vera utilità di tale feature.&lt;/p&gt;


	&lt;p&gt;Staremo a vedere.&lt;/p&gt;</description>
      <pubDate>Wed, 13 Sep 2006 12:55:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:9342b67a-9682-4e38-a335-46399c98e2e9</guid>
      <author>Andrea Nasato</author>
      <link>http://www.jugpadova.it/articles/2006/09/13/java-7</link>
      <category>Programmazione</category>
      <category>java</category>
      <category>closures</category>
      <category>Gosling</category>
      <trackback:ping>http://www.jugpadova.it/articles/trackback/4295</trackback:ping>
    </item>
    <item>
      <title>Java Conference 2006 - First day</title>
      <description>&lt;div class='broken_flickr_link'&gt;`176254354' could not be displayed because: &lt;br /&gt;File does not exist: .&lt;/div&gt;

	&lt;p&gt;I primi 6 temerari veneti sono giunti a Milano. Li vedete qui nella foto poco dopo essersi accreditati e aver preso possesso dell&amp;#8217;ormai famoso baracchino. 
Novità jug è la &lt;em&gt;fuffa maglietta (v. 2.0 beta)&lt;/em&gt; che vedete in anteprima in tutto il suo splendore.&lt;/p&gt;


	&lt;p&gt;Primo giorno di conferenza dunque. Siamo arrivati in tempo per seguire l&amp;#8217;ultimo intervento della sessione plenaria, tenuto da &lt;a href="http://en.wikipedia.org/wiki/James_Gosling"&gt;James Gosling&lt;/a&gt; , che è l&amp;#8217;ospite di eccezione di quest&amp;#8217;anno.&lt;/p&gt;


&lt;div class='broken_flickr_link'&gt;`176911053' could not be displayed because: &lt;br /&gt;File does not exist: .&lt;/div&gt;

	&lt;p&gt;Nel pomeriggio Gosling ha incontrato le community che hanno avuto il piacere di poter dialogare direttamente con il papà di Java, davanti ad una birra fresca. Il mitico &lt;a href="mailto:paolo.dona@seesaw.it"&gt;Paolo&lt;/a&gt; è anche riuscito a vendergli (5$) la nuova &lt;em&gt;fuffa maglietta&lt;/em&gt;!!!&lt;/p&gt;


	&lt;p&gt;Oggi ci aspettano le presentazioni dei nostri due membri a cui rinnoviamo &amp;#8220;l&amp;#8217;in bocca al lupo&amp;#8221;.&lt;/p&gt;
</description>
      <pubDate>Wed, 28 Jun 2006 10:50:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:672ac132-ab4f-4da7-a57c-de57c1acd045</guid>
      <author>Andrea Nasato</author>
      <link>http://www.jugpadova.it/articles/2006/06/28/java-conference-2006-first-day</link>
      <category>Eventi</category>
      <category>JavaConference</category>
      <category>Gosling</category>
      <trackback:ping>http://www.jugpadova.it/articles/trackback/1728</trackback:ping>
    </item>
  </channel>
</rss>

