¿Crees que los IDE basados ​​en la web son el futuro de los IDE? ¿Cuáles son las ventajas y desventajas de los IDE web? ¿Qué características tienen mucho más sentido en un IDE web? ¿Cuáles son los mejores IDE basados ​​en la web?

Descargo de responsabilidad: soy fundador de Codenvy, un proveedor en este mercado y también líder de proyecto para Eclipse Che, una plataforma de próxima generación de la Fundación Eclipse.

Los IDE en la nube son el futuro del desarrollo. En muchos casos, hoy son superiores a sus homólogos de escritorio. Y en las áreas donde no son superiores, eventualmente lo serán en el futuro. Las limitaciones tecnológicas que preocupan a las personas sobre el uso de IDE distribuidos resultarán ser las tecnologías que les brinden las mayores ventajas sobre sus primos de escritorio.

Como publicación hermana, es posible que desee leer un artículo de hace 15 meses sobre el tamaño del mercado de IDE en la nube que escribí dando la perspectiva de cómo era el mercado en el otoño de 2013. ¿Cuál es el tamaño del mercado de los IDE en la nube? ¿Cuáles son los posibles modelos de negocio?

Evolución del desarrollo de aplicaciones

Para justificar por qué los IDE en la nube ganarán, tomemos una vista general. El desarrollo de aplicaciones ha evolucionado en los últimos 15 años cambiando la forma en que se diseñan las aplicaciones y los equipos crean contribuciones. Gartner, 14/12: “Para 2018, la transición a prácticas de TI ágiles, DevOps y de escala web se volverá tan perjudicial para TI como la adopción de Lean fue para la fabricación durante la década de 1980″.

La transición a prácticas de TI ágiles, DevOps y de escala web aumenta la complejidad de la configuración y exige estructuras de contribución abiertas.

El dolor

Esto lleva a un problema masivo. El mayor inhibidor de la productividad del desarrollo es la configuración del entorno del desarrollador.
1. Los desarrolladores quieren entornos preempaquetados listos para codificar, sin nada que instalar. Quieren reducir el tiempo de inicio para tener más tiempo de pirateo.

2. Los equipos desean eliminar el tiempo perdido del codificador en la configuración y mantenimiento del entorno. Quieren adoptar entrega continua, código abierto, microservicios y contenedores sin absorber la complejidad de configuración causada por cada uno.

La configuración repetida de los entornos de desarrollador causa la pérdida de productividad de los desarrolladores medida en tiempo perdido y el pago excesivo de la computación debido a máquinas inactivas.

En 2014:
– Hay 18.5 millones de desarrolladores

– Quién pasó 15.7B horas de desarrollo en configuración
– Que desperdició 99B Gigabyte horas

Con la población de desarrolladores creciendo un 27% para 2020, los residuos se duplican a 213B Gigabyte horas.

La solución

La naturaleza de este dolor hará que los equipos de desarrollo busquen soluciones. La solución ideal es un entorno de desarrollador rápido, seguro y extensible en la nube. Con IDE en la nube, puede contribuir a un proyecto en segundos. La nube crea, comparte y escala los espacios de trabajo del desarrollador con automatización. Los desarrolladores pueden obtener un IDE rápido, rápido y sin bloqueos, donde pueden crear códigos y ordenar microservicios para construir y depurar desde cualquier lugar. Y DevOps está entusiasmado porque pueden aprovisionar réplicas del espacio de trabajo del desarrollador que simplemente se pueden compartir y administrar de forma segura.

La tecnología

Un IDE en la nube es más que una aplicación web. Es una plataforma como servicio. Y cuando el PaaS se organiza junto con el cliente del navegador, se desata un enorme potencial.

