AskTog: Interaction Design Solutions for the Real World
 
Interaction Design Section   Living Section   About Bruce Tognazzini
NN/g Home > AskTog > ReaderMail > September, 1999 Ask Tog, September, 1999

Ask Tog Reader Mail

 Re: How Programmers Stole the Web
"You sure need a proofreader!!!"
 Offsite links cause confusion
 Re: Making the right technology decision

Re: How Programmers Stole the Web

Hi,

Since I’m certain you receive tons of email, I’ll keep this short.

1) Your history in How Programmers Stole the Web sucks. To say that the web was ‘stolen’ by the “C++ boys” is ridiculous -- they’re the ones who invented it, not stole it. The reason that the “originally simple HTML environment” became clouded with hacks is because the people who wanted to use that simple HTML environment wanted to do other stuff with it and there were (and still are) many competing solutions to the ‘problem’.

2) “The early programming environments and languages were simple, natural and accessible”? Where did you get this idea? To say that FORTRAN, C (yes, it was around back then) or, for that matter, LISP or Assembler (whichever variant you might choose) -- or PL/1 or COBOL or whatever else you want -- was ‘simple, natural, and accessible’ is disingenious at best and downright false at face value. BASIC was and remains a toy programming language that you can’t do much of anything with, without taking much more time and energy than you could with C. If you didn’t feel like learning C at the time, so be it, but please don’t misrepresent what was actually going on at the time.

3) To say that “The web has stagnated ever since” is downright false.

There are more websites going online every day now than there ever were before. Lots of them are crap that disappear almost as soon as they go online. Some survive. People have tools such as FrontPage, HomeSite, etc. that they can use, simply and easily (should they happen to bother to read a manual) to put up web sites. Are you perhaps suggesting that edlin -- remember, your golden age of the web predates Windows, here -- was the ideal web page development environment?

4) To bemoan the disappearance of BASIC is ridiculous. Since just about day 1 of the ‘PC revolution’ there has been one or more BASIC interpreters available for every single flavor of PC. This hasn’t changed since the days of the SWTPC, Apple IIc, and S-100 Bus. The real reason that people moved away from BASIC -- and they have in droves -- is because they wanted their programs to perform like those that were written by the real programmers who produced all of those products that they were having to shell out cash for.

5) VB Script, since you apparently don’t know anything about it, is a Microsoft-proprietary product. It’s not cross-browser or cross-platform, because Microsoft, in their infinite wisdom, doesn’t want it to be. Go figure.

6) Your solutions are fine, by the way. Just tell anyone how you propose to come up with something like XML or HTML that’s easy enough for anyone to learn -- without having read a book, since no one who wants to get on the web seems to be able to read -- and does enough for all the rest of your magical empowerment ideas to get off the ground. People -have- and -are- trying to do just that. It’s not working.

7) Dan Bricklin didn’t write VisiCalc in BASIC, you know.

8) Last thing. In JavaScript, to assign an integer value to a variable, you do not enclose it in quotes. Your assignment assigns a string with the character “3” as a value to x, not an integer.

Brendan

