Las garras que el León aún no mostró, por Juan de Dios Santander

Cuando se hizo el pre-anuncio de Lion en el evento Back to the Mac de Septiembre, se mostraron una serie de características que no llamaron la atención a demasiada gente, entre otras cosas porque la mas esperada, por una parte, es la Mac App Store, que va a estar disponible también para Snow Leopard.

Entonces, ¿qué va a traer Lion que pueda hacer que la gente vaya a las tiendas de Apple para actualizar sus equipos? Solamente podemos especular, pero frente al desencanto que hubo con la presentación, especialmente porque no parecía haber mejoras a nivel interno, creo que hay razones para pensar que Lion va a ser un serio sucesor de Snow Leopard. ¿Quizá el definitivo, como apuntaba Alf?

Herramientas de desarrollo aún mejores

Snow Leopard fue la primera versión de Mac OS X totalmente desarrollada utilizando Instruments (y la infraestructura D-Trace portada a Mac OS X desde Sun) para poder sondear el rendimiento de los distintos elementos de Cocoa, y también de subsistemas del kernel. Eso implicó un menor número de errores en Snow Leopard, y un mejor rendimiento que Leopard, pese a presentar bastantes mejoras internas.

Pero Lion sera la primera versión de Mac OS X compilada con Clang y LLVM… y eso es un paso muy importante por dos motivos.

En primer lugar Clang es un compilador de C mucho más moderno y modular que el venerable gcc con el que Mac OS X ha estado viviendo desde su primera encarnación como NeXTSTEP. Su modularidad permite que las reglas de cada lenguaje de programación soportado por Clang se puedan utilizar no solo para compilar, sino para proporcionar ayuda a los programadores acerca de que funciones se pueden utilizar en cada momento, o qué variables son utilizables.

Pero es que Clang crea una representación intermedia del programa para indicar errores de forma dinámica, mientras se esta programando: por ejemplo, es capaz de detectar todos los caminos que se van a seguir dentro de un programa, y comprobar si en alguno de ellos puede quedarse sin liberar un trozo de memoria, por ejemplo, lo que produce pérdidas progresivas de recursos en el ordenador.

Esa representación intermedia después es optimizada por LLVM para el hardware final. Ahi es donde se diferencia la compilación para dispositivos iOS y Mac OS X: LLVM compila y optimiza el código intermedio para diferentes arquitecturas, incluyendo ARM para iOS, y x86 y x86_64 para Mac OS X. Pero esa modularidad permite utilizarlo sobre la marcha para optimizar código OpenGL, o código OpenCL que se pueda distribuir sobre las unidades de proceso incluidas en las tarjetas gráficas del Mac. Y por supuesto, es fácil de incluir reglas para nuevos dispositivos que puedan aparecer.

Apple ha ido integrando de forma progresiva Clang y LLVM en las herramientas de desarrollo Xcode. Xcode 4, que están probando algunos desarrolladores, permite que con mucho menos esfuerzo un mismo equipo de programadores sea mucho más productivo: se cometen menos errores, es posible detectar los que se producen de forma mucho más rápida, y se puede ayudar más al programador proporcionándole realmente las funciones que implementa cada objeto, porque Xcode no tiene que reinventar el compilador: puede usar Clang para que le diga que funciones hay disponibles, o que funciones tienen nombres parecidos (ni siquiera iguales) a los que el programador quería usar.

Además, Xcode 4 integra por fin en un único programa la fase de definición de interfaces de usuario, que antes se hacia con Interface Builder, de modo que es posible conectar trozos de código y elementos de interfaz simplemente arrastrándolos. Antes la conexión se realizaba a través de archivos de texto que Interface Builder actualizaba automáticamente, pero era más lento, y más propenso a errores. Y funciona tanto para interfaces Mac OS X como iOS, por supuesto.

Puesto que Apple es una compañía que no crece alocadamente, y mantiene un grupo de desarrollo de Mac OS X (e iOS) con un tamaño muy inferior al que tendría la competencia, aumentar el rendimiento de sus programadores es una forma muy buena de mejorar la capacidad de producción. Eso significa que en el tiempo que les esta llevando desarrollar Lion, podremos tener unas cuantas características nuevas distintivas de Lion que aún están por ver, y que seguramente podremos apreciar en la WWDC 2011.

