domingo, 10 de octubre de 2010

El Sistema Operativo si importa (una respuesta al anterior).

Notas previas.

¿Leyeron el post anterior?, que bién, porque luego de que salió (y que lo traduje) ocurrieron un par de eventos. A los de la lista les dí la razón por la que estuve dudando en traducirlo (y que no repito aquí porque todavía lo considero irreverente) y la razón implícita por la que SI lo traduje es la noción de que fuera del mercado de las PCs de escritorio todo es Unix, en fin, el mismo día (el 5) en la noche salió una respuesta que obligadamente debí traducirles para no dejarlos con solo una parte de la historia, el artículo salió en camendesign, aquí esta el original. Me tomó varios días (y es que no solo tengo que hacer esto, el trabajo estuvo pesado) pero aquí se los traigo, cuenta partes de la historia que yo mismo desconocía (y conste que conozco la historia bastante bien). Provecho, espero que les sea útil, ya empieza la semana así que muy buen inicio y hasta el próximo.

El Sistema Operativo si importa

En respuesta al artículo de Jean-Louis Glassée "El sistema operativo no importa..." dije simplemente "el futuro de la guerra de los navegadores está en quien los integre mejor con el OS".
La frase viene de mi artículo criticando el uso de HTML por parte de Microsoft (MS) en su lista de accesos (jump list en el original, refiere una característica de Windows 7 que pueden revisar aquí) en IE9, el cual causó bastante incomodidad. En la tendencia de lograr capacidades siempre crecientes de los navegadores, el SO va a ser importante para los usuarios de la web más que nunca antes.

La única razón por la que existe el argumento de que los SO no importan es que en los últimos 15 años la WWW ha dado a luz una interface de documentos de tan asombrosa importancia que eclipsa a los sistemas operativos de escritorio. Ud puede comprar online pero no puede comprar desde una aplicación de escritorio, puede manejar cuentas bancarias online pero no puede hacerlo desde aplicaciones de escritorio.  
La inocencia de la web de no ser más que un formato de intercambio de documentos para el proyecto del  Gran Colisionador de Hadrones la mantuvo protegida en un principio. El navegador solo necesitaba mostrar un documento simple, de modo que no tenían que tocar mucho del sistema operativo subyacente (las primeras herramientas de edición y navegación web surgieron en NeXT). Tratar de reemplazar con HTML aplicaciones nativas en aquella época hubiera fallado miserablemente, hubiera sido impropio y casi con seguridad demasiado lento.  
No fué hasta la popularización de los lenguajes de procesamiento del lado del servidor (particularmente ASP) que vimos la primera "aplicación web" (Web Apps en el original y en lo adelante). Si bien los navegadores todavía no podían hacer mucho, ud podía hacer clic en un botón y el servidor en el otro extremo podía, técnicamente, hacer cualquier cosa, enviar un e-mail, sonar una campana o lanzar un cohete. Esto a diferencia de las aplicaciones tradicionales de escritorio que no podían (y todavía no pueden en la mayoría de los casos) asumir que estaban online y ser capaces de hacer cualquier cosa en la compañía. Incluso el fenomeno de Shareware en internet te obligaba a telefonear o enviar un mail para comprar un producto en un CD.  

Alrededor de 1996 las laptops comenzaron a hacerse populares, ganando en capacidades y niveles de portabilidad. Los enlaces de acceso telefónico se extendieron por todos lados y MS trato de explotar esta nueva portabilidad con Exchange Server.

Hasta hoy un problema agobiante que obliga a los desarrolladores a guardar la compatibilidad en navegadores rotos solo para servir un applet de manera segura al usuario.


    Las aplicaciones web tradicionales refrescan constantemente los documentos casi para cada acción. Durante el desarrollo de Exchange 5.5 en 1996/7 usábamos cuadros ocultos para comunicarnos con el servidor cuando enviabamos mensajes de modo que no tuvieramos que limpiar el documento del usuario. Aun así todavía teníamos demasiadas actualizaciones de cuadros durante la navegación en el buzón de correos. También desarrollamos un applet de Java para el control del bloque que obtenía la fecha en la vista del calendario para mejorar la experiencia del usuario toda vez que DHTML en los navegadores de esa época era casi inexistente. Al final comprendimos que el applet no cumplía nuestras espectativas de rendimiento porque la inicialización de la máquina virtual era muy costosa. OWA 5.5 tenian un soporte superior a las versiones anteriores pero aún carecía de la clase de experiencia que los usuario conseguían en las aplicaciones win32 [....] 
   
    [....] el primer prototipo DHTML para OWA fue escrito sobre una versión pre-beta de IE5. IE5 significó una mejora sustancial. IE4 fue un gran paso de avance y lo comprobamos pero IE5 incluía muchas mas tecnologías que nos permitían mejorar la experiencia del usuario. El navegador IE5 podía ciertamente absorber xml pero hacer una solicitud DAV le era imposible, de modo que le adicionamos un control ActiveX al prototipo que hizo posible hacer solicitudes DAV como SEARCH, PROFIND, etc... el prototipo OWA se el mostró a B. Gates y le agradó. Esto nos dió suficiente impulso para conseguir el componente que necesitabamos para ser instalado por IE5 al que llamamos XMLHTTP. XMLHTTP nació y fue implementado por el equipo de Shawn Bracewell. Exchange financió el esfuerzo incorporando el desarrollo de XMLHTTP en OWA en colaboración con equipo de Webdata en SQL server." 


