Llegamos a ustedes gracias a:



Reportajes y análisis

Código abierto: Compartiendo para ganar

[29/01/2016] "Go es un lenguaje de programación diseñado para ayudar a solucionar los problemas de Google". Así lo dijo Rob Pike, uno de los diseñadores del lenguaje Go.

Ese puede ser el caso; sin embargo, el lenguaje de código abierto está siendo adoptado cada vez más por empresas de todo el mundo para construir aplicaciones a gran escala.

La historia es similar con Erlang. Originalmente un lenguaje propio desarrollado por la compañía sueca de telecomunicaciones Ericsson para manejar grandes volúmenes de datos de conmutación telefónica en su hardware. Erlang era de código abierto y ahora está rápidamente ganando popularidad para aplicaciones a gran escala.

Y hay más. Las tecnologías GraphQL y BigPipe fueron desarrolladas por Facebook en respuesta a los desafíos particulares que enfrenta al ejecutar una red social que procesa cientos de miles de millones de llamadas API al día por más de 1,5 mil millones de miembros activos. Actualmente, esas tecnologías son de código abierto y son usadas por sus iguales del proyecto de gestión de contenido Drupal para hacer que sus páginas web móviles carguen más rápido.

Puede haber descubierto la existencia de un tema común aquí: programar lenguajes y tecnologías que fueron desarrolladas por gigantes de la industria y de Internet -específicamente para abordar los retos únicos que tuvieron que enfrentar al operar a escala masiva- son ahora de código abierto y están siendo adoptadas por las medianas empresas para el uso diario.

Según Mark Driver, director de investigación en Gartner, parte de la razón para esto es el efecto natural de un 'goteo tecnológico'. "La tecnología de vanguardia hoy es el producto estándar de mañana", anota. "Asimismo, las grandes compañías (como Google y Facebook) entienden la naturaleza colaborativa de la computación abierta y las dinámicas que dirigen a la Internet. Por esto es natural que compartan estas tecnologías y fortalezcan la industria alrededor de estas".

¿Qué hay para Google?

También puede ser que compañías como Google comparten su tecnología por razones más egocéntricas. Por ejemplo, en noviembre, Google convirtió TensorFlow, su motor de inteligencia artificial y de máquina de aprendizaje, en código abierto. Esto necesita ser alimentado por grandes cantidades de datos para que funcione de manera efectiva.

Regalando su tecnología TensorFlow, Google está permitiendo que todos se beneficien de su tecnología y de cualquier mejora que se le haga al código. Pero como propietario de grandes cantidades de datos recolectados a través de los diferentes servicios que ofrece, Google está en condiciones de beneficiarse mucho más de las mejoras realizadas a la tecnología por la comunidad de código abierto.

Driver cree que también hay un considerable beneficio de marketing al promover un lenguaje como Go, que está disponible para todos. "Patrocinar un proyecto como Go puede ayudar a Google a impulsar la contratación de ingenieros, anota. "Esto puede conducir a un circulo virtuoso de innovación.

El efecto de goteo es particularmente importante porque los retos que Google, Facebook y otros gigantes de la Internet enfrentaron hace unos pocos años construyendo las aplicaciones a gran escala con grandes números de usuarios concurrentes, son exactamente los retos que están hoy enfrentando miles de compañías establecidas y startups que ofrecen aplicaciones móviles o basadas en la web para un gran número de sus clientes.

Estas compañías están descubriendo que muchos de los problemas que están enfrentando ya han sido solucionados.

Acquia es una de estas empresas. Ésta usa Go para su oferta de software-as-a-service que proporciona servicios empresariales para el sistema de gestión de contenido de Drupal. "Cada vez más y más compañías se están convirtiendo en empresas de datos, manejando los datos de los clientes, dispositivos móviles y más, indica Christian Yates, vicepresidente de Acquia.

"Estas son las cosas con las que las compañías de Internet más grandes tuvieron que lidiar en el pasado y construyeron un software para hacerles frente. Tuvieron los mismos problemas de altos grados de concurrencia y preocupación por la latencia y el rendimiento que tenemos hoy.

Yates añade que su compañía realizó una competencia que involucraba a los diferentes lenguajes de programación y descubrieron que Go era el más rápido. El hecho de que sea de código abierto también permitió que los equipos de codificación tuvieran tiempo de ponerse al día y comenzar a innovar rápidamente, añade.

"La amplia adopción en el mercado, y la visibilidad del código fuente y la forma en que se utiliza, ayuda definitivamente a los desarrolladores a ser productivos más rápido, anota Yates. "Asimismo, hemos aprovechado las herramientas de Etsy y otras empresas de Internet para que nos ayuden a manejar nuestros servidores.

Herramientas de la Web antes de que existiera una Web

Cuando Ericsson desarrolló Erlang, allá a mediados de los años 80, la World Wide Web todavía no había sido inventada. Sin embargo, según Mark Driver de Gartner, resulta que es ideal para muchas aplicaciones Web.

"Erlang era para volúmenes masivos de datos de conmutación y era muy avanzado para su tiempo. Actualmente, muchas compañías están construyendo aplicaciones de alto volumen a escala masiva y orientadas a los mensajes, y Erlang es perfecto para eso, anota. Como ejemplo, la plataforma de mensajería WhatsApp, la cual Facebook adquirió en febrero del 2014, usa Erlang para soportar a más de 900 millones de usuarios.

Otra compañía como Erlang es Bet365, una de juegos de azar en línea con sede en el Reino Unido. Actualmente, tiene siete millones o más de usuarios concurrentes de sus servicios a horas pico, con un tráfico que crece en un 20% cada año. La empresa construyó originalmente su plataforma en línea usando Java y .Net, pero tuvo problemas para seguir aumentando. Según Chandrashekhar Mullaparthi, arquitecto principal de software de la compañía, también se enfrentó a retos como el time to market para los nuevos servicios. Esto condujo a un cambio a Erlang, sobre el cual construyeron su plataforma.

"Erlang es ideal para nosotros, indica Mullaparthi. "Pudo haber sido desarrollado por una empresa de telecomunicaciones, pero los desafíos que enfrenta un sitio web como el nuestro, de cara al cliente, son, en realidad, muy similares. Para construir una aplicación que necesita crecer, que tiene una alta concurrencia y que necesita de una disponibilidad de "cinco nueves [es decir, 99,999%], no se me ocurre nada mejor que usar.

Cerrando la brecha del talento

Con un creciente número de empresas ofreciendo aplicaciones de gran escala basadas en Internet, la principal barrera para la adopción de lenguajes que nacen de gigantes como Facebook, Google o Ericsson es la escasez de desarrolladores con las habilidades y capacidades adecuadas.

Esa ha sido la experiencia de Bet365. A pesar de que Erlang es un lenguaje maduro, su idoneidad para muchas plataformas en línea ha sido reconocida ampliamente hace muy poco tiempo. Eso significa que contratar a los desarrolladores de Erlang no ha sido fácil, anota Mullaparthi, y las concesiones y los permisos han tenido que ser realizados.

"Sin duda, hubiera sido difícil si yo hubiera dicho que quería a todos en la oficina todos los días, señala. "Sin embargo, no hemos tenido ningún problema desde que nos dimos cuenta de eso. Ahora trabajamos con desarrolladores que trabajan de forma remota en el resto del país. Asimismo, estamos reclutando a los recién graduados y entrenándolos, concluye.