En cualquier caso, el compromiso de Apple con la mejora de sus herramientas de desarrollo es lo que ha permitido la rápida adopción de una plataforma nueva, como iOS, basada en un lenguaje que era desconocido fuera de Mac OS X, y que pese a eso la gente reconozca que se trata de las mejores herramientas de desarrollo existentes para una plataforma móvil. Que eso beneficie a Apple internamente es aún mejor.

Más seguridad

Desde Leopard se nota un mayor énfasis en la seguridad por parte de Apple. Funciones como la cuarentena de archivos, la carga de funciones de módulos como QuickTime o WebKit en posiciones de memoria aleatorias, la ejecución aislada de plugins, la retirada de los Input Managers escritos para APIs de 32 bits… Apple ha ido tomando medidas de seguridad crecientes, y no hay motivo para pensar que vaya a bajar la guardia.

Recordemos, además, las ya mencionadas capacidades de Clang para detectar errores. Eso incluye la posibilidad de detectar fallos típicos de los que resultan en errores de seguridad (acceso a punteros no inicializados, intentar acceder a elementos fuera del espacio de memoria asignado), por lo que Lion sera más seguro incluso aunque no se hiciera nada más. Si de paso se implementan las medidas que faltaban en Snow Leopard, como que las funciones del propio núcleo se encuentren en direcciones de memoria aleatorias, Lion sera de largo el Mac OS X más seguro.

Bloques, bloques, bloques

Snow Leopard introdujo el concepto de Grand Central Dispatch (GCD). GCD permite crear trozos de código (bloques) que encapsulan como tratar de forma independiente sobre distintos datos, pero de forma configurable, de forma que el código es común, pero se encapsula la forma de actuar de cada uno.

En Lion, y gracias a poder usar LLVM, es muy posible que esos bloques puedan ser optimizados en tiempo de ejecución (otra de las ventajas de LLVM), y según el tipo de operaciones y datos que realicen, puedan lanzarse sobre la tarjeta gráfica, sobre el procesador, o sobre el elemento que pueda completar antes la tarea con un determinado nivel de carga.

Sin embargo, aún no hemos visto una aplicación en Snow Leopard que haga un gran uso de los bloques. La granularidad de Mail, citado como ejemplo de aplicación que se adapta a la carga del sistema en Snow Leopard, todavía es demasiado limitada, y hay muchas tareas que se bloquean entre si. Lion debería aportar mucho más en este aspecto.

Recordemos que iOS 4 ya incluye soporte para bloques, por lo que es de esperar que Apple incida más aún en ellos con Lion: es el futuro para diferenciar la capacidad tanto de iOS como de Mac OS X como plataforma, tanto para facilitar el trabajo a los programadores, como en aumentar el rendimiento, manteniendo el consumo: iOS 5 podría ser el primer sistema operativo para móviles capaz de utilizar la GPU para acelerar la ejecución de aplicaciones no graficas.

Encontrar o manejar, he aquí la cuestión

El Finder de Snow Leopard solo recibió cambios menores en cuanto a capacidades ofrecidas al usuario, pero recibió una gran mejora tecnica: el Finder de Snow Leopard esta basado en Cocoa, y cada vez que Apple ha pasado uno de sus programas a Cocoa se ha visto una enorme aceleración en la capacidad de mejorar dichos programas, así que hay esperanza 😉

Además, en 2011 se cumplirán cinco años desde que Apple comenzo a buscar ingenieros de software especializados en la creación de interfaces de usuario para sistemas de archivos, con énfasis en el rediseño del Finder. En ese tiempo es de esperar que Apple haya avanzado algo 😉

Con Snow Leopard se introdujo una interfaz de bajo nivel para poder crear metadatos arbitrarios en los archivos, que se pueden buscar con Spotlight. Con una buena interfaz para esos metadatos, Spotlight podria verse mucho más reforzado. Eso podría afectar a muchas más aplicaciones, como Agenda, iCal, Mail, y similares, al poder asignar informaciones cruzadas, como etiquetas de proyectos, a través de todas estas aplicaciones.

No tengo ni idea de que pinta tendría ese Finder, pero dada la tendencia de Lion a los interfaces inmersivos, podemos imaginar que el Finder de Lion podria tambien ser asi, pero entonces necesitamos mayores capacidades de interacción con los elementos del sistema de archivos.

De otra parte, tenemos una tendencia contraria: los dispositivos iOS nunca muestran un sistema de archivos a sus usuarios, y de ahí la presencia del Launchpad (lanzador de aplicaciones tipo iOS) en Lion.

