Dec 00 Online
Volume Number: 16
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.
• 1984 Commercial
<http://www.tbwachiat.com/product/historical_work/tv/1984/1984.html>
• Apple's 1984: The Introduction of the Macintosh in the Cultural History
of Personal Computers
<http://www.duke.edu/~tlove/mac.htm>
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.
• IBM developerWorks
<http://www.ibm.com/developer/>
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.)
• The Annotated XML Specification
[TOKEN:15563]http://www.xml.com/pub/axml/axmlintro.html>
• xmlhack: developer news from the XML community
<http://www.xmlhack.com/>
• XML.com
<http://www.xml.com/pub>
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....