Ahora, aún cuando esto no incorporaba el documento HTML en el Sistema Operativo (SO) más que antes, sentó las bases para los sitios web que no fueron más una colección de documentos inter enlazados. MS de quien me mofé, por no entender la web, si la entendió desde la perspectiva de los desarrolladores y de los negocios (no solo de los usuarios) y fue arrastrado a subirse a la ola de la loca burbuja de las punto-com que solo empezaba a agarrar impulso y que culminó en el año 2000. La burbuja significó que a mucha gente sin experiencia ni habilidades se les pagó mucho dinero para crear sitios web. La mayoría de los usuarios todavía dependían de enlaces de acceso telefónico bastante avanzada la burbuja (¿recuerdan cuando pagaban mensualmente y por minutos?) y  eran comunes introducciones en flash y toneladas de imágenes.

Lo que obtuvimos fue un auge comercial masivo y el impulso necesario de parte de algunos bancos dudosos que no querían hacer inversiones riesgosas, a abrir sus brazos a los patrones de internet e invertir todo su amado y sonriente dinero. Creo que esta fué (viéndolo en perspectiva, en aquella época no podía entenderlo) la característica principal que dió a la web una capacidad que fué mas práctica que sus contrapartes de escritorio. Aun cuando la web pudiera lucir y oler como las aplicaciones de escritorio (tan pronto como apareció DHTML los intentos de imitar la interface de usuario (UI) fueron numerosos) como que no podía hacer nada que el escritorio no pudiera hacer mejor, no iba a llegar a ninguna parte. Las compras vía web cambiaron esto. Es mas fácil diseñar, construir y actualizar un catálogo de cosas mediante un navegador web que escribir una base de datos en un front-end de C++ win32, distribuirlo en CD y hacer que el usuario haga su pedido por teléfono. Esto último no era divertido y el modelo fue reservado para directorios telefónicos y grandes sistemas de compra B2B

A pesar de las pantallas de inicio, el codigo HTML spaguetti y una total y completa falta de técnicas de optimización web en aquel tiempo, es a los enlaces telefónicos a los que debemos agradecer por tener una web donde podíamos comprar cualquier cosa y luego revisar nuestros saldos desde la comodidad de la casa sin tener que sobrevivir a otro directorio telefónico. Ni los bancos ni las tiendas pusieron una onza de innovación para tener disponibles estos sistemas, oh no. Fue la necesidad la madre de esta creación. Como no podías usar el teléfono al mismo tiempo que estabas conectado, era necesario que los pagos fueran (también) online. El usuario podría haber hecho una orden por correo, o colgar y llamar de nuevo para ordenar pero esto hubiera sido muy pesado para los desarrolladores de sistemas (y su falta de habilidades) que tendrían que haber almacenado toda esta información de estado. La sesión en el navegador era rápida, sencilla y barata en vez de almacenar carros de compra durante un mes esperando nebulosos cheques por correo postal para hacerlos coincidir. Sin los enlaces de acceso telefónico y la burbuja de las .com podría decirse que las compras online no despegarían hasta la tienda de iTunes en el 2003 .... un pensamiento aterrador.

Ahora, es sabido que las megacorporaciones no tienen gusto, y no les interesa que tan feo sea algo, mientras haga el trabajo, así debe ser. Los aficionados del diseño se pueden retorcer del disgusto viendo las peores aplicaciones web reemplazando las más refinadas aplicaciones nativas, pero durante, y después de la burbuja de las .com ocurrió un cambio de habilidades en los negocios (por todas las contrataciones en masa y la prisa repentina por aprender habilidades nuevas y subirse al carro de la banda) que hizo que los grandes negocios se casaran con y solo pensaran en términos de aplicaciones web mal diseñadas (que plagan muchas instituciones hoy en día, incluído el gobierno británico). Las intranets que solo permitían IE habían nacido. Este fué el cambio que causó que se desarrollaran las aplicaciones web en vez de las nativas, y regularmente sucedería que empezarían su vida dentro de las empresas antes de que el concepto se filtrara al usuario final en nuevas formas.

