Official announcement of Java and the GPL

Ross Werner rosswerner at gmail.com
Tue Nov 14 09:20:55 MST 2006


On Mon, 13 Nov 2006 20:06:20 -0800, Michael Torrie <torriem at chem.byu.edu>  
wrote:
> Observe the following two programs, both in gtk:
> C#:  
> http://www.gotmono.com/docs/gnome/bindings/gtk-sharp/buttonwidgetnormal.html  
> (see example 2/3 way down)

If I understand what's going on in this C# program correctly,
> /* Connect the "clicked" signal of the button to our callback */
> button.Clicked += new EventHandler (callback);

then the corresponding Java code would look more like:
button.addListener(this);

The main difference being that in C# you can pass the method-to-be-called  
("callback") directly, whereas in Java, you'd have to implement the  
appropriate Listener interface in order for Java to understand which  
method is to be called (and you'd have to name it whatever the interface  
wanted you to, rather than having the freedom to name it whatever you  
want). Also, it appears that you can pass static methods in C# as  
delegates, whereas in Java you'd have to create an inner class if you  
wanted similar functionality.

Does this sound accurate?

In any case, my guess is that Java will get delegates or something very  
similar quite soon. The lack of "function pointers" or "delegates" or  
however you want to put it has been a common nuisance of Java developers  
for years. Now that Java has competition in the way of C# and .NET, we've  
finally seen some progress in solving such annoyances.

	~ Ross



More information about the PLUG mailing list