El secreto de Apple y el dolor de Adobe: SproutCore, Cocoa para la Web

producto_developer.pngUna de las más grandes revelaciones en WWDC fue hecha pública de forma discreta en la mañana del viernes y se llama “Construyendo un Look-y-Feel Nativo en Aplicaciones Web usando SproutCore.” Mientras Apple mantuvo un alto nivel de seguridad en la correspondiente sesión de la WWDC, sellada con un acuerdo de no-revelación (NDA), el secreto de SproutCore se ha conocido al final porque es un proyecto open-source y la gente no puede dejar de hablar de él.

Como la agenda pública de Apple para la WWDC explicó, “SproutCore es una estructura de Javascript inspirada en Cocoa que es independiente de cualquier plataforma y completamente open-source, utilizado para crear aplicaciones web que se vean y se sientan como aplicaciones para el escritorio. Aprende a combinar SproutCore con las tecnologías del estándar HTML5 de almacenamiento de datos fuera de línea para entregar una experiencia de usuario de primera clase y un rendimiento excepcional en tu aplicación web.”

Los secretos de SproutCore primero salieron de la oscuridad el otoño pasado, cuando se reveló que la Galería Web .Mac había sido construida usando esta estructura. Originalmente desarrollado por Charles Jolley de SproutIt para ser usado en un administrador de correo electrónico en línea llamado Mailroom, la estructura SproutCore va más allá de otras estructuras JavaScript porque fue diseñada para construir aplicaciones completas en la red, más que sólo agregar una animación o efecto a las páginas web.

Ayuda Abierta para JavaScript

Javascript es un lenguaje poderoso que, gracias a estar incluido con todos los navegadores modernos, tiene una base de usuarios muy amplia. Sin embargo, hay una penuria de buenas herramientas para construir aplicaciones, sólo existen algunos scripts básicos para animaciones y otros comportamientos dinámicos. Esto ha abierto la puerta a herramientas propietarias como Adobe Flash, que está construido alrededor de ActionScript, que en sí mismo está basado en JavaScript.

Como está descrito en las series “Las guerras de Flash: Adobe y la historia y el futuro de Flash,” Flash provee de una estructura grande que se encarga de cosas que no son fáciles de hacer con JavaScript solamente, pero que requieren distribuir un plugin de Flash para que funcione. Las aplicaciones Web hechas en Flash ya no son interpretadas en el navegador mismo, sino en el plugin de Adobe. Eso hace que los desarrolladores dependan de Adobe, y también deja a otros vendedores de plataformas como Apple depender de Adobe para que provea de plugins adecuados para sus productos.

El plugin del Flash de Adobe para Mac ha sido un ciudadano de segunda clase por largo tiempo porque Adobe se ha enfocado en la versión para Windows; Steve Jobs también declaró que Adobe no ofrecía un runtime para móviles apropiado para el iPhone, solo la versión Flash Lite que no es capaz de correr contenido de Flash para los ordenadores de escritorio actual y la versión para ordenadores de escritorio no es apropiada para un dispositivo móvil, como es descrito en Steve Jobs no usa Flash en el iPhone.

En lugar de usar Flash en su propio sitio, Apple ha estado trabajando en un número de estructuras abiertas como Prototype y Script.aculo.us, que mencionan a Apple como un usuario de alto perfil en su sitio. Esas estructuras ofrecen código preconstruido que ha sido pulido hasta trabajar en todos los navegadores, haciendo más fácil para el desarrollador concentrarse en lo que debería estar haciendo su página y no en reinventar repetidamente la rueda para varias funciones de bajo nivel. En ese respecto, las estructuras de JavaScript abiertas pueden reemplazar a Flash sin requerir ningún plugin secundario porque son simplemente un JavaScript abierto que corre directamente en el navegador.

Introduciendo SproutCore

Jolley de SproutIt decidió moverse más allá de las estructuras de scripting comunes y desarrollar un stack de desarrollo de aplicaciones completa basada en la arquitectura Model View Controller. En el desarrollo MVC, los datos de Modelo y las Vistas de interface de usuario están atadas por la discreta lógica Controller. Esto en contraste con las típicas herramientas de desarrollo de aplicaciones web que mezclan lógica, datos y presentación juntos, resultando en un código sucio y difícil de mantener.

