12-04-2.000
El concepto de Package, aunque poco conocido y aun menos utilizado,
está presente en nuestra plataforma desde la introducción
del MacOS 9. La idea es bien sencilla, crear paquetes
de software con todos los elementos necesarios para que un programa
funcione en nuestro ordenador. Sería, salvando las distancias,
una vuelta a los orígenes del Macintosh, a aquellos tiempos
en que las aplicaciones se instalaban copiando la carpeta que
las contenía, sin instaladores, sin librerías,
así de simple.
Ha llovido mucho desde entonces, ahora la instalación
de un programa, y su posterior eliminación, es un proceso
más o menos complicado que requiere una aplicación
especializada, el instalador, que se ocupa de situar todos los
componentes en sus respectivas carpetas. Dichas carpetas, suelen
estar diseminadas por nuestro disco duro, haciendo cada vez
más complicada la tarea de eliminar un programa por completo.
La carpeta de extensiones, soporte para aplicaciones, preferencias,
ayuda, scripts, etc. un verdadero lío para los usuarios
noveles y un trabajo extra para los avanzados.
Simplicidad, señores...
Es la clave del éxito del MacOS, hacer las cosas simples
e intuitivas. Dicha simplicidad se estaba viendo comprometida
por la marea de extensiones y librerías que no cesan
de surgir, como las setas, como los .dll del nefasto Windows.
Un Package no es más que una carpeta, codificada, que
contiene tanto la aplicación como todos los archivos
que ésta necesita para funcionar. Para instalarla solo
tenemos que copiarla a nuestro disco duro, para borrarla basta
con tirarla a la papelera. En principio, y para evitar que los
usuarios causen daños en ella, no se puede abrir como
cualquier otra carpeta. Al hacer doble click sobre el package
se abre la aplicación lista para funcionar. En el esquema,
podéis ver como sería un package en MacOS 9, todos
los archivos residen en la carpeta "carpeta de la aplicación
"X"" (invisibles al usuario), que a su vez se
convierte en un paquete.

Pero hay más...
A lo ya mencionado, se añade la posibilidad de que un
mismo Package contenga varias localizaciones (idiomas) de un
mismo programa. Su compatibilidad entre MacOS 8 y MacOS X es
otro de sus puntos fuertes, una aplicación para dos sistemas.
Más aun, un mismo programa puede correr sobre distintas
arquitecturas (PowerPC o x86), sistemas (MacOS, Windows, etc.)
y formatos de disco (HFS, HFS+, NFS, UFS, SMB) lo que haría
a los Packages compatibles con ordenadores PC. La integración
de todos los archivos (librerías y plugins incluidos)
en un mismo paquete, hace que éste sea idóneo
para su utilización en servidores y estaciones de trabajo.
Lo que en principio puede parecer una vuelta a los orígenes,
es un paso de gigante hacía el futuro de nuestra plataforma.
Simplicidad y compatibilidad...
En el esquema de abajo se puede ver un package preparado para
funcionar en MacOS 8/9, MacOS X, Solaris y Windows. Al hacer
doble click sobre el package y dependiendo del sistema que usemos
(plataforma/idioma) se abrirá la aplicación correspondiente
(que reside en la carpeta "executables") en el idioma
de nuestro sistema operativo. (ojo, el esquema está incompleto,
solo sirve como ejemplo).

De esta forma, obtenemos una aplicación lista para funcionar
sobre cuatro plataformas distintas y en varios idiomas. Todos
los elementos que necesita (librerías, plugins, etc.)
están contenidos en el mismo paquete, limpio y sencillo
para el usuario.
Más información en:
http://developer.apple.com/techpubs/corefoundation/bundleservices/CFBundleServices/index.html