Integrated Development Environment

When planning to develop an application, we have to consider the following things:

  1. Target platform.
  2. Development tool (most probably, Integrated Development Environment (IDE)).

Compared with the above two, the available set of skills is so trivial that it should be neglected in decision making because any good application developer can turn him/her from a novice to an expert in using any well developed tool in a matter of weeks.

We have no say in the target platform when we develop an application for users who have already been using certain platform.  

Sometimes we offer a product that includes both hardware and software; in this case, we have to choose the platform carefully.  It is not always the case that we choose the platform first, then the IDE.  Since the quality of IDE can affect the quality and cost of the application development significantly, sometimes we may have to settle with a not-the-best platform because it has the best IDE support.

IDE is so important that the success of some platform is attributed to its strong IDE support.  It is very common to double or triple the productivity of application development simply by switching to a better IDE.

There are some almost religious fanaticisms about some platforms, IDE's or computer languages.  This note is written with the author's constant intention of addressing issues only based on scientific and engineering common sense.

A good IDE should have the following characteristics:

  1.  Robustness.  This is much more important than anything else.  One can develop any application by purely writing text-based code without using any IDE.  IDE's offer convenience, automation of code generating resulting in much higher productivity.  However, a buggy IDE can generate problems that easily cost hours, even days to get around.  It can waste more time than it can save.  A good application developer should never touch an IDE that offers poorer productivity than using simple text editors to generate all necessary code.  Some amateur developers rely on IDE's to develop applications because they do not understand the fundamentals of the application that IDE's hide from them.
  2. High flexibility.  IDE's automate a lot of code generating, but good IDE's should never disable the access to any platform feature that can be accessed through text-based coding.  In other words, IDE's should only empower not weaken the developers.
  3. Friendly and powerful help tool. Most application development involves a large set of API that few people can learn by heart just as few people in the world can recite the entire Bible.  Looking for or up functions, constants, etc. is a major portion of development work.  Excellent help tool can boost the productivity significantly.
  4. Rich features and friendly user interface.  This is the least important one, but could make significant difference if the above characteristics are in place.  As every developer knows, it is very easy to add features, but it is much harder to add features without posing any threat to the robustness.

Looking around, we should be able to find very few good IDE's that possess the above characteristics.  If we observe and explore objectively, at this era of high information flow, we can easily pick a good IDE among the mass weeds .

 

(originally written on 7/4/02)

 


Online since 2003
Support Wikipedia

Waging Peace, Fighting Disease, Building Hope with Passion and Integrity