Implementation dilemma

Lot of people ask me what language would I chose for implementing software. The question here is not related to language. I have learnt that one should not focus merely on the language (C++ vs. Python). Each of these language has their own role and when implemented rightly can yield a useful abstraction called “software”.

I would like to emphasise that the gory feature of abstractions in C++ vs. that of Python is REALLY uncalled for and should not really be a hinder between you and your target application. What I mean by this is that, say you are in a team of 8 team person developing the next big business suite application. If 7 people are comfortable using Java, and can develop a prototype within 2 weeks, would you invest your time teaching them C++ (Only 1 person is proficient in C++)? Probably the answer is NO and in that case, your team would happily chose Java as the implementation language and move on with it.

Now, think of the same scenario but the target application being that of embedded device and not a business application. Would you still use Java given the fact that 7/8 people are comfortable with Java? Nope. The reason is because of the target environment and the constraints that the app should have to abide by. Since it’s an embedded device, the team would have to develop a stripped down executable, something that can fit within limited amount of memory and cannot have full fledged virtual machine (Python, Java are a big nada). Would even have to get some Assembly going!

So, all these rants are basically pointing to the same fact. Why not use Java? or C++ or Haskell? They got this, that. NO! They are all just a language that promotes your thought down to some form of abstraction so that machine can understand and execute it. Hence, the next time before you ask someone, what language to you/team use, it’s very important that you consider the constraints and the target environment that your app will be running in. Remember, whatever language you use for yourself of your team, at least consider the two factors; Constraints and the target environment. Whaddaya say? 🙂

Advertisements

One Response to Implementation dilemma

  1. cslife says:

    Most programmers tend to be biased and tempted towards using their favorite programming language/languages instinctively. However as you pointed out the constraints and the problem domain that a particular language might solve better must be considered also. Also I think it is possible to write ugly code in any programming language so in a way choosing the right language might only be one side of the coin. The never ending language wars going on in the blogosphere seems to be the result of conflicting interests between those in academia versus those in commercial software development.

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 )

Google+ photo

You are commenting using your Google+ 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 )

Connecting to %s

%d bloggers like this: