Xcode: Apple’s not-so-secret weapon
In the old days— before Mac OS X—being a system administrator on a network that had Macs was often annoying. Finding network management tools that even dealt with Macs was a pain, and if you did, quite often the Mac functionality was crippled compared to the Windows version—assuming a Windows version existed. There were exceptions, but they were not all that common, and it was even less common that they integrated well with tools for other platforms. You could manage Macs in an organized manner, and manage them well, but they still tended to be silos from the rest of the network management infrastructure.
Even more annoying was the fact that even if you had the desire to write your own tools, it wasn’t easy. You had to pay, quite dearly, for development tools. Writing Mac software, especially stuff that talked to hardware at a low level, was not easy, and writing Mac software pre-Mac OS X was like nothing else. There was no way to just download, build, and install what you needed the way Unix administrators did, and there wasn’t as much of a commercial infrastructure as Windows administrators had.
That changed with Mac OS X, and more importantly, with Apple’s decision to give away its development tools such as Project Builder/Interface builder, Shark, Quartz Composer, and others, with every copy of the operating system. I know in my case it opened up a huge world that I had known about, but had been locked away from with the Mac due to the nature of the Mac OS. With the inclusion of the developer tools, I was no longer limited to what I could buy. I could, for the most part, download the source for various tools from places like SourceForge, and a few hours later, have the tools up and running.
Making things even easier were the creation of Mac OS X package managers like Fink and DarwinPorts, (now known as MacPorts). With the advent of package managers, using open source tools became even simpler, as package managers take care of the various requisites and requirements that are needed to build and install the kinds of applications an IT manager will use. So instead of manually building and installing a half dozen bits to install say, Nagios, with MacPorts installed, the initial build and install is a matter of typing sudo port install nagios .
That’s a big reason why I like Mac OS X as a network management platform. True, I can do 90 percent of what I do in Mac OS X with Linux. However, at some point, I also need to manage Macs, and integrate with Active Directory. And while Linux-based tools can do the latter, it’s not always very good at the former; honestly, without commercial tools, plugging Linux into Active Directory is still not as easy as doing the same with Mac OS X.
This is not only just convenient for me, and other IT administrators, but it’s also an important advantage over Windows. Regardless of the version, Windows doesn’t ship with any kind of developer tools other than the ability to do some rudimentary Visual Basic (for Applications) work. With Mac OS X, I have the tools to write everything from device drivers to large database-driven applications, for free with the OS. Install the OS, run the Xcode installer, and voilá! Instant pro-level development tools. With Windows? Not so much.
Remember what I said about installing Nagios on Mac OS X? Well, there’s really no documentation for installing it on Windows. For one, so much of the infrastructure that Nagios needs is not there, but for another, you’d have to get some version of gcc on Windows.
So to use open source software with Windows requires you either only use packages with pre-built binaries, or you do a lot of plumbing upgrades just to get to where Mac OS X is with a single post-OS-setup installer.
But that’s only part of it. The other thing Apple did by providing a free, full-featured copy of its developer tools was to make every single user of Mac OS X a potential developer. The company didn’t invent this concept, but it has been able to implement it on a far wider scale than anyone else. Note: that’s a full-featured copy of its developer tools. No “student” or “express” versions, that only support a single language, with a long list of every more expensive “standard”, “pro” and “team” versions, reaching into the many thousands of dollars at the high end. No separate download, it’s right there on the install media, and if you want, a free option to join the Apple Developer Connection.
Now, anyone who thinks that every Mac user immediately plunges into Cocoa and Obj-C is delusional, but the fact that every Mac user can means that every CompSci student with a Mac has all the tools they need to use what they’ve learned . It means that every Mac user who is interested in learning how to program has the tools they need right there. That is what you call a decision with far-reaching effects, and all it required was someone to decide that maybe making money off of developer tools is less important than creating millions of potential developers every year.
I can tell you, as a Mac user, and an IT administrator, not only has it worked, it has worked spectacularly. By making the running of an installer the only thing you have to do to have the Xcode tools and the gcc-related tools at your fingertips, it made the amount of applications available to the platform far beyond anything Windows has, or will have until Microsoft is willing to make the same kind of decisions that Apple did.
In the 1990s, by pricing Visual Basic cheap, Microsoft created millions of reasons to move to Windows and stay there. In this century, by pricing Xcode at free, Apple has taken that example, and implemented it better. I, and every other Mac user at every level have been reaping the benefits ever since.
[John C. Welch is a Unix/Open Systems Administrator for Kansas City Life Insurance and a long-time Mac IT pundit.]