Dr. Dobb's Journal April 2000
I lied in my January feature article "Rebol and E-mail Services," which discussed, as the title suggests, using the Rebol language to manage e-mail services. In the interest of focusing more on writing and less on web-site maintenance, I have decided to wait on implementing some of the features that I talked about in that article. So you won't find Rebol code on my web sites (http://www.swaine.com/, http://www .fireinthevalley.com/, and http://www .summerjo.com/). The code and techniques and conclusions about Rebol's virtues that I put in that article are all still valid, though.
Well, almost. Another bit of misinformation about Rebol that I allowed to get distributed involved Rebol/command. You will look in vain at the Rebol site (http:// www.rebol.com/) for this set of extensions to the core functionality of the Rebol language. At the very last minute, Rebol's creator, Carl Sassenrath, decided not to release Rebol/command yet, putting all the Rebol team's efforts instead into getting Rebol/view out the door. By the time you read this, Rebol/view will probably be available for a number of platforms, and Rebol/command may even be released, but I ain't promisin' nuttin.
There's a lesson here for those of us who try to comment in print on events happening in cyberspace, and someday I may learn it. Rebol/view is the GUI version of the Rebol language. Carl's approach to GUI building is very open: Rebol/view provides a general mechanism for building any kind of GUI you'd like. Standardization is promoted through the release of standard dialects. Dialects are a feature of Rebol that allows the language to be customized for particular markets or purposes. There could be dialects for standard desktop GUIs, supporting all the expected widgets and wadgets. Ditto dialects for videogame interfaces, slideshows, kiosks, MP3 players, cell phones, refrigerators, and so on. Rebol Inc. plans to offer something called "Consumer Interface Dialect" (CID) for creating simple, consumer- oriented, TV-style interfaces. Here's a "Hello, World" program written in CID, with a Quit button:
view layout [
text "Hello World"
button "Quit" [quit]
]
Okay, so that doesn't show off the widgets and wadgets much, but it does give a clue just how simple Rebol scripts can be when you have the right dialect for the job. Whether Rebol's approach to user-interface development is right for you I leave to your judgment.
One of Rebol's most promising features is that Rebol apps run without recompilation on a lot of platforms. That's also a touted feature of another scripting product -- MetaCard.
MetaCard, the creation of Scott Raney, is a HyperCard-like scripting and multimedia development tool for many platforms, including 68K Macs and PowerMacs, Win 3.1/95/98/NT/2000, and most popular Unixen. A new release has just popped out. MetaCard looks a lot like Apple's HyperCard and will even import and run HyperCard and SuperCard stacks, but it has many added features. The most important, though, is its cross-platform capability. MetaCard has a full development environment on each supported platform, generates native look-and-feel, and produces double-clickable apps that run without recompilation on any supported platform. Your apps are royalty free, and you only need to buy one license to be able to develop for all platforms.
That's the claim. For a while I was wondering if it was misinformation. I wasn't able to get the PowerPC version of MetaCard even to launch on my machine. The fat binary, though, works fine, and I can now confirm the claims.
There are some departures from total platform independence, but nothing too unexpected. Painting is not supported on the Win32 and Mac platforms, although importing graphics is. Fonts don't always map well between UNIX and Win/Mac, and some platform-specific features were clearly too desirable to leave out -- support for AppleEvents on the Mac platform, for example. On UNIX systems MetaCard supports an open process command and a shell() function that are not available on other platforms. They both let you run any UNIX command that can be run from the user login shell, so it would be a shame to leave them out. Also, on UNIX platforms, MetaCard has an executable program, called "mc," that can be used as a scripting language when you don't want any GUI -- it doesn't open any windows. Raney says it's there for developing cgi apps and the like.
As with HyperCard, you can create small stacks that require the application to run, or you can generate a standalone app that bundles in the necessary parts of the application (HyperCard or MetaCard). Standalone apps tend to be pretty huge: a couple of megabytes of overhead in a minimal "Hello, World" standalone, and a recommendation of that much memory to run it.
But the development environment is pretty nice, especially for schoolkids doing multimedia work.
And it works. Well, the Mac version that I tested works, anyway. And I have looked at a couple of other versions enough to know that they are real. So it wasn't misinformation.
"Misinformation" sounds like Data's date: The perfect feminine foil for Star Trek TNG's Spock surrogate, she scrambles his circuits with faulty facts while he finds her frankly erratic.
In a communication with a colleague recently, I repeated the "everything is deeply intertwingled" quote that I use all too often, attributing it to Ted Nelson. "I think you're wrong," she told me, and cited an online source that credited the quote to writer Ed Yourdon. One of us was clearly consorting with Miss Information.
Now Ed Yourdon has said a lot of interesting things -- the American programmer is in decline, the American programmer is not in decline, the Y2K bug will make New York and Chicago resemble Beirut -- so I guess he could have said "everything is deeply intertwingled," but I was pretty sure that he didn't say it first.
A few minutes of research on the Internet convinced my colleague, too. But it got me thinking about the Web as a source of information and misinformation. One consequence of getting your information from the Internet is that you also get a lot of misinformation, such as the Yourdon misattribution. Then again, you can also get corrective information: It was easy for me to ascertain that the quote in question was from Nelson, not Yourdon. But it was easy only because I trusted my sources. Trust is going to become a much bigger issue than it already is as we get more and more of our information from the Internet. It's not just about factual information; transfers of funds and execution of distributed chunks of code are information transfers, too. I'm not saying anything new when I point out that we need to somehow verify or certify the source, correctness, and quality of the packets of information we receive over the Internet. But do we really appreciate how difficult that is?
I recently came across a nice quote to the effect that anything we can know through logic is based on what we can know without logic; to whit, logic is a wonderful tool, but to get the deductions going you need to seed the process with a priori beliefs not arrived at through logic. I think the quote was from G.K. Chesterton, but when I went looking for it I couldn't find it at any Chesterton sites.
Maybe it was Ed Yourdon.
Anyway, a similar problem applies to trust on the Internet: Trust on the Internet is ultimately tied to trust off the Internet. The data are only as good as their source. Whether you're talking about news or gossip or passwords or financial data or code snippets, you need to know the pedigree of your incoming bits. And methods for establishing that the source is who or what it claims all go back ultimately to some offline connection.
In my February "Swaine's Flames" column, I poked fun at the idea that some sort of convergence toward truth emerges from a sequence of web sites that judge the truthfulness of other web sites, and web sites that judge the judgment of the judging web sites, and web sites that judge the judgment of the judge-judging sites, and so on. I was being facetious; I don't think you can get to truth that way. Furthermore, even if you trust a given web site, author, company, or piece of software, you have to be sure that the web site, author, company, or piece of software in question is the web site, author, company, or piece of software you think it is.
For any serious movement of information on the Internet, you need to be sure you're dealing with the party you think you're dealing with. Meanwhile, you may have strong feelings about protecting your own privacy, even to the point of wanting to maintain anonymity. Is it possible to reconcile the desire for anonymity with the need to certify that party A is really party A? Yes, but not, it seems to me, if you insist on knowing party A's nonInternet identity. There are ways to ensure that this particular packet really came from some particular Internet entity without compromising the Internet entity's nonInternet identity, if you follow me, but if you can go so far as to ascertain that it came from Joe Blow, Joe's clearly not anonymous in any useful sense. And, applying the Chesterton/Yourdon thinking about logic to the Internet, unless you can go to ground somewhere on a real, off-the-Internet interaction, you have no basis for trust in the information transferred. Maybe that's what IBM has in mind with its PAN, or Personal Area Network. IBM is promoting a new, patented technology that uses physical contact between two human bodies to make a network connection. Skipping lightly over some of the more R-rated implications of this, this would let two people, for example, exchange business cards with a handshake.
A variation on the claim that everything is deeply intertwingled is the notion that a butterfly flapping its wings can bring down an empire around the world. It's unclear how much empirical (no pun intended this time) support there is for any butterfly-empire connection, but a bug in one hemisphere can certainly wreak havoc in the other.
Which is why I think the Taiwan cyberwar plan is a particularly bad idea. The Taiwanese military, it seems, is convinced that China is considering trying to disable the island's computer network. Last year, Taiwanese government web sites were hacked by, the military say, Chinese hackers. Now that Macao has been turned over to China, Taiwanese officials are getting nervous about being the only remaining piece of the former China not under Chinese control. Feeling a little bit Chechnyan, I suspect.
Lieutenant Lin Chin-ching, head of the Taiwanese defense ministry's Information and Communications Bureau, says his ministry has identified about a thousand different computer viruses that it is prepared to unleash on Chinese computer networks in retaliation for any attack on Taiwan's network.
Well isn't that special.
He doesn't explain how he will manage to restrict the viruses to Chinese computers. But then, you can't make egg drop soup without breaking a few eggs. Sheesh, talk about disseminating bad information.
Steve Jobs wants to disintertwingle Mac users from the rest of the computing universe by giving them an Internet experience that others can't share. At his MacWorld Expo keynote, Jobs spoke gleefully of taking "unfair advantage" of the fact that Apple controls the hardware and software at both ends of the typical visit to http://www.apple.com/ (some 10 million visits a week, he says).
Apple is therefore getting into the ASP business. At its site, Mac users (and Mac users only) can get free services such as web hosting and free online storage. Just a reward for thinking different, I guess. It's certainly a smart leveraging of the site. Anyone visiting the site gets a clear message: not just that the Mac is in some nebulous way better than the competition, but that there are concrete things you can do with a Mac that you can't do with another machine. Things you can have with a Mac that you can't have with a PC.
Of course you really can get those things, or something equivalent, elsewhere. But Apple is going to benefit from this differentiating strategy, I predict. What bothers me, though, is that the downside of differentiation is also present: Apple has hung a "private club" sign on a part of the Internet.
This seems to be one general consequence of a move toward an application services model: Some of those services are going to be available for a select group only. That is already true of the desktop OS model, of course, but this is the Internet. It's supposed to be open, right? So is this the dreaded Balkanization of the Internet or just a healthy diversity? Meanwhile, Bill no-longer-running-the-company (nudge, nudge, wink, wink) Gates freely admits that Win2K is probably the last Windows desktop operating system we'll ever see, and that that model is history. The future? Application services, is what I think he's saying. What Microsoft Windows and Microsoft Office now provide will in the future be offered in the form of an unbundled collection of services provided over the Internet.
The claim is that Bill is focusing on the technological challenge this presents, but that doesn't seem likely. The technological chore is not the challenge; the challenge is in selling to a new market. Despite what you might conclude from its aggressive marketing of the company and the products, Microsoft's main customers are not consumers. Microsoft sells its two significant products, Windows and Office, chiefly to OEMs and corporate IS managers. Will those be the buyers of an unbundled collection of former OS facilities? Well, maybe, but that's by no means obvious. I seriously doubt that the question of how app services will be sold is ever far from Bill's mind. It's a question of survival for Microsoft. My guess regarding the Balkanization question is that we will all get more connected because of the Internet, and that we will all get more isolated because of the Internet. I suspect that an Internet culture will be less a mass culture than what we have today and more a culture of many overlapping loose coalitions formed on the basis of shared interests. I also don't expect 95 percent of web sites to stay English-only much longer, and the spread of more language diversity on the Web will certainly Balkanize it to some extent. Balkanization is part of what the Web does.
DDJ