I’ve seen a lot of programming language battles. I’ve even been a part of a few. Every accomplished programmer seems to have an opinion on which language they think EVERYONE should use.
…BUT WAIT! I thought the right thing to do was to pick the language based on the project at hand. If you need string manipulation go with Perl, if you need to use objects go with one of the others. Is it a big project that requires some sort of framework. Okay, then maybe Ruby on Rails or .NET is more what you’re looking for.
The problem I’ve noticed is that no one seems to follow this strategy. Everyone has a language that they are comfortable with and so they would rather go with this language when starting a new project than waste time learning a new one that might not be what they’re looking for.
For example, I’ve talked to a lot of die hard RoR fans out there, and the first point all of them make is “Everything’s just easier in Ruby”. The reason for this, from what I can tell, is that everything follows the 3-tiered “MVC” architecture. That basically means that code for the HTML is held separate from the code that handles data which held separate from the business logic – “A place for everything and everything in its place”. On top of that there are a million-and-one different shortcuts that just make life so much easier.
But the evolutionary wheel hasn’t stopped turning because of Ruby on Rails. To someone that’s not used to the framework or the language it can be a pain in the butt to switch from file to file so many times. It still makes sense to organize it and you’re bound to switch files a lot in programming, but to someone that’s not used to the way it’s organized it can have a backwards affect. Take the endless amount of shortcuts for example. Sure, they make life easier, but only if you already know the shortcut. “I know there’s a fast way to do date validation…now I just have to spend some time looking up what that fast way is.”
I think this is the reason why people stick to the language they’re used to. I don’t mean to pick on Ruby on Rails, it’s just the language I have the most examples for. With every new language comes some frustrating times that may lead most programmers back to their native language. With every technology comes an array of shortcuts and better ways of doing things. The learning curve always gets to be frustrating because the shortcut doesn’t become short until you’ve got it down.
In my opinion the major flaw that causes people to abandon the idea that “the language should be chosen based off the project” is that the learning curve of a newer language can cause people to just go with the language they’re comfortable with instead of the one that might better fit the project.
Nice post,
I wonder though, if we use different languages based on our projects needs, we’ll eventually end up writing the same or similar things in different languages, because we wont be able facilitate code reuse between the various languages we have previously used in the last projects…
Is that right?
By: ACPRA on April 9, 2009
at 8:37 pm
Good point. Ultimately the argument that “You should pick the language based on the project” only seems to work for small projects. When you have large or medium sized projects then you have to use the same language for every feature of the project in order to maintain a well-designed system.
By: adamws on April 11, 2009
at 12:04 am