I'll respond point-by-point, but first let me reiterate that I don't think than anyone set out to exclude "the rest of us" from effective access to web technolgy. It just turned out that way (as it so often does).

  1. The "C++ boys" stole the web by "inventing" it in such a way that they effectively excluded everyone outside the priesthood.

  2. FORTRAN and the other languages you mention were not part of the early programming environments. They came later and set the pattern of illogic that is still being practiced today. Only machine language and the earliest assembler really existed in simple environments, along with some of the early interpreted languages that came after.

  3. No website builder without significant programming skills can do anything even as simple as dynmically hiding and showing objects, trivial tasks in BASIC and other more beginner-centric languages.

  4. I never bemoaned the disappearance of BASIC. BASIC, as bad as it may be, apparently has an infinite number of lives. That should be instructive. Somehow people really like it.

  5. I know a great deal about VB script. I also fully believe that the battle is over and Microsoft has won. I see little point anymore in developing for anything other than Windows and IE. The monopoly is here. Learn to live with it.

  6. I never have suggested that everyone can learn a computer language. One must, ultimately, be able to grasp logic. What people should not have to "grasp" is the torrent of illogic and rote memorization associated with HTML/Javascript.

  7. I have known Dan Bricklin for more than 20 years and reviewed the design of VisiCalc several times as it was being built. It would have been a joke for them to write VisiCalc in BASIC on the Macintosh since the horrible Microsoft BASIC on the Apple II was literally incapable of multiplying two times two and arriving at four. In addition, it did not compile and was slow as molassas. How ironic that Apple's perceived need to renew that BASIC licence for the Apple II led them to offer Microsoft a licence in return for the Macintosh windowing system.

  8. Brendan is correct that in Javascript, when assigning a variable, you do not enclose it in quotes. However, I never made such a claim. Rather, the language that specifies you are to so enclose it is HTML. (Never mind the argument that, "in real life," contemporary browsers will accept variables not so enclosed. That is just one more piece of confusing, illogical information the user is supposed to carry around.

I constructed the paragraph in which I discussed the requirement to quote or not quote an integer value ambiguously just to see if it would trip people up. It did. Every engineer that wrote assumed that I was erroniously attributing the need for quotes to JavaScript. Only one knew that this requirement is, instead, in the HTML spec. If engineers can't keep straight which of the languages calls for integers to be encased in quotes, what chance do "common folk" have?


Dear Tog,

How Programmers Stole the Web is a catchy title. The problem you identify is real, but your analysis is faulty, which makes your solutions suspect.

Here's what I think the essence of the problem you are stating: the web is a big complicated mess (illogical). Is that what your are saying? If so, I agree. The essence of your analysis (over simplified) is: "it should be simple to do big complicated thinks on the web". I agree it could be more logical and less complex, but I contend that if you want to do complicated things then there will be complexity involved.

If you have the right tools, maybe things aren't as bad as you think. I create complex interactive web enabled applications which run on the Motorola intranet. These systems often have complex password security to grant various access rights dynamically to different folks. I create these systems without writing any HTML and some have none or few CGI scripts. How do I do this? I use Lotus Notes/Domino. Forget all your preconceived notions about Notes (I had to). Forget about using it for anything else except as an integrated web development tool and server. I'm talking about creating interactive web sites, not the static page stuff.

Now to your solutions.

  1. You seem to think BASIC is a more logical language than, say, C.... I think BASIC is one of the worst languages around. The original version did not even have subroutines. And the spaghetti code people wrote with it is infamous. I suspect that you learned BASIC first but have not progressed beyond it.

  2. You say, "HTML is good." Well, I don't agree. It is designed to mark up text to make it hypertext linkable. But what everyone tries to do with it is use it as a display language, at which it is a dismal failure, IMO. You are right, however, about everyone making incompatible extensions to it. This was a result of Microsoft and Netscape trying to one-up each other for market share. The result is bad for their customers and a mess

    On the other hand, I hope to never write any HTML again, just as I hope to never write any more Postscript. These are intermediate languages that should be hidden from the light of day. I use WYSIWYG tools to create my web sites (Notes/Domino).

  3. You say, "Engineering schools have been turning out programmers who are clueless as to the wants, needs, and capabilities of their users for way too many years. It is time they got their act together. It's not like the schools don't know they have a problem; it's just that many of them have just chosen to ignore it."

    You want to "fix" the engineers. Is this a spay and neuter program you're suggesting? Everyone who comes out of school is clueless. I graduated as an electronic engineer. I've learned all my programming skills on-the-job. Yes, learning to design better interfaces is useful, but it's no panacea.

  4. You say, "No one should be able to graduate with a major in computer science without a thorough, demonstrated understanding of the capabilities of their users." Students don't have users. What users are you talking about? There are no generic users. All my users ARE engineers, 'cause that's who I'm creating my systems for.

I think you are frustrated. Well, so am I. You're right the web is a mess. It could be better. I think it will get better. We need to be patient and just let thinks evolve. Or get in there and make it better. It has never been more possible for anyone to contribute. You could create your own servers, protocols, languages and browsers if you wanted. They could work completely different from the present World Wide Web. And some people would love it. Others would hate it. Most certainly pundits would write about it.

Best regards,

Rob:-]