Luego las cosas se tranquilizaron
Todos conocemos esos 5 años de estancamiento de la web y el meteórico ascenso de Firefox.

    " El plan de negocios de MS fue proporcionar IE como el líder perdedor para lograr dos cosas:
      1.- Incrementar la dependencia de los programadores de IE a modo de amarrar la web específicamente a Windows y así vender mas copias de Windows a largo plazo...
      2.- Vender mas copias de VisualStudio a los desarrolladores para tomar ventajas de ActiveX, el cual ofrecía todo lo que no podía el HTML.

    La web estaba en ese estado en el 2003 (99% de uso de IE) porque la web no era el negocio de Microsoft. La web era un líder derrotado, mas nada. La web vendía copias de Windows y Visual Studio, punto. Esto era evidente gracias a la falta de actualizaciones mayores de IE6 durante 5 años
   
Esto es interesante porque proporcionar IE junto con Windows, un monopolio de IE total, y ActiveX es exactamente lo opuesto a integración con el SO. Microsoft quería retener la web ... la web (como Apple está haciendo hoy) - un extraño formato centrado en documentos, enjaulado (sand-boxed en el original, ya saben la explicación) dentro del navegador que ni siquiera estaba cerca de reemplazar las aplicaciones tradicionales, especialmente las del entonces nuevo hijo predilecto de MS .NET

Un sitio web casado con un SO particular no es integración al SO. No puedes llamar integración con el SO que Adobe no tenga versiones de sus productos para Linux.

Como que la web inició con un formato de documentos no tenía el concepto de ser específico a un SO (fue diseñada para resolver el problema de la portabilidad de documentos entre diferentes SOs y para su uso en instituciones científicas en esa época), por eso cuando el navegador fue modificado y extendido para ser una interface de aplicaciones, funcionó como la seda por sobre las diferencias entre SOs. Les hago toda esta larga historia, porque es la razón por la que tan despreciativamente decimos que el SO no importa mucho porque ahora todo esta en la web. 

Lo que hacemos es dejar a un lado el hecho de que el navegador, gracias a muchos factores, deseados o no, ha sido elevado a una experiencia de usuario suficientemente buena (pero no grande) y a una posición privilegiada. Como que los usuarios no necesitan descargarse un software para cada compañía que visitan en la web para poder usar sus servicios, el navegador ha sido mejorado para hacer el mejor uso de este factor decisivo sobre el software de escritorio, aun cuando ha fallado en hacer un uso óptimo de las convenciones del SO y de las tecnologías que proporcionan una mejor experiencia del usuario (¿eso que le importa a los grandes negocios?)

La web esta cerca de una gran experiencia de usuario. Con cerca de 2 billones de usuarios en la web, cambiar el texto de un botón puede duplicar los beneficios. Tener tu sitio web ejecutándose 10% mas lento, puede hacerte perder millones en ingresos. El diseño, experiencia y la velocidad de las aplicaciones web es ahora tangible, dinero en el banco, un factor de aceleración de la competencia. A pesar de que muchas de las técnicas avanzadas de optimización web que tenemos hoy eran perfectamente aplicables 10 años atrás, ahora los negocios pueden oler el dinero y por eso se vuelve importante escuchar a quienes han seguido el llamado desde el principio.

La experiencia del usuario va de la mano con las espectativas, características y el paradigma de la interface del sistema operativo. No puedes no mas tomar una interface de documento que fue diseñada con la percepción de clics del ratón en el escritorio y simplemente adicionarle una pantalla táctil. Apple no desechó flash en iOS únicamente por razones técnicas, sino porque era radicalmente opuesto al modelo de escritorio que emprendió el iPhone. Como que flash debe vivir en la prisión de un plugin, el usuario debe interactuar con el de maneras especiales fuera del comportamiento fiable diseñado para existir junto con el SO. Se atoró, para decirlo simple, y una experiencia de ese tipo significa pérdida de ingresos, no solo para el dueño del sitio web sino para Apple y su habilidad de comercializar el dipositivo. Consideren lo siguiente, es una mejor elección desde el punto de vista de las ventas para Apple, excluir a flash y pedirle a los autores que cambien todo el sitio que tratar de incorporar la experiencia flash al iPhone en una grado aceptable. Otros teléfonos incorporan flash, eso seguro, pero apesta. Deshabilitarlo es lo mejor que puedes hacer para mejorar la operación del teléfono y tu experiencia de navegación. Apple fue el único que dijo que "suficientemente bueno" no era suficiente para ellos.

En un sorpresivo cambio de roles (el cual es abordado con profundidad en el artículo Will Apple embrace de web? No) Microsoft dejó de luchar contra la web y en vez de eso, la abrazó. Han estado tan atrazados respecto a los demás navegadores que perdieron la habilidad de aunar sus tecnologías en la misma manera que permitió a AJAX nacer. IE9 soportará HTML5 y un montón de tecnologías relativas y estándares de punta que puedan ser implementados limpia y confiablemente.

