With the re-architecting of the internals of AutoCAD anticipated for Release 12 (the OOPS project), Autodesk will be in a position to take a bold step which, if successful, may ensure the preeminence of AutoCAD for the next quarter century, greatly accelerate the pace of AutoCAD development, and establish a new paradigm for the relationship between a PC software vendor and its customers which our competitors will find difficult to emulate.
I'm talking about making the source code for AutoCAD available, and before you stop reading, let me explain the reasons for such a move as well as the means I've come up with for testing the concept without incurring any substantial risk.
Why distribute source code? Because we're greedy, and we'll make more money that way. Consider Unix. Unix source code has always been available. In the early days, when Unix was primarily used within universities, AT&T's licensing policies made source available to most users of the system. As a consequence, an entire generation of computer science students came to think of all operating systems in terms of Unix. I believe that the dominance of Unix in the workstation market today is directly traceable to that policy. Tens of thousands of people learned Unix as their first system, and learned it in depth as only access to the source can enable. They learned how to adapt Unix for other machines and applications. By thinking of all operating systems within the Unix paradigm, they demoted those other systems to second class status and made it difficult for any of them to assail the position Unix had achieved, not just in the market, but in the very minds of the decision makers.
We can do the same thing with CAD. Today, AutoCAD has become synonymous with CAD, but only from the perspective of the user. By making source available, the very implementation of AutoCAD will become the paradigm for how CAD systems are built. Universities will use AutoCAD to teach computer graphics software development, and a generation will come to think of graphics software in the language we've defined--AutoCAD. But that's not all.
For those fanatically dedicated users will also be doing things to their AutoCAD source code. They'll be implementing extensions, replacing antiquated algorithms with the latest concepts from current research, investigating new ideas in user interfaces, and they'll make all of these developments available to us. Why? Well, because that's part of the source license but, more importantly, because they want the recognition that comes from having a vendor adopt their work. If this seems like fantasy, please recall that most software developers at Autodesk are using workstations that run an operating system developed by AT&T, provided in source form to its customers, one of whom, the University of California at Berkeley, extended it into the operating system of choice for workstations and handed those changes back to AT&T.
All of the founders of Autodesk learned their trade by working on software provided in source code form by its vendors. I think any of them will readily confirm that such experience tends to make one view all subsequent systems in terms of the one you've mastered at the source level. Within five years, a major role of our software development department may be evaluating various user-developed extensions to AutoCAD and integrating them into an ever-changing product.
But isn't this giving away the store? Not at all. First, if somebody wants to steal AutoCAD, starting with the source code is a pretty idiotic way to go about it, compared to just copying the distribution discs. There's no need to worry about disclosing any deep, dark proprietary information either, since AutoCAD doesn't really contain any. All of the algorithms used in AutoCAD are available in the open literature and for the most part are used by all CAD systems. In any case, a creative user can always reverse-engineer technology without source code, as the customers who've decoded the .DWG file format have demonstrated.
But what about serialisation, hardware lock code, and so on? Release 12 holds the answers to these concerns. The OOPS mechanism allows code to be written in the same manner regardless of whether it is within what we now call the ``AutoCAD core'' or outside in an ``application.'' By defining the core as a very small module, provided without source, containing the security-related code, and most of the rest of AutoCAD as outside the core, we can provide source to all the portions of AutoCAD a legitimate user might want to examine or modify without compromising the security we have today in the core code. There is no efficiency penalty in structuring the program in this manner, so it's largely a question of where we choose to draw the line.
Do we really want users to see how awful some parts of AutoCAD are? Absolutely! Then some wild-eyed kid at some backwater college will rewrite the OFFSET command so it really works right and mail it in. This really happens. Trust me.
But what if I'm wrong? How can we justify taking such a risk? Simple, try it out on a little piece first. In Release 12 we have the opportunity to separate IGES and dimensioning, two of the most-modified sections of AutoCAD, portions that have accounted for an endless series of user requests for change, and experiment with source licensing them. Clearly, nobody is going to be able to knock off AutoCAD by having access to these pieces. Let's go ahead and make IGES and dimensioning applications at the OOPS level (something that makes sense in any case, from purely technical considerations within the product), and then dip our toe in the water by introducing source licenses for them at, say, $1500 for both. The educational price would be something like $50. (My long term goal for a full AutoCAD source license price would be equal to the runtime license. For example, $3500 for the binaries and another $3500 for the source. All source licensing sales and administration would be direct, and hence all sales would be at full list price.)
Yes, indeed, this could generate additional revenue, couldn't it?
Editor: John Walker