Since the good old days when code was written and edited with only the most basic of text editors, the development world has come a long, long way in terms of the tools available to developers to write code more efficiently and quickly. Today there are a large number of options available, most of them falling into the category of integrated development environments, or IDEs for short. To better understand why an IDE is so-called one only needs to try writing and building a program (particularly one that requires additional external libraries, code snippets, etc.) using any of the older plain text editors.
An IDE offers built-in integration of many of the additional files, utilities and additional functions that need to be called to completely produce a piece of runtime software. Is it still possible to write code without them? Of course it is. Is it practical? Not so much if the code to be written is a serious piece of work, particularly one that is written for professional purposes, for example.
While a budding developer learns how to write her first program, usually the famous Hello World! one, she may use just a text editor, and then compile the code, link object files and produce an executable, all at the command prompt. Then, of course, comes the joy of running it and seeing it work (or not). All seems pretty simple. But as time goes by, and the programs written become more and more complex, not only would she start wishing for a few aids and conveniences, but she’d also probably start to get very confused when there are too many additional files to all put together to form the final executable. That’s where an IDE come in as a solution.
But IDEs also come in many flavours, in fact there are literally dozens of them. How does one pick one? It depends on just how many conveniences are required, and what technology support capabilities are needed.
Instead of having to source external libraries for various functions the right IDE would have the ones needed built in. This is especially useful for certain types of mathematical or statistical functions, for example.
Mobile app development support
Some IDEs offer better out-of-the-box support than others. While Eclipse and Netbeans provide support for mobile development, there are others such as PhoneGap which are exclusively meant not just for mobile apps, but for cross-platform version development. And then there’s Google’s Android Studio which is meant for apps for the Android platform only.
There are many kinds of conveniences that may be required, from the most basic ones like brace or bracket matching, to keyword and syntax flagging, and finally, full debugging support.
Automatic Code Generation
Some developers prefer to have code automatically generated from design models, which they can further edit later, but many do not, for various reasons.
IDEs like Eclipse and NetBeans provide the flexibility of allowing a large variety of opensource plugins for managing builds or makes. Some other IDEs for other languages offer less support.
These are just some of the parameters to consider before choosing an IDE. For any learner, though, it is still best to first use a simple text editor and manually debug and build code from the command line before moving on to an IDE. This experience would better help understand how programs are built so that later on one knows what to expect and is comfortable when an IDE does some of the work internally.