Friday, March 21, 2014

Release of Whole Language Workbench - Kepler SR2 for Java 8 Edition

Following the official release of Java 8we are pleased to announce that an updated milestone release of the Whole Language Workbench is publicly available.

The Eclipse IDE 4.3.2 with the feature patch to support Java 8 is bundled with the all-in-one product distribution.
The Java 8 represents a big step forward for the Java community and we want to be able to take full advantage of its features; so we decided to make Java 8 the required execution environment for the Whole Language Workbench.

A few years ago, following the release of Java 5 we redesigned the Whole Platform to adopt generics. For more than a year, we introduced a few workarounds in our code in order to be able to compile with both the official Java compiler and the one bundled with Eclipse JDT. 

Yesterday, we had to perform a few code changes, just to be able to rebuild our platform with Java 8 instead of Java 7. I am not able to tell you how much of them are due to changes in the Language specification; but the two compilers have reported a small different set of errors.

The news is that even if the history had to repeat itself, we encourage you to start using Java 8 today and we join in thanking both Oracle and the Eclipse Foundation for the great job they have already done.

Friday, March 14, 2014

Release of Whole Language Workbench - Kepler SR2 Edition

Today, we are pleased to announce that the new milestone release of the Whole Language Workbench is publicly available.

The Eclipse IDE 4.3.2 is bundled with the all-in-one product distribution.
This is the first major release based on the e4 platform; all the code needed to run on older versions of Eclipse has been removed and is no longer supported.

We completed the factorization of the e4 compatibility layer to enable full e4 product generation. This facilitate the creation of e4 RCP applications that leverage the Whole Platform, including the language workbench itself as soon as the dependent plugins will be migrated to e4.

We have bundled two new web related DSLs: JSON and HTML5 each having a specific persistence backed by an external library (Jackson and Validator.nu respectively).

New and exciting features are awaiting to surprise you at the Language Workbench Challence 2014 don't miss the dates.


As usual, both binaries and source code are available:

  • SourceForge archives here.
  • GitHub Platform source here and Examples source here.

Friday, November 29, 2013

Release of Whole Language Workbench - Kepler SR1 Edition

Today, we are pleased to announce that the new milestone release of the Whole Language Workbench is publicly available.

The Eclipse IDE 4.3.1 is bundled with the all-in-one product distribution.
The major feature of this release is an e4 based version of the IDE integration code. It is an almost complete rewrite of the code to take advantage of all of the new APIs and features of the e4 platform.
The "e3" version of the IDE integration code is still in place, so it is possible to use the update site to install the Whole Language Workbench into an existing Eclipse 3.x. In fact, this release is intended to be the last one supporting Eclipse 3.x.

As usual, both binaries and source code are available:

  • SourceForge archives here.
  • GitHub Platform source here and Examples source here.

Tuesday, June 4, 2013

Multi-touch modeling with Whole Language Workbench on a Wacom Cintiq 24HD Touch

Last saturday I had the opportunity to try a Wacom Cintiq 24HD Touch attached to a Mac Mini and I discovered that it is much more powerful than is advertised.
The multi-touch functionality makes it possible to interact with the operating system and all of the installed applications by using (at least) the same standard gestures supported by the Apple Magic Trackpad.

So, after the installation of the last publicly released version, I played with the Whole Platform for at least two hours using only multi-touch gestures and a wireless keyboard (no trackpad).

As you can easily guess, the Whole Platform is somewhat "touch ready" thanks to its extensive use of graphical notations, drag and drop, and context menus.
By using a 24" display many constructs are already large enough to be selected by a tap or targeted by a drop. Otherwise you have to pinch to zoom the area before performing the desired action.

It was a very amazing experience even for me to discover that modeling the structure, behavior and tooling of a language is already more pleasant and more effective on a tablet-like configuration!




Thursday, April 18, 2013

Release of Whole Language Workbench - CG2013 Edition

At this year Code Generation conference and Language Workbench Challenge, we previewed the upcoming release of the Whole Language Workbench.

Today, we are pleased to announce that the new milestone release is publicly available.
Please note that the examples include both the LWC assignment solution and the CG hands-on session material.

As usual, both binaries and source code are available:

  • SourceForge archives here.
  • GitHub Platform source here and Examples source here.

Friday, April 12, 2013

Whole Platform hands-on session at CG2013


The main subject of the session was the demonstration of a DSL focused on facilitating the introduction of domain abstractions into an existing code base.

We started by showing a few examples of the Patterns DSL applied to different domains such as JavaFX, code reuse, SWT, and GEF. In a few of them we completely replaced the underling code while in others we only abstracted parts of it.



JavaFX code abstracted
JavaFX patterns



Patterns and Models abstracted

Reuse patterns


SWT patterns


GEF code abstracted
GEF patterns

During the hands-on part of the session we started from scratch to introduce abstraction into a Java code base.
Using a set of Java classes we built an artifacts model representing our modeled starting point.
Then we applied a few refactoring such as "Introduce Patterns in Pattern Language", "Extract Patterns", "Extract scattered Pattern" to progressively gain the ability to use in our model patterns like "Property", "JavaBean", "JavaBeanModel", and "JavaProject".
First pattern introduced

Java Beans patterns

Java code without and with new abstractions 

Thursday, April 11, 2013

Whole Platform Solution to LWC 2013


If you missed the demonstration of our solution to the LWC 2013 assignment, here are some screenshots to get an idea.


The composable Metamodels of QL and QLS (see Foreign Type Relations)
An example of a model instance using both languages
The semantics used to generate code and validate the model instance

The resulting SWT application being generated

Finally the tooling and the tests