Dec 00 Online
Volume Number: 16 (2000)
Issue Number: 12
Column Tag: MacTech Online
The New Basics
by Jeff Clites <online@mactech.com>
What Mac user out there doesn't remember Apple's famous 1984 commercial? It only aired once, during the 1984 Super Bowl, but it won numerous awards and is held by some to be the greatest commercial of all times. It was directed by Ridley Scott, director of Blade Runner and more recently Gladiator. I still get chills every time I see it. The interesting thing to remember is that when that commercial came out, Big Brother was IBM they were the competition, the bad guys, the enemy. Now, the villain might be Microsoft (if anyone), and IBM is, well, just there. They seem like neither enemy nor ally, just more of a quiet neighbor you know they're around, but you're not sure what they do. They've reinvented themselves, and there's almost no overlap between their target market and Apple's. But the landscape of computing is changing, and there's a party going on. It's more of a Rave than a party, actually there's all kinds of strange stuff brewing, and lot of people are going but nobody's really talking about it during the day. The theme of the party is Unix, in a way, but it's more than that. Suddenly, Unix underlies every important operating system out there except Windows. It's the basis of Mac OS X, Linux, BSD, and all of the heavyweight server software by IBM, Sun, SGI, and HP, and even smaller niche OSes like QNX Neutrino. This doesn't mean that we are all going to band together to fight Microsoft, because the new world isn't about fighting with Microsoft. It isn't about something so negative. The real point is that there's an incredible landscape wide open for the cross pollination of technologies, and this exchange isn't dependent on explicit alliances, but rather on standards on just having things in common. It's an unconscious union. This is important it means that a flow of ideas will happen even in the face of competition, because company A is better off if its software and hardware can talk to company B's than if it can't, and vice versa. And it's just icing on the cake when they are enlightened enough to share implementations rather than just specifications to realize that it's to everyone's advantage to just share the code rather than waiting around for everyone else to reimplement it. This is what the Open Source movement is all about, from a purely practical perspective at least. This isn't a completely new thing of course, but it's new that the Macintosh will be fully a part of this standards-based, Unix-centered community, and it's new that this community will include just about everyone and this is going to continue to push us forward as a whole.
So what does this all mean to the Macintosh developer? At the most obvious and literal level, it means that there's a bunch of software out there which will suddenly run on Mac OS X with little or no modification, ranging from applications to frameworks to libraries to individual routines things directly useful to the consumer, to the system administrator, or to the developer. But more fundamentally, it means that there's a new set of basics out there a new range of technologies that every developer needs to know about. And really, it won't be enough to just know that these technologies exist developers will have to know how to use them as a matter of course. And these New Basics are new in two ways: there are technologies which will be new to Macintosh developers (and they may be new to everyone), and it's new that the essential basics are cross-platform they're the same for almost all developers, independent of operating system or type of development. So this month, we're going to touch on the first of these, XML, and point you to my picks for the essential references. In the coming months, I hope to cover the rest of the New Basics. And when we're done, pass the list on to your Unix and Windows friends they'll need them too.
By the way, you may be wondering why I singled out IBM to start off the discussion. They came to mind because their developerWorks site gives great coverage of the New Basics, and I'm constantly lead back to it. IBM has gone from a threat to a resource. Visit their site frequently to find ongoing information about important technologies.
XML
The first New Basic is XML. As a technology, it has been hyped, over-hyped, and re-over-hyped in the press. It doesn't solve every problem under the sun, as some have implied, but it has done one important thing: it has gotten everyone thinking about information formats, and given us a common starting point to flock around when designing new ways to store and interchange data, which makes it more likely that the formats we settle upon will be sensible and reasonably easy to process by anyone who wants to. For better or worse, it is being used just about everywhere possible, and this trend is only going to grow for the foreseeable future. Developers will have to be comfortable using it when reading and writing documents and when writing applications which talk to other applications, either locally or over the internet (which includes almost all applications being written today). So here are my picks for the essentials: First, the annotated XML specification on XML.com. It's the specification itself, with additional notes added by Tim Bray, on of its authors. It isn't what you'd want to use to learn about XML for the very first time, but it's very handy to have around when you need the final word on whether some piece of syntax is legitimate, and it can be quicker to just go to the source rather than searching for someone else's explanation. But when you're learning about XML as a developer, you're ultimately more interested in how than what you need to process XML, and the specification doesn't cover strategies for this. The two best resources I've found are books. Professional XML (ISBN: 1861003110) weighs in at over 1000 pages, and it gives coverage to almost every major technology surrounding XML. Some of these technologies have evolved since the book was published almost a year ago, but it's still relevant to answer the "what's that?" and subsequent "okay, now how do I use that?" questions. A newer reference is Essential XML: Beyond Markup (ISBN: 0201709147). It covers a more focussed range of topics, but as a result it gives thorough coverage of all of the areas on which new technologies are likely to be built methods for processing, specifying, navigating, linking, and transforming XML documents. And this book is refreshing and unique in two ways: For one, it focuses on the XML Information Set (Infoset), which gives the abstract definition of XML, independent of its syntactic detail. The Infoset almost never gets coverage elsewhere, but it's really the most important specification, and it makes explicit the notion that what we normally think of as XML is just one way to write it down on paper, just one syntax out of many possibilities for serializing XML data. In the push for standards, this distinction is being overlooked, and there's an undue focus on the syntax of XML over its concepts people are forgetting that the angle brackets aren't what's important, and an alternative syntax might be a good thing to have around. The other refreshing thing about Essential XML is that it explicitly acknowledges that XML has been over-hyped, and in fact the authors wrote it to help them sort out what really is important to the programmer.
Finally, my last essential reference for XML is the xmlhack web site. It's a news portal site, which gives summaries and links to relevant new bits of XML information on the internet. Just glancing at it from time to time will give you a feel for what areas are important and evolving, in addition to giving you pointers to new developments in technologies of specific interest. (I should mention too that these pointers will sometimes lead you to the XML.com site mentioned above, which is actually a great place to look for in-depth articles.)
So, that's it for the first of the New Basics. Remember to check back in the coming months, when I hope to cover more of them. Until then, I'll keep you in suspense about the rest of the technologies on my essentials list....