When speaking of the unnecessary illogic faced by web developers, I am not speaking about the web itself. To use a metaphor, consider the surgeon about the operate. The human body was designed through the chaotic forces of evolution over millions of years (except in Kansas, where, according to the law, it was designed 5712 years ago during the course of a single day, the male being completed in the morning and the improved, second-release female completed in the afternoon.)

The human body has all the complexity of the web, and that is a level of complexity over which the surgeon can exercise no control. On the other hand, the surgeon can and does exercise control over the complexity and logic of his or her tools. Surgeons do not enter the operating room with their instruments in a jumble or in a foolishly complex and illogically constructed order. The tools are laid out in clear, uniform groupings offering the shortest time possible between the surgeon's request and its fulfillment.

Our tools lie in dark cabinets constructed over time. To those who have experienced the chronology, it may be clear where each tool lies. To those entering such a jumble-filled space, it is chaos. And it is unnecessary.

As to your enumerated points:

  1. BASIC is no more logical than C and is far more "dangerous" in the hands of an amateur. It is not, however, as often enshrouded in overwhelming complexity, although some people have managed to make BASIC all but unusable.

    As for what I learned first, I began programming in the vacuum tube era, programming with patcch boards. BASIC came considerably later, and I did "progress beyond it" and, in fact, before it, with machine language, assembler, LISP, and PASCAL. About the time C became the official state religion, I began to specialize in design.

  2. I agree with everything you say, however, for all its infuriating faults, HTML was good enough to launch a revolution.

  3. As for spaying and neutering, I was not the one who embraced the name, "Unix."

    While I agree that, in hindsight, we all come to understand that when we graduate school we only knew a fraction of what we thought we knew, that's hardly a reason to abandon classwork in favor of life-experiences and it hardly stands as an excuse to graduate students who are utterly ignorant in a critical sector of their chosen field.

  4. Students not having users is the problem, and hardly stands as a convenient excuse. Can you imagine having a bunch of MDs running around who never had "users" during the course of their education? Of course, students should be required to have clients and end users. No wonder they are so clueless.

Check out what Carl Maniscalco has to say on this same issue:

From last month's How Programmers Stole the Web"

Students should be required to take at least one course in human-computer interaction. That course must include watching real people try to find their way through software each student or team of students has written. Only by seeing the consternation on their users’ faces can students realize and begin to address just how out of touch they really are.

Is that ever the truth. However, it doesn’t quite go far enough: computer science students are not only out of touch, they’re actually encouraged by their curriculum to become arrogant and to look down upon the non-programmer as some sort of inferior life form. It kind of makes me think of Tom Wolfe’s concept of “Masters of the Universe,” from Bonfire of the Vanities. As long as newly-minted software engineers are leaving school with that sort of attitude, it’s very unlikely that their products will get much better from the standpoint of an average user.

What they really need, beyond just watching people suffering through their version of Word 6 (I fear that all that would do is increase their disdain for the lowly “user”—after all, none of their CS student friends had any problems with it), is to be constantly reminded throughout their courses that it’s the end users who will ultimately pay their salaries.

--Carl Maniscalco
Deus Ex Macintosh, Mac Consultants
San Diego, CA

---

To protect our environment, this document was created using only 100% recycled electrons.

Computer science just cannot be taught in a vacuum. This practice, with the unresponsive, difficult-to-learn, difficult-to-use software that is resulting, is costing the world economy billions and billions of dollars. As the late Senator Everett Dirkson once remarked, "A billion dollars here, a billion dollars there, pretty soon, we're talking real money." We're talking real money; it is time the schools cleaned up their act.

Then, there is the half-full glass:

What you propose will likely never be implemented. The best solutions tend not to, in the face of overwhelming market power (Mac versus Windows, Beta versus VHS). And the market for JavaScript undoubtedly has more power than those creative types who long for a really good dynamic HTML tool...because most of the creative types don’t work together, and can’t articulate a common vision of what they want. Whereas the engineers are already together on one standard and want to keep things going.

Anyway, I hope I'm wrong.

Eric Mullerbeck

