Channels ▼
RSS

Calling Apple's Bluff


SEP91: PROGRAMMING PARADIGMS

Dave Winer shouldn't be this relaxed. Sitting by the pool behind his Menlo Park home, he seems willing to chat as long as I like about Living Video-text, the company he created from an idea about outlining software and sold to Symantec at the height of its success, or about UserLand, his new company that is challenging Apple on its own turf by selling system software, including a user scripting language called "Frontier" that seems to step on the toes of Apple's long-rumored AppleScript. UserLand has six employees, including its one-person Windows division (UserLand is aggressively multiplatform), and this means that I am tying up a sixth of the company's human resources as we sit by the pool. But Winer, with all his chips in the pot in this high-stakes game, looks as cool as a riverboat gambler. Maybe it's because he's been bluffed so often in the past.

DDJ: You're known for outlining, with products like ThinkTank, Ready!, and More, but you've told me that your interest in scripting languages is just as deep.

DW: The first scripting language I did was at the University of Wisconsin on Unix. It used outline structures to manage program source code, the observation being that programs are actually hierarchies. [But when] I left Wisconsin, it struck me that outlining had more general applications, so I got myself a ~~~~~~~~ Z-2D and set out to make an integrated database and outline processor. Essentially, it could handle tables and outlines, and outlines could be a field type in a database, or you could have an outline index into your table structure.

DDJ: What was the logic behind that combination?

DW: My feeling was that by having outlines, which are like a table of contents, combined with a tabular display, which is like an index, the structure would get into every little bit of information you had. This was like 1980, Apple was just going public, and I came to the conclusion that Apple was my ticket, so I picked up and moved to California to sell this product to Apple. I found out who the guy in charge was --

DDJ: If memory serves --

DW: Steve Jobs. I called him up and I had all these meetings, and they said they wanted to buy the tables; they didn't want the outlines. I was 25 and really stupid. I blew them off and they [sent] me to Personal Software, [where] I committed to something I shouldn't have. The thing I sold them was to be called VisiText, [and] was built on the model of the Unix line editor, but then I saw VisiCalc, and it was a religious experience. So I committed to doing four months worth of development work on VisiText to add the Visi to it.

DDJ: To make it screen-oriented? That wouldn't have been a trivial task.

DW: It took about a year and a half. And in that year and a half Personal Software grew from 12 people to about 200 people, and the new management didn't want to do outlining. They cut me loose, gave me some cash, and gave me back the product. I went around to every other software company in the industry, and the doors were all open, because Personal Software was the leading software company at the time. I had meetings with Seymour Rubenstein, Bill Gates, Fred Gibbons, the Carlstons at Broderbund. And everybody turned me down. I had $20,000 left out of the settlement, half a manual written, and the source code for a program that nobody wanted.

DDJ: So you decided to do it yourself.

DW: On the Apple II when the whole world was going PC. It was a struggle. We needed a big boost, and we got it from the Mac. We were one of the very first companies out with a Mac product. My brother Peter and Doug Barron were our Mac team. Ironically, it wasn't the sales from the Mac product that made us. It was sales from the PC product, but what attracted attention to the PC product was the Mac product. [Then in] 1985, the Mac went through a terrible year. I cut [Peter and Doug] loose and said "Go and do neat stuff, but we're going to try and grow in the PC direction."

DDJ: In 1985 the PC market was very good.

DW: Very good. In late '85 we came out with Ready!, a resident TSR outliner. In a lot of ways Ready! was ahead of its time. It would load in 3K of conventional memory and keep itself up in expanded memory and do the swap when you switched in. Everything we had learned about outlining went into it. We had developed the product to be a Sidekick killer. Then I ran into Philippe Kahn at PC Expo that summer at a dinner and we went aside and he said, "David, if you position this thing against Sidekick I will put an outliner into Sidekick and blow you out of the water."

DDJ: Philippe can be intimidating.

DW: His picture was in InfoWorld every week. I made a judgement error: I decided to take him seriously. I decided to, in effect, position Ready! at ThinkTank. In September 1985, it shipped. It died in March. We should have attacked Sidekick, confronted them head-on, and we would have got some market share. People who used the product were very happy with it.

DDJ: Basically, you were bluffed.

DW: I was bluffed. Another guy who bluffed me was Mitch Kapor. The first time was with Symphony Text Outliner. He said, "Stop promoting ThinkTank. I'm going to come along with Symphony Text Outliner and blow you away." And I believed him. And it didn't happen. Mitch did it to me three times.