La arquitectura moderna del sistema IDE en la nube es la combinación de:

  • Un núcleo de complemento de código abierto para habilitar extensiones de ecosistema
  • Un IDE en la nube compuesto por complementos que se ejecutan en el kernel
  • Un motor de automatización basado en recetas para construir proyectos para la nube IDE
  • Una supercomputadora elástica basada en microservicios para impulsar el motor de automatización y los proyectos
  • Una infraestructura segura y de alta disponibilidad para administrar la supercomputadora
  • Un actualizador de entrega continua para la instalación de la infraestructura.
  • Paquetes SaaS, locales y de mercado en la nube distribuidos por el actualizador

Esto lleva a una plataforma abierta, modular y composable distribuible a través de cualquier canal, ya sea SaaS, local, hosting administrado o etiqueta blanca.

Los desarrolladores finalmente experimentarán un desarrollo que no tiene límites más allá de los niveles de su máquina de escritorio. En un escritorio, debe sincronizar máquinas virtuales que son grandes y difíciles de configurar / portar. También tiene una cantidad fija de recursos que se solicitan en conflicto con sus otras aplicaciones que se ejecutan en el mismo sistema.

En un IDE en la nube, los servicios atómicos del desarrollador, como prueba, análisis de sintaxis, compilación, ejecución y depuración, se operan en microservicios separados y escalables horizontalmente. Esto crea la ilusión de que el desarrollador está utilizando una sola máquina a través de su navegador, pero en realidad está accediendo a potencialmente docenas de nodos que no compiten entre sí en recursos para realizar cada función atómica de la manera más óptima.

La nube puede retener el estado para el desarrollador, aprovisionar réplicas para otros al instante y organizar servicios adicionales de manera automatizada para que el desarrollador pueda pasar menos tiempo configurando y más tiempo codificando.

Sobre el costo

Algunos IDE en la nube están cobrando $ 20 / mes por el acceso a sus servicios. En última instancia, un IDE en la nube proporciona recursos físicos al usuario. Pero estos precios bajarán dramáticamente. La mayoría de los IDE en la nube ya ofrecen el IDE de forma gratuita (en comparación con un producto premium costoso como IntelliJ), pero aún tiene que pagar por los recursos. La mayoría de los IDE en la nube están cobrando modelos basados ​​en suscripción, pero es inevitable que el mundo se mueva a precios de pago por uso, y cuando eso suceda, es posible que muchos IDE en la nube estén disponibles por centavos.

Sobre Codenvy

Mi empresa, Codenvy, utiliza una plataforma IDE en la nube subyacente basada en Eclipse Che de código abierto para crear soluciones para los equipos de desarrollo. Codenvy proporciona espacios de trabajo a pedido que son colaborativos y sin restricciones. Los espacios de trabajo del equipo que se pueden aprovisionar en cualquier lugar e integrar en la cadena de herramientas de desarrollo mejoran el flujo de trabajo al sobrealimentar el espíritu ágil.

Codenvy vende nuestras ofertas como un servicio alojado en Codenvy | Entornos de desarrollo bajo demanda, en un modelo freemium de autoservicio. Tenemos cientos de miles de usuarios. También ofrecemos opciones para instalar Codenvy en su centro de datos o nube de su elección. También operamos instalaciones administradas alojadas de Codenvy para DevOps empresariales.

Creo que estamos al menos a un par de iteraciones de los IDE basados ​​en la web que reemplazan los IDE de escritorio, si alguna vez sucede.

Un IDE debe estar estrechamente acoplado con el sistema de soporte. Esto es especialmente cierto para los lenguajes compilados, pero incluso desarrollar con algo como Python es importante. Si usa un servicio de terceros para un IDE, necesitan darme acceso casi completo a la línea de comando y al sistema. Necesito poder instalar dependencias, administrar versiones, usar Mercurial / Git, posiblemente compilar programas.

Esto se presta fácilmente para configurar un IDE en línea en mi propio VPS. Creo que esta idea tiene mucho peso sobre alojarla en un servicio de terceros.

