Home > Programming > How the tastes / habits change

How the tastes / habits change

Circa 2003, I was stuck in a never-ending maintenance (read DEAD) project in good old VB6, and although I had posted my resume on many job sites, obviously there weren’t any takers. While my Java brethren were happily landing plum offers. Enter .Net and my saviour C# – as soon as I came to know about this platform and language, I realized here’s my chance to enter into the mainstream world of OO languages and I chose C# over VB.Net because of my liking to Java, my familiarity with the syntax of C family of languages , as well as the stigma 😉 attached to the VB6 developers as not serious ones.

After some initial struggle, I got into a new company and a new project in .Net with C# using VS 2000. One of my close friends, Dhawal Mehta, at the very same time was working on another project in .Net using VS 2000 but in VB.Net. Sometimes we used to have discussions as to which language was better. No marks for guessing who was supporting which. I obviously, vehemently opposed VB.Net and favored C#, so Dhawal gave me a concrete example – in those days, if you declared a delegate and tried to call it asynchronously, the VS didn’t give you any intellisense in C# for the BeginInvoke or EndInvoke methods, but it used to show the intellisense for VB.Net so I told him, that it’s the IDE problem and not a language problem.

So he asked me once, why do I hate VB.Net so much. I told him plainly, that it is too ‘verbose‘. He reluctantly agreed to it. After some time, he had to work in .Net using VS 2000, but this time he had to use C# 🙂 And boy, he was hooked to it and got my point of view – VB.Net is definitely verbose he said.

Circa 2008 – I’ve been happily working on the .Net platform using C# as the language. I am reading Ayende’s book on DSLs in Boo and of course Boo is a great language. It has many advanced fundas like open compiler pipeline, which I am not thorough with yet, but have a look at the pic. below –

languagecomparison

Don’t you think even C# has a lot of noise in the form of line ending “;”, curly-braces etc. There are so many other features which make even C# look verbose in comparison to Boo. e.g. you might have seen some coding guideline (for C#) that even if there is a single line statement in the if condition, you must enclose it in { }? The oft quoted reason is that tomorrow somebody else should not accidentally put a line of code, which becomes a part of the if statement. However, Boo works on indentation – just indent the statements after “if” and they form the “if” part of the if-condition. Plain and simple. No noise. And no need for coding guideline that I mentioned above.

Definitely, it takes some time to get used to it, but just work on it for some time, and I am sure you’ll get addicted.

If you like what you’ve read then please read the Ceremony vs. Essence part of this post, and this one from Neal Ford. And just think, an important concept like design patterns (some of them) is ceremony for some folks 🙂 Similarly, this post states that Strategy pattern exists because there is no place for a function in an OO language outside of a class!!! Starting to make sense to me plus the fact that MapReduce kind of things can’t be done with plain OO.

I know the example I’ve given is too simplistic, but essentially, I’ve started feeling that I am working with a high ceremony language.  Looks like it’s definitely time for me to start exploring the dynamic or functional territories.

Advertisements
Categories: Programming
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: