Re: How Programmers Stole the Web
"You sure need a proofreader!!!"
Offsite links cause confusion
Re: Making the right technology decision
Since Im certain you receive tons of email, Ill 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 -- theyre 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 cant do much of anything with, without taking much more time and energy than you could with C. If you didnt feel like learning C at the time, so be it, but please dont 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 hasnt 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 dont know anything about it, is a Microsoft-proprietary product. Its not cross-browser or cross-platform, because Microsoft, in their infinite wisdom, doesnt 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 thats 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. Its not working.
7) Dan Bricklin didnt write VisiCalc in BASIC, you know.
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).
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.
- 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.
- 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).
- 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.
- 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.
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:
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 doesnt quite go far enough: computer science students are not only out of touch, theyre 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 Wolfes 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, its 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 userafter all, none of their CS student friends had any problems with it), is to be constantly reminded throughout their courses that its the end users who will ultimately pay their salaries.
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:
Anyway, I hope I'm wrong.
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 Coopers 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. Microsofts 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.
rollovers could be done using
<img src=foo.gif onmouseoversrc=foo-over.gif onmousedownsrc=foo-down.gif>
Christian Mogensen, Product Developer
And the last word on the subject:
Just a great article. Thanks for writing it.
Offsite links cause confusion
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 Nielsens Top Ten Mistakes in Web Design) you actually apply one of the methods often criticized (even by Nielsen): You span a new browser, hoping users will realize to close the new browser window to return your site rather than using the standard back buttonpity.
Otherwise thank you very much for this great resource & I am already looking forward to your next column,
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 problemsand this will come as a shock to all, I'm surelies 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 againunless 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!!!
You need a proofreader.
[ various corrections...]
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:
I read with bemusement your article on Making the Right Technology Decision.
I dont 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 Id share some of my thoughts on why people make the wrong technology decision.
One thing that Ive learned from you in the past is when something doesnt make sense there is probably some other stakeholder that affects the situation that hasnt 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 isnt 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?
Ill 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 arent 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 arent great applications for the material, but it doesnt 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 doesnt 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 dont understand why that isnt good until they move in. Then it is too late.
It doesnt matter to the buyers because they dont 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 arent 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 arent 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 cant 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...
President of SilVal, the silicon valley joint chapter of the Association for Software Design and World Wide Institute of Software Architects email@example.com
Contact Us: Bruce Tognazzini
Copyright Bruce Tognazzini. All Rights Reserved