Updates

Latest Tweet



What's New?

Check out for latest innovation, a computer based training video collection


Like this Page

From Java to C#: A Developer's Guide Review by Charles Ashbacher

Good transition primer from Java to C#

When a developer is making or considering the move from Java to C#, the features of C# can be placed into three general categories. Those that are the same in both languages, those that exist in both languages but where there is a difference in behavior and those that do not exist in Java. In general, a book whose purpose is to assist the transition from Java to C# should mention most of what is in the first category, list and explain the differences and thoroughly describe those in the third category considered essential. It is not necessary to cover everything in C# that is not in Java, as some of the less widely used features can be left to more detailed language manuals.
Given this background, the author succeeds in providing an effective primer for those considering a transition from Java to C#. Since that is the premise of the book, it will be of little help if you are transitioning from C++ to C# and no help if you are trying to learn C# without knowing Java or C++. The author is quite correct in making no attempt to cover all of the features of C# where there is no comparable feature in Java.
While there are errors and some of the code examples are a bit simplistic, the first is almost impossible to overcome and the second is largely a matter of taste. What I found to be more of a problem was the large number of footnotes, many of which I considered unnecessary. The note "A sealed class in C# is a final class in Java." appeared several times, even after sealed classes were covered in the main text. A reasonable person could guess the meaning of the sealed keyword and once told, would not have to be reminded. Others would have been handled in a much better way if the wording of the text had simply been altered. At other times, the footnote is much longer than it needed to be. For example, on page 16 there is a footnote that explains the unsigned keyword in C/C++ and how it allows for the "sign bit" to be used to store larger positive integers when the unsigned keyword is used. In my opinion, over twenty words could have been cut from that note and there would have been no significant reduction in knowledge transfer.
I can recommend this book for developers experienced in Java who are considering or planning a move to C#. All others will find it of limited or no value