Por supuesto las astutas y veloces aplicaciones web HTML5 mantienen a los desarrolladores lejos de codificar específicamente para tecnologías Windows en aras de abarcar más de un navegador (y por extensión mas de un SO). En el pasado MS eliminó esta amenaza mediante tácticas de negocios truculentas para destruir la competencia y estancar la web, hoy, eso no es una opción. La hemorragia de cuota de mercado es imparable y no tienen nada que aprovechar con IE8. Esta vez la solución de MS no es competir con sitios que solo funcionan con Windows, sino hacer que todos los sitios funcionen mejor con el (W7).

MS quiere que la web sea la mas rápida, la mejor con IE9/Windows. Échenle una probadita a ciegas. Los sitios web lucen igual en Firefox que en IE9 pero MS quiere que IE9 sea la mejor opción. De eso se trata la aceleración de hardware. Están perforando con el navegador en todas las capacidades del SO, metiéndose en las APIs que normalmente pertenecen al reino de las aplicaciones de escritorio y los juegos. Las características de sitios integrados (pinned sites en el original chequen la referencia) y la jump-list no es más que el intento de hacer que la web funcione a la manera de Windows; aplicando los beneficios de la experiencia de usuario que MS publicita en Windows 7 y enfocándose en la tarea que la mayoría de los usuarios hacen más que otra cosa en sus PCs, navegar la web.

Toda la razón de la existencia de la GUI (Graphical User Inteface) y aún que hay más de una es que hay muchas maneras de administrar más de una tarea al mismo tiempo y todavía estamos perfeccionando esa tarea. La web no es diferente al respecto, la navegación por pestañas, no es menos. Manejar más de una tarea es el dominio del SO, no de la web, y el SO tiene cada oportunidad para mejorar el como manejamos nuestra vista de la web  de modo que una manera sea mejor que otra y lleve a que otra cosa que no sean ventas.

Aun así, logra una mejor experiencia de usuario va a involucrar a los usuarios. Firefox fue mejor que IE6 tanto que fue evidente. Hoy los márgenes son pequeños y el solo hecho de soportar un estándar no va a vender software o hardware. No nos engañemos con que los estándares de los navegadores son otra cosa que asuntos del desarrollador, ud puede hacer un sitio web usando solo un mapa de imagen y muchos de los usuarios no lo entenderan mejor que si hubiera usado HTML. Lo que le importa a MS y Apple no es el contenido de esos sitios (como en la pasada guerra de los navegadores) sino que tanto el contenido es experimentado  a la manera del sistema operativo que lo sostiene. Sería difícil de negar que el iPhone original elevó grandemente la barra de las espectaciones en cuanto a el navegador de un teléfono móvil. Alguna vez han usado IE6 en un teléfono con Windows Mobile? Opera Mini fue bueno pero todavía fue desarrollado entorno a las espectaciones de la web móvil del año 2003: cHTML3.2. Sino miren que tanto cambio Opera entre la versión 4 y 5 (vistas agrandadas, paneles de páginas, pestañas etc). Opera siguió la huella de un nuevo tipo de web móvil al que apuntó Apple

Por qué el navegador del iPhone fue mejor?. Porque se comportaba y reaccionaba de un modo totalmente similar al SO y el hardware, Eso es integración con el SO y ese es el futuro.

Windows Mobile trató tanto de ser un entorno de escritorio que incluso tenía un lamentablemente malo "clic-derecho". Opera Mini, tratando de ser el mismo navegador para cada teléfono, no pudo ofrecer lo mejor que podía dar el teléfono (y no culpen a Opera sino a el puñado de fabricantes ciegos de teléfonos y sus implementaciones lisiadas de Java

Con el soporte de estándares comenzando a alinearse en los navegadores, tanto como puedo apreciar esta vez, todos lo navegadores lucen igual (las pestañas arriba) y hacen lo mismo (adelante, atrás, búsquedas) así que la única manera de ser diferentes, de ganar usuarios y dinero, es proveer la mejor experiencia a través de la integración al SO. Las aplicaciones web deben empezar a sentirse más como aplicaciones web y menos como páginas web porque sus contrapartes de escritorio disfrutan toda clases de besos y abrazos del SO de las que carece la web. MS vió esto en el IE9 y creo que solo es el principio de los planes de MS de desplazar a la competencia haciéndolo a la manera de Windows mejor de lo que lo hacen ellos. Lo bueno de esto  es que ya no va a significar mas sitios web solo para IE.

El SO hoy importa más que nunca antes. Ha sido completamente ignorado por la web durante 10 años y ahora se vuelve relevante, significativo. Mas personas usan los SOs para navegar la web más que nunca antes. La calidad de su experiencia importa en términos reales y tangibles que los negocios entienden.

El SO todavía no está muerto, en realidad solo espera su momento de brillar.