I’m curious how many of you have used C#?
I started programming in Basic and C, almost 30 years ago. Since then, I’ve programmed in assembler, Pascal, Modula-2, C++, Java, Visual Basic, Java, various scripting languages, and now C#.
Before C#, I preferred Java to all the rest. Nice clean object model, managed code. I grew to dislike C++ (I switch back and forth between them depending on which project I’m working on), because of all the boilerplate crap you have to worry about. But Java has its problems as well. Trying to write performant code has always been somewhat tricky because of the Java garbage collector.
We wrote an enterprise application in Java a couple of years ago, and we’re always having to tweak garbage collector settings on each installation to get it to perform reasonably well (part of that could be the developer’s faults - there were six of us on the project, and it was our first Java project, so for all I know there could be code in there that creates giant objects and destroys them, code that does lots of string concats instead of using stringbuffers, etc). Nonetheless, performance always seems to be a challenge. And I HATE swing - perhaps the crappiest piece of UI software ever. Non-standard controls, ugly, and arcane. Yuck. Swing apps always seem to look like crap.
And don’t get me started on Applets. Our application uses a client applet, and managing that damned thing has always been a pain. We get more support calls about getting the damned applet to work than for the rest of the product combined.
Recently we began a new project in C#, and man, I just love it. It’s got all the advantages of Java with none of the weaknesses. Especially when you add in .NET 3.0, WPF, a better XML model, awesome support for Web Services, and other cool enhancements. You can just get the job done. WPF in particular is just the cat’s meow. Compared to WPF, Swing looks ancient and arcane. IMO, for the Windows platform, C#/.NET 3.0 is just in a class by itself.