I share your concern, Eric. However, after half a lifetime of progressive pessimism, I was heartened no end by the sudden collapse of the original "evil empire," the Soviet Union, and have taken further pleasure more recently in the rise of DVD, which beats the pants off both Beta and VHS, as well as the collapse of DIVX, produced by a wholly-owned subsidiary of Satan himself. (The original Satan; not Bill Gates.) Good things can happen, even to good people.

Finally, a couple of letters that are more reflective of the overall response.

I enjoyed How Programmers Stole the Web and think you are utterly right here. Tradition and what we have lying around are powerful drivers behind the current state of the web. (Alan Cooper’s “The Inmates are Running the Asylum” goes on and on about why this is.)

HTML has the potential to be a nice declarative language, but no one has designed or presented such a beast. Microsoft’s IE5 “behaviors” are a step in the right direction, but are still too tied to the scripting aspect.

Certainly someone should push for a XML description to be published by the W3C.

e. g.:
rollovers could be done using
<img src=”foo.gif” onmouseoversrc=”foo-over.gif” onmousedownsrc=”foo-down.gif”>
rather than the hoary javascript we now have to resort to today.

Christian Mogensen, Product Developer

And the last word on the subject:

Just a great article. Thanks for writing it.

Cheers,

Ken Erfourth

Offsite links cause confusion

Hi there,


I recently graduated from an avid admirer of your books to a serious fan of your web site. However, I thought it was a shame that in some of your links (e.g. to Jakob Nielsen’s “Top Ten Mistakes in Web Design”) you actually apply one of the methods often criticized (even by Nielsen): You span a new browser, hoping user’s will realize to close the new browser window to return your site rather than using the standard back button—pity.

Otherwise thank you very much for this great resource & I am already looking forward to your next column,

Antje Roestenburg

Opening offsite links in a new window has been an experiment of sorts. I'm not particularly convinced it works well either. One of the problems—and this will come as a shock to all, I'm sure—lies with the browsers.

When we open a new window, users quite often don't realize we've opened a new window. They read the page or pages we've carried them to, then start using the back button to return to whence they came. Of course, once they reach the first page in the new window, the browser ignores their plea to go further back in time by closing this new window and returning them to the previous one.

Were they to close the new window, of course, users would then be faced with no way to go forward again—unless the browser people got really clever and created a true browser-level history, rather than a window-level history, in which case, the new window would open once more and users could return to any page within it.

In the meantime, what do y'all think? Should I pull the "new window" instructions from offsite links?

You sure need a proofreader!!!

Dear Sir,

You need a proofreader.

[ various corrections...]

Ziya

Thank you, Ziya, for finding and reporting a number of errors in last month's issue. "AskTog" is in the nature of a second job and, indeed, a job that doesn't pay anything. As my first job is at a rather high-pressure startup, I don't have as much time as I would like to work on this "zine." I'm afraid more typos slip through than I would like. I do my best.

Re: Making the Right Technology Decisions

Quote without comment:

Tog,

I read with bemusement your article on Making the Right Technology Decision.

I don’t want to rehash anything you wrote there, I think you captured it wonderfully. But I know you to be a champion of understanding things by looking at the big picture, and I thought I’d share some of my thoughts on why people make the wrong technology decision.

One thing that I’ve learned from you in the past is when something doesn’t make sense there is probably some other stakeholder that affects the situation that hasn’t been taken into account. We may be looking at what makes sense to the user, but the problem is some other stakeholder also has to be satisfied. That stakeholder could be a purchasing agent, or an executive, or a support person, a lender, salespeople, etc.

I used that kind of stakeholder thinking to get to the following understanding.

Your table pretty much shows why generic browsers are abysmal for applications, whereas contemporary GUIs are much better. But of course, that isn’t the choice that developers are making. You point out that the reason people would choose to develop in generic browser rather than in a GUI is because people confuse the Web with the Internet with the Browser.

I think this is right on target. And I think that there is some more to be explored here. *Who* are these people who confuse these things? Are they the people who build them? If not, why do the people who build these things compound the mistake? And why are people confused?

I’ll get back to these questions and maybe some insights into the answers in a bit, but please bear with me as I explore a fantasy that may shed some light on how to understand this problem.