DDJ: What got you back into the Mac market?

DW: By early '86, the Mac Plus came out and the Mac market was just incredible. The run rate on ThinkTank 512 was incredible, but the problem was that ThinkTank 512 didn't run on the Mac Plus. The machine was selling in great quantity, but we were out of money, had a head count of over 50, had support problems [with ThinkTank 512] -- we were in desperate shape. While I was out playing in PC land, Peter and Doug had produced all these neat little add-ons to ThinkTank. The question was, can we take all that stuff and put it together and come out with a new product in '86? We put everything the company had on that, financially, in terms of personnel, in terms of our morale. Guy Kawasaki showed us where the market opportunity was with that thing. In June of '86, we came out with More for the Macintosh, and we never had cash problems again.

DDJ: But the final chapter of that story is that you sold Living Videotext. Tell me about that.

DW: We were at a crossroads. The company was accumulating cash, and we had completely exhausted every trick we had in product development. It was going to take another two years to load the guns up again. The only thing we could do was to see what could be bought, but there wasn't very much to buy. In 1985, everybody had sort of abandoned the Macintosh. And at the same time, everybody was trying to buy us. Then I had a meeting with Bill Gates in, I guess it was February of '87, and he just blurted out, "Why don't we just buy you?" We worked out a letter of intent. It was all happening incredibly fast. And then the deal fell apart, but I had got committed to my board. Meanwhile, Gordon Eubanks and John Dorr [of Symantec] were saying, "We really want to buy you guys." So when the Microsoft deal fell through, I called up Gordon and said, "OK, tell me how much you want to pay. It's yours."

DDJ: You were telling me that you took time off to redefine yourself after that. You seem to have redefined yourself as president of a software company.

DW: Here I am doing it again, of course. I guess I needed a break. And I wanted to do [this]; I wanted to do another product.

DDJ: You wanted to do a scripting language?

DW: I've always been interested in programming languages, [but] when I left Symantec, I had no particular goal in mind. I was just building neat stuff, things that I thought might fit into something I would do later. Then I started hanging out with Jean-Louis Gassee. He had been giving speeches about user scripting languages and how important they were. Bill Gates [said these same things] in 1981, and Gassee a few years later is giving the same speeches. [So] I had a breakfast meeting with him and said, "Can I have a look at your development on this scripting language? Maybe I'll develop some products for it." And he said, "There is no scripting language." And I said, "What? You're giving all these speeches and there's no scripting language?" And he said, "Well, sometimes to manipulate the people inside of Apple I have to get up on a stage somewhere." So at the next breakfast meeting, I asked him if he thought there would be any problem if I did one of these things.

DDJ: A scripting language? That must have put him in an interesting position.

DW: He did his job very well. His job was to say, "Well, this is something we ought to do, but in the meantime we don't have anything, so why don't you go ahead and do it." So I spent about six months getting something together. [Apple] made me an offer, and I said, "No way." They said, "You know, we might do one." I said, "OK, great, go do it." I remembered all the bluffs in the past. This was the big bluff. And they didn't even realize it was a bluff.

DDJ: Well, at this point UserLand Frontier is ready to ship and there's no sign of AppleScript, so apparently you were right. So far, anyway.

DW: I think they're two or three years behind where we are today. I always underestimated how long it would take for us to do this, and I think they're grossly underestimating how much effort there is in this piece of software.

DDJ: Tell me about this piece of software, Frontier.

DW: If you look at the way an operating system like Unix or MS-DOS launches applications, you type the application name, followed by a command line, and it's got all these parameters jammed in there in one place, OK?

DDJ: OK.

DW: The theory here is that launching the application is not a particularly significant event. Once the application is launched, that's when the conversation can begin. [Frontier] reaches into the applications and uses each application as a toolbox. So a word processor becomes basically an API of what may be hundreds of calls, all of which are incredibly good at manipulating text. And a spreadsheet becomes a calculating engine. We've found a whole new approach to integration. Up to this point, if you wanted to integrate a word processor and a database, you had to have an application company that shared your vision, and they had to produce both a word processor and a database under one roof, and they had to put the commands into the menu that did the integration. So therefore by necessity those commands are going to be sort of machine-oriented things.

DDJ: How do you mean, "machine oriented?"

