¿Por qué los ingenieros de Google no eligieron GWT (anteriormente Google Web Toolkit) para la interfaz de Google+? La Biblioteca de cierre (Google) se utiliza en la interfaz de usuario de Google+.

Responderé como un ex ingeniero en Google, que trabajó con Closure y GWT dentro de la compañía y participó en la transferencia de su proyecto de uno a otro. No pretendo saber lo que el equipo de G + / Emerald Sea finalmente eligió Closure, por lo que esta es una suposición educada en el mejor de los casos.

El cierre habría sido la opción predeterminada para la mayoría de los grupos que realizan trabajos pesados ​​de front-end. Ha estado en Google por más tiempo y tiene una base de código más grande y madura para construir. En última instancia, Closure sigue siendo Javascript, lo que significa que se podrían haber utilizado diferentes bibliotecas o marcos para prototipos y luego volver a portarlos a Closure (Por supuesto, todavía es posible en GWT, y de hecho hicimos tal cosa al portar a GWT; Java / La interoperación Javascript es problemática y roba GWT de muchas de sus abstracciones).

GWT es un poco más en bruto, y está a unas pocas capas abstraídas del DOM nativo y CSS / JS. Favorece las IU en forma de tablas y widgets en lugar de los componentes personalizados que usa G +, por lo que habría sido más difícil luchar con la biblioteca de widgets base de GWT en el diseño / comportamiento de las UI más elegantes como el selector de amigos y las galerías de fotos.

GWT también sufre un ciclo de desarrollo muy lento, aunque se compila en Javascript muy rápido (incluso optimizado para el navegador). Dado que GWT se compila , a partir de la fuente de Java, eso solo requiere significativamente más recursos que el código Javascript Closure sin procesar (que no tendría que “compilarse” hasta que esté listo para su lanzamiento). Supuestamente, la depuración es una de las fortalezas de GWT: le permite usar el depurador de su IDE con puntos de interrupción y observación de variables / pila, pero requiere una gran memoria / CPU para conectar el IDE al navegador y aún era ridículamente lento, mientras que la depuración en el navegador a través de inspector / Firebug era casi imposible dado el Javascript compilado y destrozado. Para mí, iterar una interfaz de usuario desde una página en blanco hasta el borrador tomó tal vez un día en Closure, pero más cerca de una semana en GWT.

No estoy tratando de insistir en GWT, sino simplemente señalar que no era la herramienta adecuada para G +. El nuevo front-end de Adwords, por ejemplo, está construido en GWT, lo que tiene mucho más sentido dada su interfaz altamente tabular y basada en informes. La ventaja de Java-as-a-single-development-language todavía se mantiene, y el Javascript generado por GWT sería tan rápido como cualquier JS codificado a mano, y tal vez también compilado Closure JS. Tampoco impide que el equipo construya componentes en GWT dentro de la interfaz de usuario de G + basada en Closure: Angry Birds, por ejemplo, es una aplicación de GWT en la tienda web de Chrome y supongo que sigue siendo una aplicación de GWT en el directorio de juegos de G + .

Porque gran parte de la plataforma frontend se comparte con Gmail, que está integrado en Closure.

Lea también: la respuesta de David Bloom a ¿Qué es la interfaz de Google+ integrada?

No soy ingeniero, pero últimamente tuve mis primeros acercamientos a la Biblioteca de cierre y GWT y entendí que el CL es mucho más escalable, lo que podría ser el punto clave si está desarrollando un sistema que se base en gran medida en contenido colaborativo . Si construyera todas las funcionalidades de colaboración con GWT, probablemente compilaría una gran cantidad de gastos generales no deseados en el servidor.

More Interesting

Parece que Spring 5 se está alejando de la aplicación web convencional, ya que sus tutoriales para aplicaciones web siguen usando Spring Boot. ¿Por qué?

¿Puedes conectarte a múltiples cuentas de Twitter con IFTTT?

¿Cómo puedo crear una estrategia de desarrollo web back-end?

¿Cómo funciona el algoritmo de Pandora?

¿Cuáles son los idiomas utilizados para desarrollar la interfaz de una aplicación web?

Cómo hacer una página web que muestre una cita diferente todos los días

¿Cuáles son las distintas fases en las pruebas beta? ¿Cuáles deberían ser los objetivos y resultados para impulsar un producto al mercado?

¿Cuál es la mejor manera de incluir una galería de videos en un sitio web?

¿Qué aplicaciones web sociales que no son juegos tienen la misma adicción y utilidad que Quora?

En LAMP, ¿cuáles son los beneficios y las desventajas de Foundation y Laravel vs. Bootstrap y Code Igniter?

¿Cuál es la diferencia entre el cuadro de texto en Quora / LessWrong, el de Gmail y el de Facebook / Reddit / la mayoría de los otros sitios web?

¿Qué tipo de arquitectura necesita una aplicación web o servidor para manejar una carga constante de 100 millones de transacciones por segundo?

Soy un recién graduado y no tengo 2 años de historial laboral, pero puedo crear aplicaciones web o aplicaciones de escritorio. ¿Cómo puedo pasar el RRHH y obtener una entrevista técnica para demostrar mis habilidades?

¿Cuál es el stack / idioma para construir un sistema de administración de software que se pueda instalar o usar como una aplicación web en vivo?

¿Es el futuro de las aplicaciones HTML5?