In between, whenever I did program in C++, I felt it to be a waste of keystrokes to add semicolon in each line and I didn’t like the look of curly brackets every where. On a more serious note, coming from Basic/dBase world I felt comfortable with Visual Basic especially its support for UI, Database tasks and the availability of more high-level data types like currency, strings and more.
So when C# came, though I liked its power of expressions, my old dislike for C family of languages continued and kept me away from doing anything serious with it. And VB.NET gave me pretty much of what I wanted and also at the end of the day it was all ending up as MSIL (Intermediate Language) whether you did the initial writing in VB.NET or in C# or in PERL.NET.
But something happened yesterday that might change this. I listened to Anders Hejlsberg (Microsoft Chief Inventor of C#) talking about new features they are introducing in C# 2.0. The new features include Generics, Anonymous Methods, Nullable types, Partial Types and more. Especially I was very impressed with using Anonymous Methods in place of delegates; this can give great expressiveness with a simple syntax.
So now, I am left to thinking about switching to C#. Even if I don’t move completely, one thing is sure, I am going to give this C# 2.0 a serious try.
*1 Though C++ was the first Object Oriented Language I learned, the one I used a lot, loved and appreciated was Clipper 5.x. The code-blocks (this is the successor to Macros in dBase) in Clipper gave you great power by allowing you to have code snippets in convenient places (even in a DB) and execute them whenever you wanted it. The support the language gave you to do common DB tasks (more so it was a language integrated with a DB Engine) like Input Masks …, I can go on and on about Clipper 5.x, but let me stop my saying I still look forward to some of its power coming to new languages. Language Purists might disagree with me on the above lines, but then it is a free world :-)