MPS public roadmap

Skip to end of metadata
Go to start of metadata

JetBrains MPS roadmap (draft)

Concise version

Q2 2013 - 3.0 (Full Java IDE interoperability)

Q4 2013 - 4.0 (Eclipse integration)

Q2 2014 - 4.5 (Graphical notations)

Q4 2014 - 5.0 (Language repository)

Detailed version

Version 3.0, May 2013

The goal is to complete the story of interoperability with IntelliJ IDEA by integrating with Java.

Seamless integration with IntelliJ IDEA

  • referencing up-to-date Java sources from MPS
  • extend IntelliJ Java IDE functionality with the ability to find and visualize usages of Java code within DSLs
  • update DSL code as part of the Java rename refactoring
  • combine MPS models and generated code, presenting it as a single IntelliJ IDEA project entity

Improvement: Cursor Positioning

Currently, the API for cursor positioning does not allow fine-grained control over where the cursor will be put. This will be improved in 3.0, laying the foundation for improved fluidity when editing text.

Several Editors per Concept

At the moment, an editor is tied to a concept. It is not possible to provide additional editors for existing concepts. 3.0 will enable defining new editors for existing concepts, for example, in sub-languages, and then viewing programs in different "guises" by changing the editor as you go.

Default editor for concepts

This version is also going to support default notation for concept visualization and editing, which will be applied to all concepts that are left without explicitly defined editors.

Typesystem performance improvements

In 3.0, the typesystem will benefit from performance tuning and parallelism, especially during the generation process.

Base Language improvements

  • refining Base Language concept structure to better reflect java specification and to simplify extending
  • provide more text-like editors for Base Language concepts
  • typesystem refinements

Version 4.0, December 2013

The goal is to provide integration with the Eclipse platform

Eclipse integration

The next big step towards the general programming audience is MPS integration into Eclipse. Just like with IntelliJ IDEA in earlier MPS versions, It will be possible to deploy MPS languages as Eclipse plugins and use MPS-based languages as part of Java solutions.

New languages for language definition

The language-definition languages will get a face-lift to reflect the feedback we've received from the users and the progress we’ve made over time in terms of usability and intuitiveness.

  • new query language that will not depend on Base Language
  • new generator language
  • new editor definition language (a higher-level than now, based on the new query language)

Improving Tables support in the editor

MPS already introduced table notations in the editor. Now we will provide a higher-level API for specifying tabular notations, and will provide editing usability improvements for tables.

Transient Nodes

It is currently not possible to project nodes into the editor when not owned by the current context node. This will become possible in 4.0: A concept will be able to declare "transient nodes", i.e. children that are computed based on DSL definition, which will be able to be projected as part of an editor definition.

Other editor improvements

  • editor extension points to allow easier editor reuse in derived languages
  • Introduce view-specific (or editor-specific) data into MPS so concept editors can save view-specific information

Version 4.5, May 2014

Graphical editor in MPS

MPS will support building graphical editors (for example for state machines). While providing graphical editing facilities will be an ongoing project, the 4.5 version will lay the foundation.

Wiki language (doc language)

Sometimes, plain text, which feels like plain text is useful, for example with documentation or requirements. However, we all want to be able to "inject" nodes into this plain text, perhaps as a way of embedding references to other nodes. This will be possible with the Wiki Language.

Collections Language improvements

  • performance improvements
  • potential Collections Language re-implementation using extensions methods to make it more light-weight

Language Migration

The goal is to introduce language versions and provide DSL users with the possibility to migrate their models from one language version into another while upgrading the language they use. In addition, we are going to record basic migration scripts automatically on any language modifications.

Language Profiling

  • Integration with Java profiler
  • Detailed exception reporting that includes information about which language caused the problem
  • Profiling particular DSL definition aspects like the editor creation process, completion menu and other

Refactorings described as a part of language definition

MPS refactorings will be improved in order to not only define custom refactorings for a particular language, but to contribute participants to existing refactorings from other languages. We will be able to record refactorings in order to replay them later on different set of sources.

Model-model transformation

The MPS generator can be used for transforming one model to another one

Version 5.0, December 2014

Language repository

  • expand set of target languages supported by MPS to Java Script/Objective C/...
  • create public repository of MPS languages that would host IntelliJ IDEA/Eclipse language plugins
  • implement new Base Language, which can be reduced into different target languages

Generator performance

  • will better track cross-model dependencies better?
  • will use “gps” builder to generate in the background during the editing

Custom persistence

  • will allow loading of XML schema/language grammar into MPS and generate custom persistence code for this language working in accordance with grammar/schema

Debug java sources

Attach sources to Java libraries in MPS and navigate to the appropriate place in the Java source code with MPS debugger.

Fully-generated code

Eliminate the need for MPS models at runtime, so all you need to be able to work with your languages is Java source code.

VCS features per root

Show history for single model root node (currently it's possible to see the history for whole model files only).

Version 6.0

Web-based MPS

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.