Many of you, particularly anyone that just finished reading my “Basic Concepts” series of posts, may be wondering what tools are best for writing a new program. In this post, I hope to paint a picture of how wide the development tool continuum really is.

A BRIEF HISTORY

Here we are in the mid-2010’s! We have access to various tools that help us easily write, debug, troubleshoot, and maintain computer programs. Of course, it wasn’t always this way. In the distant past, a stack of Hollerith (punch) cards was used to represent computer code. The position and arrangement of holes in a punched card would signify data, or commands. For a long time, mainframes were used to facilitate development. The students would submit their jobs (programs) to the mainframe, often waiting overnight for the results. Needless to say, the students either learned patience, or tried really hard not to make mistakes. As personal computing became more cost-effective and realistic, code development tools were able to reach a whole new audience: home users.

A CONTINUUM OF COMPLEXITY

Many veteran programmers prefer to use a simple text-based editor to write programs. For example, many Windows users are happy using Notepad. Many Linux users are happy using vim. Other programmers, particularly those with an advanced engineering background, tend to lean towards more visual tools such as IBM Rational Software Architect. Development teams working on enterprise solutions often use an all-in-one solution such as Eclipse or Microsoft’s Visual Studio. There are varying levels of sophistication amongst the tools used by computer programmers, software engineers, and systems analysts every day. To put it into perspective, here’s a diagram roughly depicting the continuum:

ide-continuum

As you can see, there are four key classifications in the continuum. But what do each of those mean?

PURELY TEXT-BASED

The simplest kind of editor, purely text-based editors allow you to type – and not much more. There’s no automatic indenting, no color-coding, and – most importantly – no built-in debugging. Debugging refers to a process programmers use to troubleshoot why a program is not working the way they intended it to. It usually involves stepping through areas of the code, line-by-line, and watching the output for undesired results. This helps programmers pinpoint exactly where there might be a mistake in the code. Plain text editors never have debugging built-in.

Examples: vim, notepad, nano

TEXT-BASED WITH SYNTAX HIGHLIGHTING

The phrase Syntax Highlighting refers to the color-coding of computer code. You can quickly tell, based on the color of words and symbols, what letters are part of a String variable. For example:

Notice how the actual quotation is colored slightly differently than the rest of the line. This is an example of Syntax Highlighting.

Various text editors, despite being mostly purely text-based in nature, actually offer syntax highlighting!

Examples: Notepad++, TextPad

Note: I’ve used Helios’s TextPad program since 2004, and highly recommend you do as well, at least at first. It has tools built-in that, when configured correctly, let you compile and run a Java program without leaving TextPad! Check it out at www.textpad.com.

VISUAL AND TEXT COMBINED

Not all programs these days rely on purely text-based interaction. Most modern programs have at least some degree of user interactivity with a mouse or touchscreen. This is generally referred to as a GUI, or Graphical User Interface. Programs without a GUI, such as purely text-based programs, seldom require mouse or touchscreen interaction. At least, not when compared to a full Windows application with dialog boxes, like Microsoft Paint. Remember that there are always exceptions, such as touchscreen DOS programs and ncurses-based Linux applications used in the food industry.

Application development tools have followed suit and embraced the GUI model. For the last 20 or so years, there has been a class of development tool called an Integrated Development Environment. By far, the most common example today is Microsoft’s Visual Studio. Examples in the past included Borland’s C++ and standalone versions of Visual Basic.

Integrated Development Environments allow you to, instead of just writing code, visually lay out elements out on your screen with a pointing device. Although it’s technically possible to write a Calculator program with nothing but typing, it’s a pain. It’s far easier if you’re able to drag-and-drop buttons to a form, like this:

 ubercalc

Imagine laying out all of those buttons and controls, using nothing but text and your keyboard! Again, it’s possible – in fact, this is how some people prefer to create websites – but there are visual alternatives that make editing easier and sometimes more precise. This category of development tools is, by far, the most common. Other examples include Eclipse, NetBeans, and MonoDevelop.

PURELY VISUAL

This is an odd classification of development tools, because there really aren’t many out there. Please note that “purely visual” may be a misnomer to some people, since there is always a certain element of text involved in developing a program. Even purely visual programs require you to type values for object properties, or enter some text to define a schema. However, “purely visual” tools are, by majority, visual rather than text-based.

One example you may or may not have heard of is IBM’s Rational Software Architect program. This is a program that allows you to visually model every aspect of an application solution. Typically this includes the solution’s behavioral, structural, and functional models. Each of these may include Class, User Experience, Activity, Use Case, and Workflow diagrams.

ibm-rsa

The killer feature of the program is that it then allows you to convert these diagrams into Classes, which are structures used in a program. In some cases it can even generate code. (Note that modern, higher-end versions of Visual Studio also have Architectural plugins to do this.)

Please note that even Rational Software Architect is based off of Eclipse, which I previously mentioned as falling under the “Visual and Text Combined” category. Remember that we’re dealing with a continuum, and as such, it’s very hard to completely classify a utility as falling under one, and only one, category

TRY SOME DEVELOPMENT TOOLS!

Hopefully, this post inspired you to scour the corners of the Internet and find the development tool (or fully Integrated Development Environment) that is best for you. Different projects require different tools, so you might as well try multiple tools ahead-of-time. Remember to save early and save often, as several tools (especially the purely text-based tools) tend to lack an AutoSave capability.

Please note that, although Microsoft’s Visual Studio is a paid program for professionals, Microsoft has offered an “Express Edition” since its 2005 release. This is free of charge, and allows you to get a taste of what a complete development environment has to offer. Some newer editions may have a time limitation, but it should be long enough to check out what it has to offer nonetheless. In addition, discounts are offered if you happen to be a qualified student. Never let the price of a program discourage you from evaluating its free trial!

Share

Comments are closed.

Post Navigation