La Eclipse Foundation está trabajando a través de su proyecto Flux en una arquitectura e infraestructura que permita integrar los entornos de desarrollo de escritorio (tradicionales IDEs) con las herramienta de desarrollo web en el navegador y servicios en la nube. Una idea similar a tener un especie de Dropbox del desarrollo de código que permita interactuar con el código, compilación y ejecución tanto desde el escritorio como desde el navegador.
Existen distintos IDEs en la nube que intentan llevar esta idea de flexibilidad, pero al fin y al cabo, son herramientas menos potentes que las que usan los desarrolladores en su día a día: Eclipse, IntelliJ, Sublime Text, etc.. Entre esas alternativas a las que nos referimos se encuentran Codenvy, Codio, Koding o, incluso el propuesto en otro proyecto por Eclipse como Orion, que merecen un análisis más profundo teniendo en cuenta que siguen siendo editores online que implementan cierta lógica en el cliente.
Entre los principales empresas interesadas en el proyecto se encuentra Pivotal (responsables de Spring Source) quién ha trabajado en el desarrollo de su entorno de programación Spring Tool Suite basado en Eclipse. Además de IBM o Redhat. Los lideres del proyecto son Martin Lippert(Pivotal) y John Arthorne (IBM).
Flux no renuncia al uso de IDE de escritorio pero sí pretende el uso a través de la comunicación asíncrona de la interconexión de componentes y servicios para que pueda editar código a través de un navegador en cualquier momento compilando en la nube. Su objetivo es desacoplar los componentes en la nube y los entornos de programación de escritorio y online.
Entre los ejemplos de componentes y usos que explican esta arquitectura en el Github de Flux se encuentran:
-
Un plugin de Eclipse o IntelliJ que automáticamente sincroniza el workspace del proyecto con un servicio en la nube continuamente sincronizándose.
-
Un file watcher que haga lo mismo que el plugin de Eclipse a nivel de ficheros.
-
Un editor web que permite editar el código sincronizando la lógica inherente de los errores sintácticos, de compilación, de referencias entre clases e interfaces, etc.. usando la sincronización en la nube del proyecto.
-
Un servicio que permita la ejecución de test JUnit corriendo de forma remota y si es necesario en la nube.
-
La compilación y ejecución en la nube utilizando servicios de emulación, además de aprovechar las arquitecturas PaaS o SaaS para el despliegue de la aplicación.
Se puede ver una demo del proyecto Flux (hasta entonces conocido como Flight) en la que se muestra el uso del plugin de Eclipse IDE y un editor de archivos en la navegador que sincroniza con el IDE de escritorio.
Más información | Project Flux (Eclipse Foundation)