martes, 5 de octubre de 2010

El Sistema Operativo no importa

Este artículo salió recién el lunes 3 y me llamó la atención el título. Empecé a leerlo y caí en la cuenta de que declaraba algo en lo que muchas personas (y aunque no lo crean mucho de ellos profesionales del soporte) no piensan, fuera del mercado de las PCs de escritorio todo es Unix (y me alegro porque de eso vivo, de Unix). El original lo podrán encontrar aquí, el autor es  Jean-Louis Gassée (es partner en Allegis Capital desde 2003, entre otras cosas, si les interesa aquí esta un enlace). Sin mas ahí se los dejo, este es el primero de la semana, provecho.

Hubo una epoca en que los sistemas operativos (SO) importaban mucho; definían lo que una computadora podía y lo que no podía hacer. Los viejos sistemas administraban el uso de los recursos: memoria, procesadores, entrada/salida (I/O) (pantalla, teclados, discos, la red, impresoras...). Es una complicada serie de tareas que requiere un manejo delicado de las limitaciones existentes, y cada SO las manejaba de diferente manera, o no. En eso tiempo los SO estaban casados con el hardware y solo un pequeño grupo de "brujos" con grados de Ingenierías Eléctricas y un profundo entendimiento de circuitos, entendían (e inventaron y protegieron) los arcanos de la estructura de los SO. 
Con el paso del tiempo, los secretos de estos Illuminati se fueron filtrando. Veinte años mas tarde, los SOs perdieron su misterio. Aprendimos lo suficiente acerca de la estructura del kernel de un SO, que se convirtió en un asunto de nivel escolar y un juego de vacaciones de Navidad
Hoy solo existe un SO: Unix. (Bueno, en realidad son dos pero volveremos sobre eso más adelante). Es por eso que afirmo que el sistema operativo ya no importa o al menos que debemos asumir otro enfoque sobre el significado de la palabra y sobre lo que entendemos al decir Sistema Operativo.
Cuando RIM decidio cambiarse a QNX en su nueva tablet, la PlayBook, hubo muchos comentarios. Luego de llamar al SO de la BlackBerry "lo mejor del mercado" (una trillada frase mercadotécnica), RIM se rindió ante la realidad: El SO "probado" demostró no tener arreglo. Debido a las sucesivas capas de software sedimentado que se acumularon con el paso de los años, el edificio no podia modernizarse. Era mejor renunciar y empezar desde cero. QNX es un Unix para sistemas empotrados que data del año 1982(!) cuando fue liberado para procesadores 8088 de Intel.

Lo mismo le sucedió a Apple ... dos veces. El OS de Apple (o la falta de el dirían los puristas) no podía adecuarse a los estándares modernos, de modo que Macintosh tuvo que ser diseñado desde cero. El Mac OS original se fue a pique en su propia cabeza de playa y fue reemplazado por OS X. Basado en un kernel Mach, OS X es un derivado de Unix, coescrito en la universidad de Carnegie Mellon (CMU) por Avie Tevanian. Tevanian mejoró el sistema durante el tiempo en que fue jefe de desarrollo del NeXT e influyó para convencer a Apple de que adquirir NeXT le daría nueva vida a la compañía.  

Abra la aplicación "Terminal" en una Mac y que ve?. Una noble y digna shell de Unix, el programa mediante el cual los geeks interactúan con el SO. "Terminal" usa la shell de bash ( Bourne Again Shell, creada por Brian Fox, bash esta basada en la shell "sh" que a su vez fue inventada por Stephen Bourne. A los genios de Unix les encantan los acrónimos que usan juegos de palabras.

Y ahora tenemos el iOS de Apple, un derivado de OS X que usa trozos del mismo kernel.

Respecto a Palm. El sine-qua-non de los fabricantes de móviles, comprendió que su PalmOS no podía arreglarse, de modo que reiniciaron y crearon WebOS, un derivado de Linux.

Android?, está basado en un kernel Linux. MeeGo de Nokia? lo mismo.

La lista sigue. Tenemos a los hijos espirituales de Unix viviendo dentro de la nube, soportando millones de servidores Linux, funcionando en Google, Facebook, Amazon ....

La única excepción es Windows. Inicialmente diseñado sobre el DOS, Microsoft adicionó dolorosamente versión tras versión, siempre manteniendo la compatibilidad con su antecesor, y al mismo tiempo, añadiendo características nuevas. Nunca funcionó bien, (quien quiere recordar Windows Milenium y Vista?) pero funcionó lo suficiente porque Microsoft nunca se dio por vencido. Corrigieron error tras error alegando que no existían, y ahora tenemos al respetado Windows 7. Inevitablemente , los críticos dirán que Microsoft habría abandonado el torturante empeño de no haber sido por su vigorosamente enraizado monopolio.

Windows vivirá - en la industria de la PC, en una meseta. Pero fuera de eso, en los segmentos de alto crecimiento de las nubes y de los smartphones es territorio de Unix. Necesitamos mira a otra parte para encontrar las diferencias.

Los retos técnicos han migrado a dos áreas: La interface del usuario (UI, o la mas poética y exacta UX, por User eXperience o experiencia de usuario) y las herramientas de programación. 

Ahora que todas las funciones de los sistemas son similares, el juego de los fabricantes de hardware y software es convencer al usuario de que su experiencia será mas suave e intuitiva. Su dispositivo caminará por sobre el agua (con el programador justo debajo de la superficie), para sostenerle si cae y asegurarse de que no se moje los pies.

Para el desarrollador, lo que ahora llamamos el OS debe proporcionar un poder expresivo siempre creciente. Para ejercer ese poder expresivo el desarrollador necesita herramientas de software. La industria usa acrónimos como API (Application Programming Interface), IDE (Integrated Development Environment) o frases como entornos de aplicaciones. Estos definen las reglas y convenciones, que ideas son permitidas, como expresarlas y las herramientas de software que necesitan los programadores para desarrollar una aplicación.

Los OS de hoy son estos. La interface de usuario. Las herramientas de desarrollo.

Un último elemento que no es parte del SO: Esa nueva criatura llamada App Store (o Mercado, depende de....el SO). Desde mi punto de vista no técnico, App Store debe ser considerado parte de la totalidad del SO, parte de de su gestalt. Las aplicaciones siempre han exitido en un lazo de retroalimentación con el SO. Un programa solo puede hacer lo que el SO le permita, de modo que emplea trucos para crear la multitarea, para pemitir reproducciones suaves de audio o video. Estos trucos fueron incorporados al los propios SO (y al hardware, vean los GPU), los cuales luego produjeron una nueva generación de aplicaciones más demandantes y así.

El genero de Apps Store, inventado o no en Cupertino, es ahora parte del lazo, un componente fuerte del SO, y merece una nota de Lunes por si sola.