Pick a language already!
Business, Design May 13th, 2008I have been telling myself this every single day that I have been doing software development. It seems that there will never be a shortage of zealots pushing the next big language. They will tell you that there are some great new features that you cannot live without and you’re missing the boat if you don’t change. These outside comments make it very difficult to select a language for any upcoming project that you plan on starting. No matter what the concept, whether it be a copy cat of an existing application or completely original and innovative, you will have a line out the door of people telling you why their language is the best for your application. I have one thing to say to those people that never miss an opportunity to plug their favorite language, “If you knew anything, you would realize that your language is not the best.”
If you google “programming languages,” you will be presented with over 13,300,000 results to pick from. Now I wonder why there are so many results? Well, first off it’s a generic search term, but more importantly there are hundreds of different languages to choose from. You may be able to narrow down that list to a large handful of languages that fit the bill and that is a good first step. The problems arise when people begin to nitpick about language features which turn the choice into something it does not have to be.
It is no secret with some of my past posts that I have been one of these nit picky programmers. The rails community felt my wrath when discussing the shortcomings of the Rails framework with regard to performance and scalability. The assumption I took was that startups were planning on the program being a flagship product and thus placing high priority on those two features. This definitely isn’t the case for every programming project and that means that Rails might be an excellent choice for that given project. Picking a language is never easy, but its like a band aid, “Sure its nice to go slow and be careful, but its still going to hurt like hell so just do it already!”
Picking the language honestly comes down to a few simple decisions. Most importantly, your team is in agreement with what language to use. I know this from experience because the team I am currently forming come from all different backgrounds. We constantly butt heads on what language we should use. Our tendency is to argue over which language is best for the project. It took us a long time to finally realize that a better argument is over which language is our team the most comfortable with. This argument is easily solvable in most cases and will result in a better product since it keeps a broad toolset. Forcing all of us to migrate to something like Django which none of us have ever used before may be nice in some regards, but our end product will inevitably suffer due to our limited exposure.
For the sake of argument, lets say you ended up picking Java as your teams development platform. Now you need to stick with it. With every project you are going to run into unforeseeable roadblocks and there will always be the option to say, “Well if we would have just used C#, we wouldn’t have this problem.” That argument is nonsense because even if C# can do this one thing better, there is at least one thing that Java does better. This simple fact seems to be the most difficult to learn for any developer. That is why we have language zealots who will tell you their language beats all the rest hands down, no contest. Once you pick the language, your stuck with it unless some outside force twists your arm to do otherwise and trust me it is better that way.
There will always be the next big language that everyone is scrambling to learn in hopes that it will solve all of their problems. If history has taught us anything, all these new languages allow us to do is trade one pitfall for another. Try your best not to get caught in this trap as it will stifle your projects progress. In addition, forcing yourself to stick with a language even when it hits roadblocks will make you a strong developer in the future.

Add Ri to Favorites
Follow us on Twitter
Add Ri on Facebook
See our Stumbles
See our Diggs
Check our bookmarks