Saturday, January 18, 1997 by Dave Winer.
Heard in a boardroom: It's going to take a few years, but the whole industry is going to switch to Java. "Why?" I ask. "So this can never happen again."
The quote, which will remain unattributed, refers to the incredible confusion surrounding the Mac platform, and the position that Microsoft holds in desktop operating systems.
When a big tree falls, sunlight shines on smaller plants and they get a chance to grow.
People who developed Mac software as their only business are making software for other platforms. People who have had to compete with Microsoft in the apps business find new partners to help sell products to large corporate customers on different terms.
A new concept appears -- "native operating systems". They provide the balance for the virtual OS that everyone is interested in -- the Java virtual machine -- the bridge to the inevitable (real) Java machine that will make sense when the base of Java software is deep enough to justify its own hardware.
The next generation of powerful software will have a native component and a Java component. After that, fully-Java software, assuming the hardware arrives that can run such software at acceptable rates.
Publishing systems are replaced by web publishing systems. The Seybold crowd still uses Macs. Publishing systems are built out of AppleScripts. They worry! We hear them. What to do?
Stability is wanted quickly. Stability can come from other places. Stability is a profitable business. Nature abhors a vacuum. The software business too.
Back to the trees. Some of the stability is going to come from newly exposed small plants that used to live in the shade of the big tree. And nearby trees will spring new branches to capture some of the newly available sun.
I have a dream! I grok scripting systems, having invested the last eight years in the task of building my favorite scripting environment. Focus focus focus. I'm definitely a focused dude. Hmmm. OK.
I understand that scripting is much more than a language. To make real things happen you need easy access to operating system functions, the ability to drive apps, a full suite of development and debugging tools, a multi-threaded runtime, gateways to server software and databases, user interface design tools, and a persistent storage system to hold scripts (reusable code) and shared data.
Sample scripts, a framework for sharing scripts and know-how, mailing lists and bulletin-boards and developer conferences.
Script writers are different from C developers. The Java community is making tools that make sense for C developers. There are other markets that need a scripting environment. (Hint: web developers.) They like the idea of Java as a scripting language, not as a replacement for C++.
I learned a long time ago (four years) that insisting on owning the language is a good way to get developers to freeze. It's much better to add value to any language they choose. Leave the language choice with the scripter. Java is a comfortable choice for many of them.
There are three groups of people involved in the scripting market, on any platform, in any year, using any tools -- app developers, script writers and powerscripters.
App developers create interactions. Complex stuff requiring years of training and committment to very very hard work in a competitive world.
Script writers. People who manage systems or networks or websites or groups of users, customizing the systems, building applications out of system functions and commercial apps. They're at the front line. They understand the human systems. Every organization is different. Lots of secretaries fit into this category. They have the time and the patience to learn, and they understand the organizational issues. Librarians turn out to be big end-user script writers too.
Powerscripters. They connect the two worlds. At the intersection of any scriptable product and script writers, we need people who have a systems background, deep talent and committment, people who are driven to learn and grow. The success of our scripting platform has been largely due to work of powerscripters. But people we work with in the app developer world don't understand this relationship, and that limits what we can do.
On the Mac, it's remarkable that the app developers have done so much to support scripting. But they tend to reveal the full functionality of the product when only a simplified subset will ever be used by real world scripting apps. I'm a commercial developer myself, and understand the mindset. I want to expose everything possible. It's easier to sift thru a hundred APIs to find the one you want, than to work around a missing API. That's the app developer view of things. But this approach doesn't serve the script writer very well.
When I'm writing scripts I want to get the job done quickly and I like elegance and simplicty. Then I want performance and systems that don't break when things change, as they always do. I like it when someone has anticipated my needs, when the road is paved ahead of me. Only a powerscripter is going to be able to provide that kind of streamlining.
I know something about myself now that I didn't know before.
My professional family is the world of the Macintosh. I feel an affinity for other people who identify with the platform. If no one had ever used the Mac, I wouldn't feel this way. But this association has brought some of the most intelligent and creative (and stubborn!) people into my life. It's our work together, the creativity that we share, that's so important to me.
That's where the hug for Gil came from. Hey people who loved the Grateful Dead didn't care when Jerry missed a note. That made it more real. The platform will live forever, even if they stop making Macs. I'll be a Mac developer even when my software ships on other systems. That seems obvious to me now, even if it didn't before.
In my earlier pieces, I shared my frustration with Apple, but I always cared for the Mac. I'll do my part. I don't feel like a parent, but I do feel like an uncle. We're not finished shipping Mac software. We'll keep going as if nothing was wrong, and hope that becomes a self-fulfilling belief.
When Jerry Garcia died in August 1995, I wrote the most poignant of several eulogies that have appeared in DaveNet. I was glad I wrote it because it put a marker in my life. I will never forget how I felt that day because I have a perfect time capsule that brings the feelings back. When it's time to move on, I like to read this piece.
An excerpt follows...
There was nothing rehearsed about Jerry Garcia, and that was his charm.
The Dead culture was designed to survive Jerry's death. He told us not to worry about his soul. So I won't.
If I had known he was going to die I would have listened to his music more carefully.
Like the big tree that fell last March, the death of a huge human being like Jerry Garcia frees up a huge amount of space. Once there was a tree, now there are seedlings. After the sadness, there will be huge creativity.
Appreciate, respect and celebrate every person you can. Now is the time to have fun! Tomorrow they may be gone.
Let's have fun!