En cualquier caso, creo que el Finder tradicional se mantendrá, mejorado para la adición de metadatos arbitarios por parte del usuario, y que igual que aparece el Launchpad, habrá otra forma novedosa de visualizar los archivos.

Jugando al multitoque

La introducción del Magic Trackpad supone la confirmación total de la filosofía de Apple respecto a la tecnología multitoque: no es para usarla en pantallas verticales, sino en superficies horizontales.

Es de esperar que más y más elementos de AppKit (la parte de Cocoa con la que interactuamos los usuarios) serán sensibles a gestos multitoque, de forma que sea todavía más sencillo para los programadores crear aplicaciones que usen el multitoque de forma efectiva.

Cabe también la posibilidad, dado que tanto los trackpads de los MacBook como el Magic Trackpad son sensibles a la presión, de que la presión pueda servir como tercera coordenada de navegación, pero esto lo veo dentro de lo improbable.

En el futuro

Hasta ahora, gcc había sido bastante malo a la hora de optimizar código para PowerPC, pero también para x86/x86_64 (y podemos imaginar que para ARM, que es otra arquitectura RISC). Esa esa una de las razones de Apple para haber adoptado Clang en combinacion con LLVM.

Pero LLVM son las siglas de Low Level Virtual Machine. LLVM es, en sí mismo, un lenguaje de programación, y un entorno de ejecución. Es posible crear nuevos lenguajes de programación que tengan a la LLVM como objetivo, y después se tienen todos los beneficios de poder elegir cual va a ser el código definitivo para la ejecucion (ARM, GPU, x86…).

Eso permite a Apple varias independencias: primero, no depender de Objective-C, si ciertas innovaciones implican realizar cambios en el lenguaje de programación que fuesen incomodas de introducir en Objective-C. Lo más interesante es que Cocoa seguiria siendo el marco de crear las aplicaciones, pero cambiaria el lenguaje de programación subyacente. Un ejemplo de como podría funcionar un cambio así seria imaginar MacRuby, pero en lugar de interpretado, compilado a LLVM: toda la expresividad del nuevo lenguaje, con el acceso al marco de creación de aplicaciones, y la posibilidad de ejecutarlo tanto en ARM, x86, GPU…

Lo cual nos trae a la segunda independencia: LLVM permite utilizar distintos procesadores de forma independiente del lenguaje, de modo que es posible que Apple cambie (una vez mas ;-)) de procesadores y hacer uso de las características especiales que tengan esos procesadores. Entiendase además procesadores en el sentido amplio, incluyendo las unidades de proceso de las tarjetas gráficas, por ejemplo.

En ese caso, seria posible dar el salto a AMD, y utilizar las características propias de AMD, en muy poco tiempo. O en el caso (altamente probable) de que el sucesor del A4 sea una unidad multi-núcleo con procesador gráfico embebido, que la compilación pueda utilizar todas las capacidades a la vez, mejorando el rendimiento de iOS simplemente mediante una recompilación.

Asi que Lion es el primer sistema desarrollado con herramientas que aceleran la capacidad de innovación, tanto en el desarrollo de software como en la posibilidad de variar las capacidades del hardware subyacente, y encontrar la mejor forma posible de ejecutar aplicaciones de cualquier tipo.

Y no hemos hablado de la tendencia a usar los discos duros de estado solido, la insistencia de Apple en mantener tarjetas gráficas compatibles con OpenCL en lugar de las capacidades integradas en los micros Intel… queda mucho en lo que Lion nos puede sorprender.

0 0 votos
Article Rating
Subscribe
Notify of
15 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Anónimo
Anónimo
13 years ago

Eres de lo mejorcito desde hace muchos años escribiendo sobre mac en castellano.

Feliz año.

Anónimo
Anónimo
13 years ago

Da gusto leer ‘otro’ tipo de análisis que no se centren solamente en nota de prensa que saca Apple.

Felicidades.

Anónimo
Anónimo
13 years ago

RISC, mejor dicho la venganza del RISC (véase iTrastos/iOS)
independencia de hardware: este año ? tal vez…. muchos datos lo confirman !!!
inflexión en la conferencia de desaolladores o algún Special Event antes.

anchonious
anchonious
13 years ago

A la vez de interesante, me tranquiliza leer este tipo de análisis. Muchos vinimos a esta plataforma a partir de la adquisición de dispositivos móviles, pero nos hemos dado cuenta de que Apple es mucho más y deseamos quedarnos por mucho tiempo.
La única forma de permanecer es que MAC OS X siga siendo la vanguardia en cuanto a productividad y rendimiento.

