The world of application development is vast. It encompasses everything from Web designers to Visual Basic gurus to C++ programmers. The tools used by these individuals range from simple text editors, like vi or Windows Notepad, to full-fledged IDEs, such as Microsoft Visual Studio .NET. Does the usage of such an IDE diminish a person’s programming ability?
Choose your weapon
The development community is a highly splintered group. Factions are formed based upon language used, methodology, development tools, and more. Development tools like SUN One Studio, Borland JBuilder, and Visual Studio .NET automate many tasks. These are often called wizards.
Wizards are designed to help you get up and running quickly. They simplify tasks like creating a new class, project, and even application deployment. In addition, processes such as compile and build are reduced to one click. Although this may be advantageous for an individual’s productivity, many developers view this automation as a negative.
Those developers opposed to automation see it as reducing the developer’s value and decreasing his or her technical skills. I know many Java developers who covet their text editor and the command-line software development kit (sdk). The text editor provides the ultimate control over the code they produce.
The code produced by wizards often inserts extraneous code needed by the IDE. The source can't be directly edited because the changes will be overwritten by the tool. This is especially true with tools like FrontPage, and I have had many such experiences with IBM’s VisualAge for Java.
A learning strategy
Although control is an important issue, I tend to view the degradation of technical skills as the most important point. I’ve met many .NET developers who are unaware of the ability to develop .NET applications outside Visual Studio .NET. The command line sdk is foreign to them. I utilized the command line sdk heavily when attaining my MCAD .NET status. It gave me the ultimate control over my code, and it taught me the inner workings of the .NET environment. In addition, a thorough understanding of the environment simplifies debugging and application design.
I am not firmly against using an IDE and accompanying wizards, but I suggest a thorough knowledge of the technology before relying heaving upon it. Developers should not be tied to a specific IDE; it should just be one of their tools. For example, a .NET developer should be able to survive with just the sdk—if necessary.
Of course, GUI design is one area where an IDE often excels. Would you rather lay out a Java applet with Notepad and hand-calculated coordinates or use a tool like Eclipse? The same is true of Visual Studio .NET, where style sheet coordinates are automatically calculated upon component placement.
Where do you stand?
Deciding on a development environment/strategy is a personal choice, albeit one that's often dictated by a project or employer. With that in mind, are you a fan of using an IDE and its wizards? Do you see any problems with relying too heavily on these tools? How did you approach learning your language? Post your feedback in the discussion below.