Recently I was pointed out by a friend that a new version of the Hibernate Reference book was released. I have already read the old version of this book, called "hibernate in action" but as it was half the size of the new book, I decided to read this one too. Even if the content is heavily based on the previous version, a lot of parts have been rewritten and it is a lot more clear now (or maybe it is just that I'm a better hibernate user...). Also, I found out that someone is finally doing a book about NHibernate:
I didn't want to talk about the book in this post. What really caught my attention was the improvements in the Java 1.5 language. I haven't coded anything in Java for quite a few years (the last version I used was 1.3). In that time the Java language didn't have any important changes but the version 1.5 has added a lot of useful things to the language: Generics, Metadata, Boxing/Unboxing, Enumerations and variable number of arguments.
Does some of this sound familiar to you? Java implemented Generics a bit before .NET Framework 2.0 but all the other stuff was already present in the first version of the .NET Framework. Also, something that I can't live without now is Properties and Java doesn't has them. Simulating properties using a get_/set_ methods is nothing more than a dirty hack (you can also simulate OOP in assembler...)
I have been an early .NET adopter since the beginning of the .NET Framework and a lot of my friends were jumping on me about that, because in their opinion Java was a lot better, the .NET Framework was crap, etc. Now they have to shut up
The local companies here are also using more .NET than Java and I have read some studies that said that both technologies are similar but usually is less expensive to develop with .NET (unfortunately I haven't found the links). Also, if you consider the new features added since the release of .NET Framework v2.0 (WPF, WF, WCF, ASP.NET AJAX Extensions, LINQ, DLINQ...) clearly Java is lagging behind .NET.