Tuesday, August 19, 2008



I'm busily learning C# right now, in the hopes that there's a still a job for me next week. (There's a lot of gallows humor at work right now. And to think we used to regularly make the list of best companies to work for in America.)

C#, whether Microsoft will admit it or not, is an attempt to get some of the better qualities of Java merged with many of the features of C++--although it is openly stated that C# is not upward compatible with C++. It also appears that C# is not the best choice for embedded programming that has substantial real-time requirements, because C# uses a similar garbage collection strategy to Java. There are virtues to this approach, but real-time performance isn't one of them.

I think I was the engineer who originated the aphorism "C++ is to C, as lung cancer is to lung." I don't have anything quite as pithy and cute to describe C#. Admittedly, I'm still learning it. But so far, I am not seeing any strong arguments for why C# is intrinsically a better choice than Java, at least if you have a Java compiler, not a Java interpreter. C# is different in some respects, but I'm still not seeing any enormous virtues to it over Java.

I am impressed with the Microsoft Visual Studio C# 2008 program. (You can download and use the Express version for free.) I haven't done a lot of Windows programming over the years--in fact, I think the last Windows application I wrote was for Windows 1.0. (Yes, which was followed by Windows 2.0, 3.0, 3.1, 3.11, then Windows 95.) The Visual Studio C# IDE is really slick, and I suppose that I could even, with some practice, become reasonably proficient at writing Windows applications. (You don't want to see what writing Windows apps for Windows 1.0 was like.)

No comments:

Post a Comment