Eclipse Command Language - next step in Eclipse Scripting & Automation?

Andrey Platov (xored software, Inc.), Andrei Sobolev (xored software, Inc.)

Emerging Technologies · Long Talk
Tuesday, 14:30, 50 minutes | Grand Ballroom FGHABC | Download in iCal Format


Andrey Platov

Andrei Sobolev

There are several talks at EclipseCon about scripting languages usage for Eclipse RCP scripting and development every year. Over ten projects exists starting from Eclipse Monkey which provides JavaScript scripting capabilities (and now Ruby scripting capabilities with Aptana Monkey), up to Google SoC projects adding PHP scripting support and other experiments in this area.

Nevertheless all the components exists and mature (Eclipse, languages, and interpreters), no one project in Eclipse scripting did not hit minds of Eclipse software engineers yet. During the talk we'll try to understand real values of scripting and understand why this scripting race has no aim in some cases. We'll recap various efforts in scripting area, and try to dispel some prepossession (e.g. "scripting and/or dynamically typed languages increases developer productivity").

Towards DSLs

From the beginning of the talk we shall came to important evidence: "Scripting languages do not hide software complexity", and "dynamic languages do not increase developer productivity because of duck types or less code needs to be typewritten". A simple test anyone can do is to google for Ruby, JavaScript, or PHP code snippets from Eclipse scripting projects and re-implement them Java. Comparing to Java you will not find significant difference in code amount and time requred to develop that snippet. However if we'll look at some Eclipse Monkey samples we may find very short and elegant snippets, which being implemented in Java would take much more code and would not look such elegant. Why? Cause Monkey project is not only run JavaScript interpreter within JVM, but also provides some high-level structures called Monkey DOMs. Important thing that DOMs are hiding complexity and being combined with JavaScript they forms a kind of Domain Specific Languages (DSL) with JavaScript syntax.

What wrong with Monkey DOMs

As we understand before Monkey DOMs can do some useful tasks and as a result hide complexity and increase developer productivity. If so they might be interested to much wider audience. So when Java engineers will start to use DOMs from their code, and will provide DOMs to others, DSLs operating on that DOMs may become best chioce for some development cases, scripting and Eclipse autmation. I believe Monkey is not popular because DOMs are designed specially for scripting needs. Instead of Monkey DOMs we need domain-specific structures designed for problem domain needs. And the solution we may find within Eclipse Modeling Projects.

Eclipse Command Language

Eclipse Command Language (ECL) is a new language initially designed for Eclipse Scripting and Automation needs, and to be integrated with Eclipse EMF and M2T projects. For automation needs heavy console usage is supposed so most of existing scripting languages were refused. TCL was considered as a good choice for building DSLs but refused due to it's non object-oriented nature.

This talk will explain backgrounds of ECL, show reference implementation of the language, Eclipse ECL console with current OSGi Console functions and more.

Andrey Platov is a Project Lead for the Eclipse Dynamic Languages Toolkit (DLTK) project.

Andrei is Senior Software Engineer at xored software, Eclipse DLTK co-project lead.

Floor Plan

Gold sponsors

BEA logo

IBM logo

Wind River logo

Replay Solutions logo

JBoss logo


Cloudsmith logo

BIRT Exchange logo

Skyway Software logo


BlackBerry logo

AMD logo

Silver sponsors








Business Objects

LynuxWorks logo

Hardware sponsor

AMD logo

Media sponsors

Extension Media

Methods and Tools


Addison-Wesley logo

SD Times logo

Open Systems Publishing

Software Test & Performance logo


Be a Sponsor