Como se explica en el sitio del desarrollador, “SproutCore es una estructura para construir aplicaciones en JavaScript con relativamente poca cantidad de código. Puede ayudar a construir aplicaciones enteras “gruesas” en el navegador que puedan crear y modificar datos, comúnmente completamente independiente del navegador, comunicándose solamente con el servidor a través Ajax cuando necesita guardar o cargar datos. Las aplicaciones JavaScript son más rápidas, más fáciles de usar y más fáciles de escribir que las complicadas aplicaciones Ajax. Cuando usas una estructura como SproutCoure para ayudarte, también pueden ser muy divertidas de escribir.”

SproutCore pone más de la aplicación en el navegador mismo, resultando en la designación de “cliente grueso”. Esto permite una experiencia que responde mejor y llena de características que se siente y se comporta más como una aplicación para escritorio porque está en realidad funcionando en el ordenador local en vez de esperar las respuestas de un servidor remoto. La capacidad para hacer esto es en realidad bastante nueva; avances rápidos en los navegadores sobre el último año han hecho, finalmente, que las aplicaciones de JavaScript pesadas sean prácticas.

Cocoa para la Red

Apple no sólo uso SproutCore, también contribuyó importante actualizaciones en el rendimiento y añadió nueva funcionalidad. Las contribuciones de Apple han ayudado a hacer de SproutCore la manera ideal de construir aplicaciones para la web que funcionen como aplicaciones Cocoa para el escritorio, como se hizo notar en el artículo “Cocoa para Windows + Asesino de Flash = SproutCore“. Ambos comparten muchas de las mismas convenciones, como el uso de vinculantes. Los vinculantes de SproutCore permiten a los desarrolladores escribir JavaScript que funciona automáticamente cada vez que el valor de una propiedad cambia. Usando vinculantes, aplicaciones muy complejas con comportamiento consistente pueden ser creadas con poco código “pegamento”.

Apple también ha estado trabajando en el otro lado de la ecuación cliente para mejorar su propio motor JavaScript en Safari. Anunciado justo antes de WWDC, el nuevo intérprete de Javascript SquirrelFish de WebKit aumentará dramáticamente el rendimiento de las aplicaciones de JavaScript como aquellas construidas en SproutCore.

Esos dos factores se combinan para hacer de SproutCore el heredero natural de Yellow Box o Cocoa para Windows, de lo que se ha dicho es una posibilidad desde que Apple se retiró de su estrategia de múltiples plataformas Rhapsody para desarrollar Mac OS X hace diez años. Pero en vez de requerir un runtime de Cocoa, los usuarios sólo necesitan un navegador con JavaScript, incluyendo Safari, Safari Móvil en el iPhone, FireFox o Internet Explorer 6 ó 7.

Utilizar SproutCore le ha permitido a Apple entregar un paquete de aplicaciones en línea en MobileMe para una audiencia multiplataforma. El siguiente paso naturalmente será expandir estas ofertas para incluir otras, por ejemplo, aplicaciones de productividad iWork. Ya que SproutCore es ofrecido bajo la licencia open-source de MIT, cualquiera puede utilizarlo para desarrollar aplicaciones web altamente responsivas. También parece posible que Apple invitará, en algún punto, a otros partidos para crear aplicaciones MobileMe, ya sea incluidas como parte de la suscripción al servicio, o por una tarifa nominal. Eso reflejaría los esfuerzos de la compañía en crear un mercado de software móvil en la App Store.

Hasta entonces, Apple se está enfocando en MobileMe como una alternativa a Exchange “para el resto de nosotros”, mientras que también apoya al iPhone 2.0 y a las próximas aplicaciones en Mac OS X Snow Leopard que intentarán reemplazar Exchange Server con Snow Leopard Server.

Hay más información acerca de SproutCore en su sitio oficial. Apple también tiene más detalles acerca del nuevo MobileMe, y detalles de SquirrelFish se encuentran el el sitio de proyecto de WebKit.


Fuente: AppleInsider

0 0 votos
Article Rating
Subscribe
Notify of
0 Comments
Opiniones Inline
Ver todos los comentarios
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x