Felicidades por el artículo.

Anónimo
Anónimo
13 years ago

Apple deja de fabricar sevidores.
Apple utiliza un compilador ‘multi-hardware’.
Ummmm, ¿veremos aparecer un MacOS X Server para servidores de otras marcas: SUN, IBM, Unisys?

Es todavía pronto para que Apple licencia su SO a otros fabricantes, ¿o tal vez no?
MacOS X sobre PC’s de HP, Dell,Sony, … iOS sobre tablets de Samsung, teléfonos de HTC, Samsung, …

juandesant
13 years ago

No deja de ser una idea interesante, pero creo que Apple ha demostrado que no quiere dejar ni un

Anónimo
Anónimo
13 years ago

Un artículo muy bueno. Había cosas como Clang y LLVM que había oido hablar pero que desconocía con más detalle.

Incluso ahondando más creo/espero que ahonden más en el uso de OpenCL sobretodo en sus productos más profesionales.

Añadiría que falta todavía un paso adelante más en lo que aceleración 3D se dice. Con la sálida de Steam se han dado cuenta que necesitan mucho trabajo en este área. Lion debería suponer este salto. Van a venir muchos juegos y el MAC con tanto juego para iOS y con la Mac App Store y Steam puede ser una gran plataforma para juegos.

Mail necesita cambios estéticos y por dentro. Quizá una fusión entre iCal y Mail.

Finder necesita mejoras que traen aplicaciones como TotalFinder. Pestañas, Cortar son imprescindibles.

Time Machine necesita leves retoques. Me gustaría poder eliminar algunas copias antiguas y poder programar las copias. Es decir añadir alguna opción avanzada.

Un saludo.

juandesant
13 years ago

Incluso ahondando más creo/espero que ahonden más en el uso de OpenCL sobretodo en sus productos más profesionales.

Parece que se espera una renovaci

juandesant
13 years ago

Gracias a ti por la felicitaci

juandesant
13 years ago

Si Apple cambia algo en su proveedor de procesadores (lo dudo; veo antes a Apple usando ARM o GPUs extra manteniendo Intel, o al menos x86_64), lo anunciar

juandesant
13 years ago

S

juandesant
13 years ago

Pues much

Mandibul
Mandibul
13 years ago

La idea establecida era “Apple es un fabricante de HW que hace un gran OS para poder venderlo”.
Pero darle la vuelta: “Apple fabrica computadoras para vender su OS” es un punto de vista en el que no había caído.
Sobre todo en el sentido de que si OSXLion es “EL” negocio, la tendencia a dejar ir el HW (fin de los servidores, componentes desactualizados,…) podría acabar en lo que os creo entender: empieza a licenciar HW de terceros con el sello “Built for OSXLion”.

Si lo urdimos con el otro hilo de que puede acabar siendo una gran plataforma de juegos (digamos “ocio”) como ya lo es iOS…

Puede resultar que Apple le pone el sistema operativo a toda una generación/abanico no sólo de ordenadores, si no de PlayStations o Wiis (“iWi” para Apple ;-P).

Por supuesto, todo ello comprado en la lucrativa AppStore.

MoOola (flipar/pensar en lo que se puede hacer desde la posición y la cartera de esta empresita).

P.D.: Si esto ya era tema de conocimiento general, disculpad mi ignorancia.

Anónimo
Anónimo
13 years ago

Tu comentario destila profesionalidad y aunque puede considerarse algo “elevado” para el lector medio, supone para fac-mac.com justificar su reputación de ser el Mac OSX Hints en español.

Esperamos máa así.

Gracias

Anónimo
Anónimo
13 years ago

Impresionante artículo …
Estos son uno de esos artículos que son una delicia para
los que andamos aburridos de esos artículos que no aportan nada nuevo, y que por el contrario se limitan a repetir lo que corre por la web (saludos “Applesfera”, “Appleweblog” y demas).

El Finder “necesariamente” debe de cambiar. Debe de dar el siguiente paso, una interfaz renovada vendría genial, una forma intuitiva y revolucionaria de acceder al contenido de nuestro ordenador creo que vendrá con Lion.

Por cierto… alguien sabe algo del dashboard en Lion???

Son sin duda el mejor blog en español de apple.
Tu articulo me hace pensar que eres programador…. jajaja.

FELICITACIONES ….SIGAN ASI

15
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x