Otra desventaja tácita de un IDE alojado es la potencia informática limitada. Esta es una de las cosas que pueden y probablemente cambiarán. Si utilizo un servicio de terceros para el IDE, probablemente estoy compartiendo un servidor con un buen número de otros desarrolladores que están utilizando la CPU en un momento dado. En un VPS, los precios pueden ser demasiado altos para justificar el uso de uno como máquina de desarrollo. $ 20 / mes puede obtener un VPS de 512 MB, pero eso se comparte entre muchos servicios en ejecución y también está limitado en la potencia de la CPU asignada. Pídale a cualquier desarrollador que programe en una computadora portátil con 512 MB de RAM.

La forma en que veo este cambio es utilizando el poder de la nube, y esto tiene mucho sentido. Podría desarrollarme en un VPS pequeño si puedo enviar tareas intensivas en recursos (por ejemplo, compilar) a un servidor en la nube de caballo de batalla y pagar solo por la cantidad que realmente uso. La infraestructura para hacer esto con los servidores de producción existe, pero no estoy seguro de que haya soporte (todavía) para las capacidades de desarrollo.

La velocidad es obviamente el mayor inconveniente de los IDE web existentes, y seguirá siéndolo por algún tiempo. Esta no es la velocidad de la máquina de desarrollo, sino la velocidad de la interfaz IDE real. Las aplicaciones web aún no están a la par con las aplicaciones de escritorio, y hay muchos factores que intervienen en ellas. Velocidad del servidor, velocidad de Internet, tráfico actual del ISP local / web, conectividad, alimentación de la estación de trabajo, etc. Un buen soporte fuera de línea ayuda, pero no resuelve el problema.

Con un IDE de escritorio, puedo programar mientras estoy en un aeropuerto ocupado con wifi deficiente, o en una hora en tren hacia y desde el trabajo todos los días. ¿Cómo supera un obstáculo un IDE basado en la web?

El costo también es un inhibidor, aunque puede superarse. Puedo pagar $ 20-30 / mes o más por un IDE basado en la web, pero todavía necesito una computadora de trabajo potente para ejecutar los recursos del IDE. A medida que las tecnologías web y los navegadores mejoran, las aplicaciones web usarán menos recursos, pero en este momento todavía querría una computadora poderosa (léase: costosa) para programar usando un IDE basado en la web. Si la tecnología llega al punto en que un Chromebook de $ 300 que usa un IDE basado en la web puede funcionar tan bien como un MacBook Pro con Eclipse / PyCharm / NetBeans / etc. entonces tal vez el costo será justificable.

More Interesting

¿Qué herramientas están disponibles para crear mapas, diagramas u otras representaciones visuales de la estructura de datos de una aplicación?

¿Qué herramienta en línea puedo usar para descubrir cómo mejorar la usabilidad de mi página de inicio?

¿Veremos más aplicaciones web escritas para navegadores específicos?

¿La mayoría de las nuevas empresas tecnológicas construyen sus productos sobre un marco base que les permite administrar el producto en el back-end, o simplemente construyen sus propios back-end?

¿Cuáles son los marcos utilizados para el desarrollo de sitios web PHP?

Cómo determinar si crear una aplicación móvil o una aplicación web para empresas

¿Por qué utilizar una base de datos no relacional en lugar de una base de datos relacional?

Sé algo de Python, y planeo desarrollar una aplicación web. ¿Cuáles son mis opciones tecnológicas?

¿Cómo se abren los archivos PUB en Windows sin Microsoft Publisher?

Si quiero crear aplicaciones basadas en la web, ¿qué lenguajes de programación debo aprender?

¿Cuáles son los aspectos económicos de una barra de herramientas del navegador web?

Cómo cambiar la página seleccionando uno de los menús desplegables usando PHP y MYSQL

¿Cómo las grandes aplicaciones web como Quora estructuran su sitio y su código para ser utilizados en múltiples miembros del equipo?

¿Cuáles son algunos ejemplos de sitios web de "inicio instantáneo"?

Cómo crear una aplicación fácil de usar y bellamente diseñada sin experiencia