Archive for October, 2009

Open source programming languages

October 6, 2009 Leave a comment

Till date, I’ve worked on programming languages which were not open source and were a property of some company (Microsoft, in my case – VB 6 and C#). However these days I’ve heard a lot that how important it is for a programming language to be open sourced. If you think deeply, you too might realize that there are a few advantages which cannot be had in a closed source language, e.g. –

1) How many languages can boast of being backward incompatible? Python 3 is one of them.

2) One could start using a newer version of the language whenever one felt comfortable. The choice of which version of the language to use, would not be tied to the use of a particular (newer) version of the IDE. Yes, I am talking of C# and Visual Studio. [ I understand MS wants to make money, and decision makers who, many times are non-techies, are never in a hurry to upgrade to the newer version of the IDE and therefore the language, forcing us poor developers to write delegates even though lambdas are available πŸ™‚ Most people would’ve switched to a newer compiler if the older IDE could support it. ]

3) One could vote for what features to be included. Yes, the decision might still rest with some committee of core developers of the language, but one would’ve had some say. Amazingly, I don’t understand why Java 7 won’t have closures.

So choose your language (and the platform) wisely, else you might have to code in C# 2.0 in the days of C# 4.0 (i.e. keep using VS 2005 in 2010) πŸ˜‰

Categories: Programming

Tools vs. techniques

October 6, 2009 Leave a comment

You might have read in the Alt.Net circles that the toolsΒ (like IoC, ORM etc.) aren’t as important as the techniques (SRP, separation of concerns, persistence ignorance etc.). To be frank, those guys (Ayende, Jeremy Miller etc.) are trying to save themselves from stupid arguments like “so you mean to say, if someone doesn’t use IoC, ORM etc. he’s a bad programmer”?

The fact of the matter is that it’s highly unlikely to find someone who is aware of the techniques, but haven’t used (or at least heard of) the tools. The reason is that there’s a symbiotic relationship between the tools and the techniques – sometimes the techniques lead you to the tools and sometimes the tools lead you to the techniques πŸ™‚ e.g. I became aware of persistence ignorance after reading the Hibernate book; I became aware of the term separation of concerns after encountering Castle Monorail and Windsor and reading about IoC.

So if you’ve never used an IoC container or an ORM tool, you won’t realize what you are missing until you give them a try. Not only you’ll learn the techniques, you’ll learn something more than plain Ado.Net or plain old singletons πŸ˜‰

Categories: Programming