My Little Symphony
Friday, May 12, 1995 by Dave Winer.
For me, this has been a wide-ranging week. I tweaked up my little symphony. The instruments are Eudora, Netscape, Webstar, Anarchie and the Mac operating system. My baton is Frontier. Lots of little projects. All of them cool!
Some examples: I taught Netscape how to evaluate Frontier and AppleScript scripts, just like HotJava. I got web recording working with Frontier's outliner and Netscape. I rebuilt my AutoMail mail distributor, the scripts that distribute DaveNet email, to store names and email addresses in a Frontier outline.
I learned how to operate StarNine's WebStar HTTP server and started building a connection that will allow Frontier to run CGI scripts. I am getting lots of help from Chuck Shotton, the author of WebStar. When we have this working we'll be doing the kind of network agentry that General Magic's Marc Porat envisions for TeleScript, especially now that we have our hooks into Netscape. That's power! Hummmmm.
I also revisited my Netscape-based "worm" script, which I started working on a few months ago. Worms are very cool things, and nowhere near as insidious as their name makes them sound. The way worms work -- you give the script a URL, the address of a website you want to start with. It gets the source text for that page. It scans the text for pointers to other websites, adds them to a list. Then it visits each of the sites, repeating the process.
The script travels thru the net, building a database of places you can visit. It could be a very huge database. A good worm should be running all the time, and should spot every new website that pops up. Can a worm ever complete? Good question! I think not... But if it could, within a few minutes there will be some new websites on the air, so you get up and do it again.
My original worm, which I wrote back in February, is a very simple script. I gave it to Eric Newman, firstname.lastname@example.org, a scripting buddy who works at America OnLine. Eric has appeared in DaveNet before, he was the anonymous website manager in my April Fools piece, "Dreams Can Come True." Eric said "This stuff is GREAT!!! I am in the process of setting up Web sites for EVERYBODY IN THE COMPANY with AutoWeb!"
When I wrote AutoWeb I dreamed that someone like Eric would pick up the ball and build a truly huge website with it. Check it out. The site is at www.megaweb.com. Look for the clues that AutoWeb is responsible: Next|Prev|Home links at the top of each page. Surface links at the bottom. Signature and copyright at the very bottom. Yes!
But Eric did even better. He took my worm script and industrialized it. If you dig around the megaweb.com site, you'll come across an alphabetized list of thousands of websites. The author of this listing is Eric's worm script, an improvement of the original worm I wrote back in February.
I love this guy! I love working with smart creative people who take my wish as a challenge -- who surprise you by doing even more than you asked them to. I'm lucky to have a friend like Eric.
By the way, at least one of the other Dreams Can Come True quotes is real. Eric isn't the only carnivore out there. Stay tuned. April Fools in May. At the latest June. So what if I lied when I said I'll never tell? Sue me! [Just kidding! Please.]
I've known John Gilmore, email@example.com, since the early 80s, when he was a San Francisco BBS sysop and I was an author at Personal Software. Since then, John went on to become a founder of Sun Microsystems; The Little Garden, a local (and gutsy) Internet service provider; and Cygnus Support, a company with a very interesting mission. They support software that has been placed in the public domain. They also port and maintain the software, presumably in competiton with others who want to do so. Because of this background, John has a unique perspective on standardization, and not surprisingly, he had a bunch to say about my Being Free piece, released on May 9.
Here's what he said:
"Dave, this is a hard lesson for almost everyone to learn. You're ahead of the curve as usual!
"See http://www.cygnus.com/library-dir.html for the five issues of the Free Software Report (they're available in PostScript). They talk about how many companies have set standards and found success by freeing their software. DEC's X Windows beat the technically superior Sun NeWS this way for control of the workstation window-system market. DARPA made their Internet Protocol (TCP/IP) easily beat the ISO protocols by giving away a good free implementation (in Berkeley Unix).
"It sounds like you have truly learned this, but let's check. Are you really releasing Aretha in full source code (binaries too, of course, on the Mac) with full permission for others to use, modify, and distribute it commercially? No payments to you required, no control by you? That's the secret.
"There's been a recent trend of companies trying to piggyback on the success of the free software market on the Internet, by making pseudo-free software such as Mosaic, Netscape, RSAREF, or RealAudio. Typically they give away binary-only copies, without providing source code; or will only allow the software to be used for "personal" or "noncommercial" purposes. It's that finger of greed working its way in there -- "if *anybody* else profits from this then *I* want a cut!". There's no element of "If you love something, set it free" in there. They think of it as canny loss-leader marketing.
"This pseudo-freedom kills the software if the owner goes out to lunch; the commercial users can't support themselves, and no phoenix can rise from the ashes (without protracted negotiations and payment) to take over maintenance. Just like proprietary software. It also cheats both the users and the authors of most of the benefits of free software.
"Free software reduces the transaction costs of collaboration. Users can *fix* free software, which for them is often easier than persuading the vendor that there's really a problem, and then getting the vendor to fix it, and then getting the vendor to release the fixed version. The more experienced users on the net help out the less experienced users to fix problems, including real bugs and missing features. They have fun teaching and learning about what's inside.
"The author also wins because users can pull free software into niches that it's already 90% right for, by adding the 5% that makes a workable 95% solution. For example, porting it to another platform. Or making it interoperate with something. Or adding a small feature. Or speeding up something that's too slow as it is. And this makes new markets.
"When we started Cygnus, we had no idea that the embedded cross-compiler market was much larger and easier to penetrate than the native workstation compiler market we'd targeted. The proprietary cross-compiler companies were all small, fat, and lazy. Their products were overpriced and their support was unresponsive. Our free software was dragged into that market by early adopter users, who hacked it to do most of the job of cross-compiling. Their companies then paid us to clean up the hackish code and make it solid and maintainable across dozens of platforms. It's now the mainstay of our business.
"Dave, it sounds like you already understand this. Frontier is a tool for prying open applications so that users can add the local 5% that makes the apps really shine for them. But Frontier can only help with interoperability and a bit of customization. It can't unlock a locked-up program, it can only let a little fresh air in. And when a user writes scripts to make a couple of apps do a cool thing, there's no way to get those scripts to all the other users who'd benefit.
"Commercial software companies have no `intake' process for improvements written by their users!
"I think it's great that the free-software meme has started to penetrate the personal computer market, and that you're its most recent host. I truly believe that the free software paradigm makes software evolve more quickly, by reducing transaction costs and allowing productive, cheap collaboration. Hardware has evolved ten times as fast in the PC market as software; we have some catching up to do."
I have to think about this. I'm committed to Frontier being released in binary form for the Macintosh at zero cost. It can be included with commercial software, with no royalty due to UserLand. If Apple wants to include it, or our Runtime, with the Mac OS, they can, again at no cost. The same offer goes to Radius or Power Computing or any other Mac cloner. I suspect that one or more of them will do it, once they find out what it would make possible, especially if they want to create a turnkey Internet client, or a server for that matter.
I want to learn more before deciding whether or not to release source code for Frontier's kernel and editors. I believe in what you're proposing. And making money isn't the issue. I have a backlog of unreleased tools and apps that are compatible with Frontier, that add value to it, so if Frontier becomes a standard, there's no question in my mind that I can participate in the commercial bonanza such a standard would open up. Aside from that, money has *never* been my motivator for making software -- even when I was broke -- it was the fun, the art, that drove me to write software. Making money from software has been a pleasant side-effect, not the purpose.
Another bit of evidence -- I've been working in Frontier for the last year without making a single change to the kernel. It's been thru three major releases, with tons of openings created. Yes, I have a wish list, but so far I've been happy to work with the product exactly as-is. The Aretha release will include version 3.0.3 of the kernel, which is exactly what we've been shipping in the commercial package.
Releasing source is an unreversable move. I have some experience with this. We have a huge SDK that ships with Frontier, all in source. The orchestration this requires is substantial. And we ship source for all the scripts that define Frontier. That's about half of its functionality. Evolving these codebases has been an art not a science! Releasing full source may make sense when the vendor disappears, or is inactive or unresponsive. But what if the vendor wants to keep it moving? Does it make sense to release source then?
Perhaps Cygnus could play a role here. Could we place the source for every release of Frontier in escrow with you, to be released to the public if certain conditions are met? Is this worth discussing?
Anyway, I've learned in the past that it's best to learn a little, to do things like this one step at a time. How you do it *is* important. I expect to learn a lot in the next few months, and want to incorporate that learning in the next step after the free release of Frontier.
And just in getting this release together, I've been learning a lot. Frontier as a free thing just makes more and more sense. For years I've been dealing with an uncomfortable delineation, having to produce both commercial functionality for Runtime users and provide easy tweaking for script writers. Everything I write in Frontier is visible because I always ship the source code for my scripts. They provide utility and also are coding samples. This is a very hard bottleneck to flow my coding thru. Now I can relax. Everyone who will be using the scripts will also have the script editor and debugger and lots of other tools. Now the challenge is simply how to stay out of their way once this stuff is released.
"If you love someone, set them free," used to confuse me. I thought it meant "if you love someone, say goodbye." This seemed silly! Once you find love, why would you want to say goodbye? Now I know that it's not about saying goodbye. Let the love find its own path in the world. Stay involved, as a fan, as a supporter, as a friend. But don't try to control or limit your friend. Let the love roam freely in the world, creating whatever it wants to create. The more you share, the more you get back.
In a week or so we will all share Frontier. Judging from the email I've been getting, I think we're going to soar. I'm looking forward to to relaxing a bit, enjoying the view. Having fun! Does this seem unreasonable? I sure hope not...
And thanks for taking the time to get in the loop, John. I hope I can count on your advice, and perhaps your help, as this software rolls out.
In Billions of Websites, 2/18/95, I wrote "the clean up act, the new leader of the online business, will be the one who makes it really easy for anyone to publish a website on their server."
Well, we have a winner folks! You can stop holding your breath.
The prize goes to Prodigy. According to yesterday's New York Times, Prodigy is the first major online service to allow their users to easily publish a website on their server. Prodigy was the winner of round one -- they were the first big online service to offer web browsing. Now they've won round two and can legitimately claim leadership in the online business. It's time for another Wall Street Journal ad for Prodigy.
Now that Prodigy has moved, expect all the other services to follow suit quickly. Server management is the next frontier for all the major online services. Bet on it.
PS: Also announced yesterday: MCI will invest $2 billion in News Corp, Rupert Murdoch's online venture. I know that's funny -- but with the new investment from MCI, can we doubt that Rupert sees the online portion of his business as his greatest opportunity for growth? As they said, "there's gold in them thar hills." Yeah!
PPS: CGI stands for Common Gateway Interface.
PPPS: SDK stands for Software Developer Kit.
PPPPS: I won't even *try* to define the acronyms that Gilmore uses. Sorry!