How OS X runs applications
Potential switchers are amazed at the installation process for many
OS X apps: drag-and-drop. Mac users take it for granted (until we have to bother with an installer, of course). But what
makes it possible to just double-click an icon and have applications "magically" operate? 0xFE has explored
the process OS X uses to execute
applications (which means, run your software in non-codeboy speak). 0xFE's inquiry began as he tried to
use a couple of common *NIX commands: ldd and objdump. They don't work in OS X, because of the peculiar (for
developers) way the Mac now handles executables.I'm not going to pretend I understand more than the mere basics of what 0xFE explains, but it is a fascinating read into the guts of OS X. It also highlights something we know about Apple: take a process that could be difficult, and make it easier. I've been banging my head on Ubuntu for Pete's sake, where (with Synaptic being the exception) installing apps yourself is not an intuitive task. Notice I didn't claim it was difficult. But anything is easy with enough training. Millions of folks used to use DOS on a regular basis too, but I don't see Vista booting in CLI, do you?
[Via Slashdot]
Share
Categories
Potential switchers are amazed at the installation process for many OS X apps: drag-and-drop. Mac users take it for granted (until we have...
Add a Comment
but , well, in ubuntu EVERYthing is installed by synaptic (and in new ubuntu for june 2006 , it will be a new interface to install easily graphical applications, a simpler synaptic with big nice descriptive icons)
but still, apple forced a good way to package _binary_ files and ressources files (icons, images, , helps..) of applications to simplify their use.
-------------
It would be difficult to do that in linux : you should force or convince thousands of thousands developpers to switch their way of thinking... apple can do because they control the tools, but in linux ? who you convince ? gnome , kde , xfce, qt, gtk, xorg, redhat, debian , gnu, mozilla .... ?
but in fact, it is technically possible to do as apple way, it's only need to organize applications files differently and prepare the software for that.
there are a problems , in that "apple scheme" it's difficult for an application to give a new library than others applications could use. in fact, many third-parties applications for osx have inside the same libraries bundled inside. to be "easy" to install, the developpers copies many libraries insides their applications
sometimes ,you have a few copies of the same libraries in differents applications.
apple use a "package" system (as typical linux distribution ) to install complex software with frameworks (librairies of function) for example Final cut pro which install Shared files and the "app pro frameworks".
so what ? in os x you have 2 ways to install NEW software in the system
- dragndrop : perfectly great way for plain simple graphical applications
- package : .pkg , .mpkg. similar to "patch" in solaris or rpm/deb of linux in some ways.
In linux, they insist to use ONLY one system : _package_ for _all_ things. even applications.
so developpers has to create "package" of all theirs applications, and the package is managed by only one "interface" to install them.
the default : people has to learn there are one system "installer" in their linux
the quality : everything, every files, every extensions to the operating systems
is managed by only one system, one interface (for example, in ubuntu linux it's synaptic). you can know what is a file, you can know if there are update and be sure it wil be install only it's it fits your system.
there are no perfect ways for the moment but the os X way is the one which give the most pleasant experience for real users in mostly all cases.
That first sentence is a bit of a non-sequitur, as how each OS install applications has little to no bearing on how to launch them. Thinking about it, the reason almost all Windows requires an installer and why most OS X can just be dragged and dropped somewhere on your system more involves the facts that first OS X bundles most all the resources into the application bundle and makes them appear as a single file, and that LaunchServices registers applications to the system without tying them to a specific path, unlike the Windows registry.
Not saying that the article linked to wasn't informative... it is very, but it explains something slightly different that what your introduction would imply it would.
Hmm, I managed to read this as "how OS X ruins applications", and I was going to say, OS X tends to *save* applications, not ruin them... at least, from the user perspective.
Ah, I love being tired.
3 Comments