Using Mac OS X as a self-binding device
At the 28C3, when trying to install IBNIZ on an acquaintance’s MacBook, I grew increasedly frustrated with the shortcomings of Apple‘s operating system Mac OS X. Installing developer tools seemed to require either a 99$ developer account or an operating system upgrade . Compared to Debian, where the task is a one-liner (apt get install build-essential), Apple‘s offering turned out to be so complicated that, after several hours, we stopped trying.
To me, this incident illustrates one feature of Apple‘s approach to technology: Limiting what users can do in the name of monetarization. Admittedly many of the resulting usability problems can be rectified: Package management comes with Homebrew, support for royalty-free media formats through QuickTime Components and several people suggested looking for OS upgrades on The Pirate Bay. But even considering those third-party fixes, OS X remains an operating system that treats its user as an enemy – exemplified by Apple‘s choice to break debugging.
So why do many hackers – people with an urge to take things apart – use an operating system that limits their ability to share knowledge or tinker with the components? Richard Stallman‘s assertion that
the computer as a jail has been made
stylish may hold for the general population, but does not convince me in this case: True, many hackers may also be hipsters – but as the problems one encounters using closed systems are not of a purely aesthetic kind, I would suspect cognitive dissonance creeping in sooner or later.
When bringing up the issue with mntmn, he proceeded to tell me the GNU/Linux experiences that turned him towards OS X. Expecting complaints regarding common usability failures of popular desktop environments, I was surprised – apart from a tearing issue with Xfwm4, he spent most of the time detailing futile attempts of getting Ableton Live to work; he moved to OS X when realizing that the resulting all-night hacking sessions were taxing his job and relationship performance.
The obvious lesson here may be about the power of killer apps. On a deeper level however, mntmn‘s difficulties with GNU/Linux were not closely linked to Ableton Live (or any other application) working: The fundamental problem he encountered was that GNU/Linux gives the user countless opportunities to spend time tinkering, distracting from other tasks – something more closed systems do not allow by virtue of design.
The emerging issue – that flexibility can be a bad thing – is intimately related to the way how humans respond to challenges. Individual problem solving behaviour can be classified using the notions of performance and mastery orientation: A performance-oriented approach is characterized by demonstrating knowledge or skill, while a mastery-oriented approach focuses on improving the same. Being indistinguishable under usual circumstances, notable differences show up when tasks become difficult:
Say you take a person with a performance orientation (“Paul”) and a person with a mastery orientation (“Matt”). Give them each an easy puzzle, and they will both do well. Paul will complete it quickly and smile proudly at how well he performed. Matt will complete it quickly and be satisfied that he has mastered the skill involved.
Now give them each a difficult puzzle. Paul will jump in gamely, but it will soon become clear he cannot overcome it as impressively as he did the last one. The opportunity to show off has disappeared, and Paul will lose interest and give up. Matt, on the other hand, when stymied, will push harder. His early failure means there’s still something to be learned here, and he will persevere until he does so and solves the puzzle.
As hacking is largely defined by overcoming difficulties, a mastery-oriented approach is probably common among hackers. Focussing intensely on a task, however, carries the risk of getting stuck in the face of insurmountable obstacles – as conceding defeat is considerably easier for a performance-oriented individual. Precisely that may have happened to mntmn – I remember telling him several times during the conversation that I would have given up way earlier.
One way for the mastery-oriented to minimize the risk of deadlock is self-binding – arranging the environment in a way to change one’s own future incentives, such as placing an alarm clock apart from one’s sleeping place on the other side of the room. Using inflexible software can thus be compared to Hernán Cortés‘ decision of scuttling his fleet – robbing a future self of options, thereby increasing odds for success. In conclusion, some people may use OS X not despite, but because of their urge to tinker, just to avoid getting sidetracked.
XCode 3 (die nicht-ganz-aktuelle und letzte für Leopard verfügbare Version) gibt es sehr wohl kostenlos – man braucht einen Account für das Dev Center, aber keine kostenpflichtige Mitgliedschaft im Developer Program.
Mit XCode 4 hat Apple das ganze in den App Store verlegt, den es für Snow Leopard und Lion gibt … für eine kurze Zeit sogar tatsächlich kostenpflichtig, für Snow Leopard ist das möglicherweise immer noch so. Für Lion ist XCode wieder kostenlos.
In meinem Kopf spukt rum, dass ich auf GitHub auch mal ein Repo gesehen habe, wo jemand einfach die von Apple veröffentlichten Quellen genommen und daraus eine Toolchain gebastelt hat, aber finde das grade nicht. Mist.
Developer Tools gibt es einfach so, z.B. bei https://github.com/kennethreitz/osx-gcc-installer
Nix App Store, nix Lion. Ansonsten habe ich mit OS X ähnlich viel Ärger wie mit GNU/Linux und Windows, aber auf anderen Ebenen. OS X kann ich wenigstens meistens produktiv nutzen und es wird nur hakelig, wenn ich hackerige Dinge tun will. Linux war die ganze Zeit hakelig (und die Apologeten mögen mich gepflegt Götz von Berlichingen). Windows war entweder stabil und produktiv oder horrend kapott.
Unter dem von dir angegebenen Link finde ich keine binaries für OS X 10.5.
Auch: Ich fand bisher fast jedes von mir benutzte Betriebssystem (MS-DOS, Windows 3.11, Windows 98, Windows XP, Slackware, Suse, Ubuntu, Debian GNU/Linux, OSX) irgendwiein der Grundausstattung. Sobald etwas vollumfänglich einrichten konnte, ging es dann – aber das ging und geht eben nicht mit allen Systemen zufriedenstellend; wird wohl so ein sein.
Xcode is free on every OS X 10.5 install DVD.
Do not be silly.
You can drive a race car at the weekends and still get to work every day in a Corolla. There is so much to hack and play with, it doesn’t need to be your operating system. OSX might be limited in what you can do, but it runs very stable and it’s well thought through for daily tasks. It’s a closed system but all things work well together. You can always fire up a VM or ssh into a linux box if you need what can’t be done on OSX.
Bernd, do you wish to imply that not having installation media with you at all times is a user error?
Jan, when I asked a guy a few days later for options to develop under OS X, he told me that his operating system may be OS X, but for development purposes he has an array of Ubuntu VMs. For realtime audio and video synthesis, however, that is not an option.