Connecting the Eclipse IDE to the Cloud-Based Era of Developer Tooling

EclipseCon Europe 2014

Martin Lippert - Pivotal / @martinlippert
John Arthorne - IBM / @jarthorne

Existing Desktop Tools

  • Large range of editors from basic to full IDEs
  • Huge ecosystem of plugins
  • Desktop provides a widely supported integration platform
  • Great for working offline
  • Cross-platform (sort of)

But... The world has changed

Desktop computer

Meanwhile, others are building on reframed assumptions

  • Ubiquitous, variable user interfaces
  • Massively scalable compute and storage
  • Seamless and automatic software and data delivery
  • Always connected - even German conference centers!

"But why can Google search the internet in 10ms and Eclipse needs 5sec to open a type hierarchy?"

"Why is it so hard to collaborate when writing code?"


git add .
git commit -m "Check this out"
git format-patch -s origin > patch.txt
(email the patch)
...
git am patch.txt
git diff HEAD~1
					

"I need tools that can be updated as fast as the platforms I am building for"

"I can only ever code on one laptop because it is so #$@&%*! hard to setup my tools the way I want them"

So how about the cloud?

Cloud Computing

Cloud advantages

  • Truly cross platform (tablets, servers, desktops ...)
  • Extreme scalability (up and down)
  • Enables live remote collaboration
  • Low cost tool configuration
  • Toolchain control

Current state of cloud tooling

  • Current tools demonstrate what is possible
  • Work well today in domains with bounded tooling needs
  • Desktop tools are still far ahead in capability

A difficult choice

  • Stay with desktop tools and live with desktop constraints
  • Take the leap to the cloud, and leave existing tools behind
  • But what if you could have both?

Project Flux


Eclipse Flux

Flux Demo

Flux Demo - The Details

  • Connect Eclipse project to Flux
  • Java syntax validation
  • Content assist
  • Jump to declaration (F3)
  • Errors across editors
  • Live Sync
  • Browser only

Current Architecture - Syncing

Flux Architecture - Resource Sync

Syncing Resources

Flux Architecture - Resource Sync

Browser & Desktop

Flux Architecture - Browser &apm; Desktop

Browser & Desktop

Flux Architecture - Browser &apm; Desktop

Java Service in the Cloud

Flux Architecture - Java Cloud Service

Java Service in the Cloud

Flux Architecture - Java Cloud Service

Language Services

Flux Architecture - Lanuage Services

Multiple Backup Repositories

Flux Architecture - Multiple Backups in the Cloud

Local Services Example

Flux Architecture - Local Executor Service as an example

The Vision

Flux Architecture - All in one

Disclaimers

  • Current code is a prototype
  • Do not use the current Flux technology for real tools yet
  • Nothing contained in this presentation is intended to, or shall have the effect of creating any warranty or representation from IBM, Pivotal, their affiliates, suppliers, and/or licensors
  • No animals were harmed in the making of this presentation

Questions?

Flux Capacitor