... until the collector arrives ...

This "blog" is really just a scratchpad of mine. There is not much of general interest here. Most of the content is scribbled down "live" as I discover things I want to remember. I rarely go back to correct mistakes in older entries. You have been warned :)

2003-03-09

IDEs - Interactive Development Environments

There is an unfortunate trend in the computer industry to broaden the meaning of technical terms, often to the extent of completely devaluing them.  Perhaps the worst casualty is object-oriented, but interactive development environment is a close contender.

Originally, a development environment was termed interactive if it allowed the programmer to freely switch between entering code and running it, without much ado.  In particular, interactive means that there is no lengthy compile-link-load phase prior to execution, and that any code fragment can be executed, not just the designated main entrypoint for a program.  For example, LISP and classic BASIC provided these features -- albeit in text-based environments.  Interlisp and Smalltalk advanced the state of the art, allowing development to take place without ever having to halt the application under development.  Hypercard brought interactivity to a wider audience.

Alas, interactivity began to be associated with the presence of a graphical user interface.  Microsoft's Hypercard work-alike, Visual Basic, dispensed with most of the interactive features that the original BASIC had.  Borland's various Turbo products, and Microsoft's Visual C adopted the IDE moniker, even though they were all incapable of even running a code fragment, let alone altering a running application.

The 'I' in 'IDE' has become a meaningless adornment,  the adjective interactive a word that can be dropped without changing the meaning of the phrase.  The term IDE is widely used by many (including me) to simply mean 'development environment'

There is hope in sight, however.  The latest versions of Visual Studio and Eclipse promise (or deliver) the ability to "hot-patch" running applications.  They permit (almost) arbitrary functions to be called.  One can hope that soon we will have caught up with the state of the art in 1980...

Blog Archive