.

Salon











T A B L E__T A L K

Should companies be allowed to track their employees' Web surfing? Weigh in on employee privacy vs. corporate rights in the Digital Culture area of Table Talk

- - - - - - - - - -

R E C E N T L Y

Maximum confusion
By Janelle Brown
On the Web, a typo throws frat boys and feminists onto each other's turf
(05/08/98)

Let's Get This Straight
By Scott Rosenberg
Now that they're sundered from the magazine, whither Wired's Web sites?
(05/08/98)

Wired nests with Condé Nast
By Lori Leibovich
But will the magazine's new owners dull its edge?
(05/08/98)

Let's Get This Straight
By Scott Rosenberg
Gates tells the world that what's good for Microsoft is good for the country
(05/07/98)

Folk rock of ages
By Geoff Edgers
Roger McGuinn's Web site is an experiment in
communal musical memory (05/07/98)

- - - - - - - - - -

BROWSE THE
21ST FEATURE ARCHIVES

- - - - - - - - - -


 THE DUMBING-DOWN OF PROGRAMMING | PAGE 2 OF
2

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

My Computer. This is the face offered to the world by the other machines in the office. My Computer. I've always hated this icon -- its insulting, infantilizing tone. Even if you change the name, the damage is done: It's how you've been encouraged to think of the system. My Computer. My Documents. Baby names. My world, mine, mine, mine. Network Neighborhood, just like Mister Rogers'.

On one side of me was the Linux machine, which I'd managed to get booted from a floppy. It sat there at a login prompt, plain characters on a black-and-white screen. On the other side was a Windows NT system, colored little icons on a soothing green background, a screenful of programming tools: Microsoft Visual C++, Symantec Visual Cafe, Symantec Visual Page, Totally Hip WebPaint, Sybase PowerBuilder, Microsoft Access, Microsoft Visual Basic -- tools for everything from ad hoc Web-page design to corporate development to system engineering. NT is my development platform, the place where I'm supposed to write serious code. But sitting between my two machines -- baby-faced NT and no-nonsense Linux -- I couldn't help thinking about all the layers I had just peeled off the Linux box, and I began to wonder what the user-friendly NT system was protecting me from.

Developers get the benefit of visual layout without the hassle of having to remember HTML code.
-- Reviewers' guide to Microsoft J++

Templates, Wizards and JavaBeans Libraries Make Development Fast
-- Box for Symantec's Visual Cafe for Java

Simplify application and applet development with numerous wizards
-- Ad for Borland's JBuilder in the Programmer's Paradise catalog

Thanks to IntelliSense, the Table Wizard designs the structure of your business and personal databases for you.
-- Box for Microsoft Access

Developers will benefit by being able to create DHTML components without having to manually code, or even learn, the markup language.
-- Review of J++ 6.0 in PC Week, March 16, 1998.

Has custom controls for all the major Internet protocols (Windows Sockets, FTP, Telnet, Firewall, Socks 5.0, SMPT, POP, MIME, NNTP, Rcommands, HTTP, etc.). And you know what? You really don't need to understand any of them to include the functionality they offer in your program.
-- Ad for Visual Internet Toolkit from the Distinct Corp. in the Components Paradise catalog

My programming tools were full of wizards. Little dialog boxes waiting for me to click "Next" and "Next" and "Finish." Click and drag and shazzam! -- thousands of lines of working code. No need to get into the "hassle" of remembering the language. No need to even learn it. It is a powerful siren-song lure: You can make your program do all these wonderful and complicated things, and you don't really need to understand.

In six clicks of a wizard, the Microsoft C++ AppWizard steps me through the creation of an application skeleton. The application will have a multidocument interface, database support from SQL Server, OLE compound document support as both server and container, docking toolbars, a status line, printer and print-preview dialogs, 3-D controls, messaging API and Windows sockets support; and, when my clicks are complete, it will immediately compile, build and execute. Up pops a parent and child window, already furnished with window controls, default menus, icons and dialogs for printing, finding, cutting and pasting, saving and so forth. The process takes three minutes.

Of course, I could look at the code that the Wizard has generated. Of course, I could read carefully through the 36 generated C++ class definitions. Ideally, I would not only read the code but also understand all the calls on the operating system and all the references to the library of standard Windows objects called the Microsoft Foundation Classes. Most of all, I would study them until I knew in great detail the complexities of servers and containers, OLE objects, interaction with relational databases, connections to a remote data source and the intricacies of messaging -- all the functionality AppWizard has just slurped into my program, none of it trivial.

But everything in the environment urges me not to. What the tool encourages me to do now is find the TODO comments in the generated code, then do a little filling in -- constructors and initializations. Then I am to start clicking and dragging controls onto the generated windows -- all the prefabricated text boxes and list boxes and combo boxes and whatnot. Then I will write a little code that hangs off each control.

In this programming world, the writing of my code has moved away from being the central task to become a set of appendages to the entire Microsoft system structure. I'm a scrivener here, a filler-in of forms, a setter of properties. Why study all that other stuff, since it already works anyway? Since my deadline is pressing. Since the marketplace is not interested in programs that do not work well in the entire Microsoft structure, which AppWizard has so conveniently prebuilt for me.

This not-knowing is a seduction. I feel myself drifting up, away from the core of what I've known programming to be: text that talks to the system and its other software, talk that depends on knowing the system as deeply as possible. These icons and wizards, these prebuilt components that look like little pictures, are obscuring the view that what lies under all these cascading windows is only text talking to machine, and underneath it all is something still looking for a BASIC interpreter. But the view the wizards offer is pleasant and easy. The temptation never to know what underlies that ease is overwhelming. It is like the relaxing passivity of television, the calming blankness when a theater goes dark: It is the sweet allure of using.

My programming tools have become like My Computer. The same impulse that went into the Windows 95 user interface -- the desire to encapsulate complexity behind a simplified set of visual representations, the desire to make me resist opening that capsule -- is now in the tools I use to write programs for the system. What started out as the annoying, cloying face of a consumer-oriented system for a naive user has somehow found its way into C++. Dumbing-down is trickling down. Not content with infantilizing the end user, the purveyors of point-and-click seem determined to infantilize the programmer as well.

But what if you're an experienced engineer? What if you've already learned the technology contained in the tool, and you're ready to stop worrying about it? Maybe letting the wizard do the work isn't a loss of knowledge but simply a form of storage: the tool as convenient information repository.

(To be continued.)
SALON | May 12, 1998

- - - - - - - - - - - -

Go on to Part Two of "The Dumbing Down of Programming," where Ellen Ullman explores why wizards aren't merely a helpful convenience -- and how, when programmers come to rely too much upon "easy" tools, knowledge can disappear into code.

- - - - - - - - - - - -
Ellen Ullman is a software engineer. She is the author of "Close to the Machine: Technophilia and its Discontents."



Salon | Search | Archives | Contact Us | Table Talk | Ad Info

Arts & Entertainment | Books | Comics | Life | News | People
Politics | Sex | Tech & Business | Audio
The Free Software Project | The Movie Page
Letters | Columnists | Salon Plus

Copyright © 2000 Salon.com All rights reserved.

[Features] [Let's Get This Straight] [Challenge] [Books] [Reviews]