Tuesday, April 3, 2012

Whole Platform Preview at CG2012: neat new graphical notations

At CodeGeneration 2012 we previewed the next major version of the Whole Platform.
One notable change is the new look of the graphical notations.
This post outlines my design goals and provides a few comparative examples.

Notation Design Highlights

  • Optimized for visual exploration
  • Consistent choice of colors across all of the Whole Core languages
  • Reduced verbosity
  • Better use of space (in both dimensions)
  • Extended use of nested tables to improve readability
To facilitate the comparison with the old version, I show here side-by-side a few screenshots of the language notations that changed the most.

Models DSL

Grammars DSL

Queries DSL (and Commons DSL)

Semantics DSL (and Commons DSL)

Thursday, March 29, 2012

Building your own Java with the Whole Platform

At the Code Generation 2012 conference me and Enrico attended the hands-on session Building your own Java with MPS. Sadly we haven't had the opportunity to follow the second part of the tutorial because in the afternoon we had to present our session in parallel.

In the evening I managed to complete their assignment using MPS then I developed the following solution using the Whole Platform.

Exercise 2: Extending Java with Range Iteration

The solution can be defined and tested live on a running Whole Platform Language Workbench (Eclipse) without generating any code.

Open the given java example using the "Java Editor (Whole)" and save it with a different name and persistence (.xwl).

Define the metamodel of the MPSDemo1 DSL containing just the RangeIterator entity. Then add the Foreign Types Relations to be able to use the RangeIterator as a Java statement and to be able to use Java expressions and statements inside of it.

The metamodel is self-contained: you can use it alone or together with the Java language. Of course to be able to write an heterogeneous model both languages have to be deployed.

Deploy the MPSDemo1 DSL (Interpret button in the toolbar) and place a RangeIterator instance on the java Sample using the content assist menu. Then fill its features with java code as requested.

If you want to obtain also a concrete textual notation for the RangeIterator you have also to define a Grammar.

Deploy the grammar and select the new notation from the context menu of the RangeIterator instance.

Define and deploy the reduceToJava function.

In order to save the reduced version of the extended java example into a java source file define and deploy an Artifacts Generator.

Now you can go back to the extended java example and apply the generator.

Friday, March 23, 2012

Attend CG2012 to see how much live coding matters to everyday programming

The Whole Platform has already great features to shrink the development cycle.

Where others provide only generators and compilers we also ship interpreters and runtime metamodeling. For instance, you can start using your DSL and your domain specific tooling long before having completed the metamodel and the related behavior.

Furthermore, we support domain specific notations at every phase of the development cycle including unit testing and debugging. Have a taste of a visual debugger session at the domain level and you will never want to fallback to the textual Variables View of a Java IDE.

If you liked the visual exploration of source code in Inventing on Principle, and you tried to guess how much live coding with instant feedback can improve everyday developing experience you should attend the session Integrating model driven technologies in the publishing industry at CodeGeneration 2012.

Thursday, March 22, 2012

Attend CG2012 to get a fresh look at graphical notations

Since we have started the development of the Whole Platform we have discarded simple text editors and scattered dialog oriented UIs. We have also avoided to use freeform diagram notations for the core languages of the Whole Platform.

We have pushed forward graphical notations even on behavioral languages where others usually continue to fallback to traditional textual notations.

The graphical notations of the Whole Platform already looked impressive to the attendees of the LWC2011 one year ago.

To get a taste of our advancements on graphical notations attend the session on Integrating model driven technologies in the publishing industry at the Code Generation 2012 conference.

Thursday, March 15, 2012

Gather professional training at Code Generation 2012

We are committed to the development of the Whole Platform and we strive to provide the best technology for engineering the production of software.

The Whole Platform is released under a free license open for your business (LGPL 3) and it is successfully used worldwide. Unfortunately, we cannot satisfy all the demand for professional support in developing model driven software solutions.

The Code Generation 2012 conference is a great opportunity to gather professional training on one of the leading language workbenches directly from its creators.

See you at our session on Integrating model driven technologies in the publishing industry and at the session Have your language built while you wait.

If the conference room is busy, try hard for a free seat!

Thursday, February 23, 2012

Whole Platform at Code Generation 2012

We are pleased to invite you at our case study session at Code Generation 2012 titled Integrating model driven technologies in the publishing industry.

Learn how it has been easy to build a professional solution in the domain of digital media authoring using the Whole Platform.
A large part of the solution will be reimplemented live and you will be trained on using the Whole Platform languages to define models and transformations.

Don't miss the opportunity to meet the core team of the Whole Platform during the conference!