DW: Some people think of Find and Replace as being very high-level things, but for some people they're very low-level. High-level things would be like, "Prepare for board meeting." A series of dialog boxes comes up saying, "Have you got your balance sheet done?" "No." "OK, here's the balance sheet. What should change?" It's a different style of usage.

DDJ: So you're saying that the user could script such a command, drawing on the capabilities of existing applications. Or applications modified to support user scripting. I like the idea of the user being able to use applications as specialized toolboxes.

DW: We as commercial software developers have solutions to offer these guys, and we have not found a way of unlocking them. The whole point here is to rig the applications up with wires, [which] is a very light-weight job. It's a lot easier than, say for example, putting a third-party spelling checker into a word processor, because there's no user interface.

DDJ: This is different from the philosophy of applications talking to one another that we've heard a lot about in discussions of interapplication communication. I've always thought that if applications have to talk to each other, it raises some interesting questions about competition.

DW: I don't believe in applications talking to each other. I believe that the user is the orchestra leader. He talks to one application, asks for something, then he passes that off to the other application. I don't think it's a trivial difference. Because it's where all the sticking point has been in the Mac community. A lot of people are trying to get all these conversations going between applications, and it's an exercise in frustration. If you do it that way you haven't broken the bottleneck.

DDJ: What's the bottleneck?

DW: The bottleneck is, here I am Joe User sitting out there in Peoria, Illinois, and I've got [two] products that between them have all the features that I need, but they don't work together. So I call application vendor A and say, "Hey, man, please put a database into your word processor." Well, maybe they do, maybe they don't. If they do, it isn't going to be the database I like, it isn't going to be as powerful because the word processor guys don't know --

DDJ: That's an argument for IAC generally. Applications shouldn't do each others' jobs.

DW: All right, so we buy this argument. Let's say everybody's really cooperative, so they say, "How would you like us to do this?" So he [tells them and] they go to the next guy and he says, "I want a whole 'nother set of commands. I don't like anything that guy likes." You can't find consensus, [and] if you look for it, if you try to write a word processor that integrates with any old database, your least common denominator is just way too low. I think it's [as] ridiculous for any two applications to talk to each other directly as it would be for any application to know beforehand who was going to do the paste. It won't work that way.

DDJ: What intrigues me is that it seems to call for a lot of cooperation among competitors.

DW: Which, as I think you were pointing out, is a very unlikely thing to happen. And it removes forever any possibility of competitiveness on the basis of how good your wires are. I would really much prefer to see competiveness based on what your IAC wires look like, because I know that in the software industry people get into lockstep very quickly. I think a little bit of chaos would be very useful right now.

DDJ: So how do I, as an application developer, wire up my application for scripting, if I buy your arguments?

DW: Don't worry about everybody else. Worry about yourself. Put the wires into your application so that you could imagine writing scripts yourself that drive your application. The mental exercise that I ask people to go through is: Imagine that you were integrating a scripting language into your product. Everybody's thought about doing it at one time or another, right? So imagine what the verbs in that language would be. That's what you should implement.

DDJ: You're right at the beginning with Frontier. What are your expectations for the product?

DW: It's easy to tell the story of Living Videotext, because it's all shaken out, it's all done. Last time I got to do a mysteryware product, outlining, that I think was way ahead of the curve. I think we're ahead of the curve again, but I don't believe we're seven years ahead of the curve. I believe we're enough ahead of the curve that we will be a leader in this category. That I didn't want to sacrifice, because I don't like the idea of being a me-too in a category. There are too many things that are left unexplored to go out and try to do something that somebody else did.

DDJ: So did you choose wisely in redefining yourself? Is this what you want to be doing?

DW: For me this is almost the most fun I could possibly have, because it's both really gutsy technology and really, really heavy-duty politics. We're all fighting over who gets to design what the next generation of applications looks like. And one of the things I'm looking forward to is playing a little bit in that field. Three years ago, when [I met with Gassee] I had come prepared to talk about doing applications assuming the existence of such a thing as Frontier. Well, now Frontier is almost a reality, and now it looks like it would be fun to do application software.

DDJ: But you're not worried about Apple coming out with something like Frontier?

DW: No. I've decided not to be worried about bluffing this time. I believe we're looking at a bluff. A guy sits down at a poker table and says, I've got a great hand, I'm going to bet real high. Well, these guys are not betting real high on the AppleScript hand. I don't spend a lot of time worrying about that. What I spend time -- I don't know. What do I spend time worrying about? I don't, really.


Copyright © 1991, Dr. Dobb's Journal


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video