In this fantasy there are a bunch of construction workers who build houses. Not all builders are equally skilled in all materials and technologies. Becoming skilled mainly comes from experience with a given material and technology.

Some materials and technologies are in more demand than others. Traditionally, floors have been made from natural materials such as stone or wood. New developments in chemistry have led to the creation of a new materials technology, plastic floor covering in large rolls. Plastic floor covering is not superior to the natural materials in all ways, but for some purposes it is really convenient. It can be laid down more quickly and thus at reduced cost. In certain limited applications, such in areas subject to wet conditions like as a kitchen or bathroom, it can be a good choice. Through dyes and prints it be made to look like brick or stone or wood, though anyone who gets up close and feels the actual texture will quickly know the difference.

Of this plastic flooring, the trade name “Linoleum” has been most successfully marketed, and the average public only knows of the existence of “Linoleum” flooring, and if they see plastic flooring of any type the say “Linoleum”. Consumers are impressed with some of the benefits of the new kind of flooring and this has caused a great demand for plastic flooring, especially the Linoleum variety.

Manufacturers and distributors of “Linoleum” flooring have seen their stock prices go through the roof, allowing them to hire more people to help install these new kinds of floors. Unfortunately, there aren’t many people who know how to install them; in the past natural materials were all that were available and they have different installation procedures. This has created a lot of demand for skilled linoleum installers and has boosted pay rates for those people who know how to install plastic flooring.

This in turn has created a rush among lower paid (usually junior tenure) construction workers to get this experience and thereby command higher salaries. So these people try to convince their bosses to let them learn the new technology by using it wherever possible on their buildings. Not just on floors, but on counters and walls and ceilings too. Some of these aren’t great applications for the material, but it doesn’t matter to the construction worker because they are still getting experience that they can put on their resume, and they are sure that will lead to more pay on the next job.

It doesn’t matter to the builders because they can advertise the house as modern because it has “linoleum” in it. Sure, it is on the wall, not the floor, but consumers don’t understand why that isn’t good until they move in. Then it is too late.

It doesn’t matter to the buyers because they don’t really know when linoleum is good or bad only that it is the latest thing. In fact, they would probably not know the difference between plastic flooring and linoleum brand flooring except by the name. But this keeps the buildings choosing the linoleum because they can show buyers the name and buyers go “Oh, good!” whereas when they say “plastic flooring” buyers go “huh?”

The houses being built have linoleum in places where it might not be the best choice, in part because the people doing it are novices trying to use it practically everywhere to learn about linoleum, and in part because their employers are telling them it is okay.

Experienced construction workers can readily see what is a good use of the new technology and what is not, but they often aren’t involved. They are already well paid in the salary system and less tempted to try every new technology to make their mark and get ahead. So while they have the wisdom they aren’t as involved in the decisions as the people who are greener.

When looked at from this big picture perspective it is easy to see why so many people are laying linoleum even in situations where an experienced floor construction person would know that a better choice is something else. If the floor construction person just looks at the materials choice in the small they can’t figure out how anyone could be so stupid. But in the larger context it is obvious why locally suboptimal behaviors are being chosen.

Anyway, enough of my fantasy digression. Back to the case at hand involving developers using generic browsers for applications. Imagine in my fantasy that construction workers were instead programmers, that “plastic flooring” was the Internet, that “linoleum” was MSIE and Netscape Navigator. Why people would choose to use MSIE and NN for inappropriate purposes in this case would suddenly be clearer.

Of course if that mapping were valid companies that sold “internet applications” would also have higher IPO valuations than traditional “software applications”. And programmers with experience in the latest web applications languages would command higher salaries than people with comparable experience in only non web technologies. And junior programmers would be racing to do everything using web technologies so they could get more experience on their resumes.

But I repeat myself...

Scott McGregor
President of SilVal, the silicon valley joint chapter of the Association for Software Design and World Wide Institute of Software Architects mcgregor@prescient.com


Don't miss the next action-packed column!
Receive a brief notice when new columns are posted by sending a blank email to asktoglist-subscribe@yahoogroups.com.

return to top

---
 
Contact Us:  Bruce Tognazzini
 
Copyright Bruce Tognazzini.  All Rights Reserved