Eclipse Vision, 2012

I came across this vision statement that I wrote for last year’s Eclipse Board of Directors elections. Although a bit lofty as a campaign platform, I still think it holds true. Since the original election pages are now gone, I thought I would post it here for posterity.

There has never been a more exciting time to be working in software development. The desktop computing model we have been working with for 25 years is steadily being replaced with different form factor devices such as phones, televisions, and tablets. Traditional mouse and keyboard inputs are being replaced with touch screens and voice controls. Java, whose visionary designers built the JVM for precisely this world of heterogeneous networked devices, has become too big and slow to keep up. HTML5 and JavaScript are replacing Java on the client side, and an assortment of dynamic languages are making inroads on the server. The browser and the web behind it are now the only ubiquitous platform that is available on every device and form factor.

Open source software is now bigger than ever, but an adhoc collection of small scale projects on community forges is starting to replace large scale foundations as the place where open development happens. Mirroring the shift from the JVM to the browser, this is happening in part because these community forges are small, agile, and can adapt more quickly to the rapidly changing computing landscape.

On the surface, none of this sounds good for Eclipse. Eclipse is a large foundation based on Java-based tools and runtimes. However, these underlying changes in the industry are a huge opportunity for Eclipse. The tools and runtime frameworks for the web are shockingly immature compared to Java. Above the browser there is a jumbled assortment of frameworks and implementations with no cohesion or stability. Everyone has written or cobbled together their own JavaScript application framework on the client, and many server side languages have pieced together frameworks of varying quality and scale. We application developers have to pick through this landscape to pull together the pieces (and versions) that work together well. Very often the pieces don’t fit together well, or have uncertain legal provenance. New versions of libraries come available at random intervals, or worse they never actually produce versions and developers just pull from the “master” branch and hope it is stable enough to use. Eclipse has the infrastructure and track record to do what nobody else is accomplishing in this space: building integrated, well tested components, delivered on a regular schedule, and maintaining clear and consistent license and legal checks on all code.