C# style event handling (+delegates)
I've been using java for over 5 years now, and have recently started learning C#. I've written a small archery scoring application for my pocketpc in .net compact framework.
While learning about and writing in C# I was introduced to its event handling and delegates. At the time I remember thinking to myself: "This could get messy, using Java interfaces for event handling is much less error prone". However, not every program written in Java is a huge enterprise monolith. I see many applications on the net in Java that are relativelly quite small (and i'm not talking about applets).
I've found that event handling in Java is quite a usefull feature. The only problem is that it takes to much developer time to write and rewrite every single multicaster that is required. That kind of code almost always acts in exactly the same way: allow add/remove of listeners, upon event send event notification to listeners.
C# style events and delegates simplify this tedious work tremendously, and although I havent touched my archery scoring program in a few months, I've recently looked back on it and had no trouble understanding the way events threaded through the program.