May 27-28 2014

Kiel, Germany

This was XtextCON 2014

XtextCON, the annual Xtext community gathering, is over.

Thanks to all attendees and speakers for the good time we had. The processing of the session recordings have started. You can find them on vimeo. Also most of the slides are available for download now. We will add more videos and sildes over time.

XtextCON is the place for new users to learn Xtext quickly and for existing users to understand advanced use cases. Get in touch with Xtext users and the developers behind it. Discuss bugzillas and feature requests and get your individual problems solved.

The conference takes place in Kiel, located at the baltic sea in northern Germany.

Conference Program

XtextCON is a two-day event with two tracks, preceded by an optional full workshop day for beginners and those who need an update on May 26. We run a special clinic track in parallel to the main conference, where attendees get help and advice on individual Xtext-related problems.

09:30 - 09:40
Welcome
09:50 - 10:20

Embedding Xtext Editors in SWT Forms

Holger Schill

After all an Xtext editor is just a StyledText widget. In this session you learn how a fully working Xtext editor can be embedded as a text widget in any SWT form.

Xtext Grammar Language

Jan Köhnlein

The grammar language sits at the heart of the Xtext framework. While attendees are expected to have a basic understanding of the grammar language, this talk covers the more unknown features and semantics. If you are an experienced Xtext user who thinks he knows almost everything about the grammar language, this session is for you. You will learn about details of the Ecore model inference, syntactic predicates, grammar inheritance, value converters, and some best practices.

10:30 - 11:20

Scoping, Linking and Indexing

Moritz Eysholdt

Scoping and Linking is often considered the most complicated part of a language infrastructure. Xtext provides you with the needed concepts to get the implementation right and with good performance. In this session you will learn how scoping is done in Xtext languages, which default implementations there are to choose from and how to implement custom scoping logic. You will also learn what the index is, how it works and how you can add even non-Xtext elements to it.

Xbase - The Complete Guide

Sebastian Zarnekow

If your language links against Java and/or is executed on a JVM, the Xbase grammar is for you. Xbase provides you with a powerful Java-like expression syntax, Java type references and annotations, which you can use as you wish in your DSL grammar. Not only the syntax but also linking, typing, and validation as well as an interpreter and a code generator are available. In this session you will learn how to use Xbase and benefit from these powerful constructs in your DSL.

11:30 - 12:00

Understanding Dependency Injection in Xtext

Stefan Oehme

Language implementations in Xtext are wired up using the dependency injection (DI) container Google Guice. This architectural choice allows for using sensible default implementations for common cases without forcing anybody to stick to them. In this session you will learn how DI is used in Xtext and how it lets you easily customize every single aspect of your language infrastructure.

Performance Optimization

Sebastian Zarnekow

This session covers some of the typical hot spots and common performance pitfalls in an Xtext language and its IDE support. We will discuss what possibilities exist to analyze and fix performance issues and learn where CPU cycles are usually burned and which solutions are practical.

12:00 - 13:00
Lunch
13:00 - 13:50

EMF & Xcore

Ed Merks

Xtext languages are parsed into an EMF tree. This session will walk you through the concepts of EMF and how EMF allows for using Xtext languages with other EMF frameworks. It also explains the new textual syntax Xcore and how that is to be used with Xtext.

Graphical Views with Xtext

Jan Köhnlein

A diagram is a great way to present parts of a model to human users. Using an Xtext editor and a read-only graphical view combines the efficiency of textual editing with the suggestiveness of graphical diagrams. Because a view is much easier to implement than an editor, you will be able to focus on usability and visual representation. In this session we will compare several approaches for graphical views on Xtext models using GEF, Zest, JavaFX and Graphviz.

14:00 - 14:30

Xtext & CDO - Does it Blend?

Stefan Winkler

Editing EMF models is fun and easy with Xtext. But what if the models grow big over time? Big models are best managed with CDO. CDO is a model repository for EMF which replaces the traditional file-based storage with a distributed, collaborative, and scalable database-backed engine. Unfortunately, Xtext and CDO cannot work together out of the box. This session discusses the challenges and possibilities of combining both technologies.

Handle-based models for Xtext with Handly

Vladimir Piskarev

Handly is a recently created Technology project at Eclipse. Inspired by JDT Java Model, it aims to provide a common foundation for language-oriented handle-based models. A main feature of Handly is its integration with Xtext. In this talk I will describe what Handly is about in general and how it can be used to implement handle-based models for Xtext languages (domain-specific or not) in particular. It might also be a great opportunity to discuss the future of Handly with the Xtext community.

14:30 - 15:00
Coffee Break
15:00 - 15:30

Enhancing Content Assist

Sebastian Zarnekow

Content assist is one of the most important tools to assist your users. Although the default implementation provided by Xtext already helps a lot, you might want to enhance and customize the list of proposals. This session explains how content assist works and how it can be tailored to your needs.

Serializing EMF models with Xtext

Moritz Eysholdt

Xtext grammars are bi-directional, that is Xtext not only parses text into models but can also serialize EMF models back to text. Although the serializer can be used for more complicated quickfixes and refactorings its main usage is when an Xtext language is integrated with other EMF based frameworks, such as graphical editors. In this session you will learn how the serializer works and how it can be customized.

15:45 - 16:15

Xtext in the Web

Holger Schill

In this session we will show, explain and share a prototype that combines Xtext with an Orion-based web editor. You'll learn how it was done and what limitations exist. This session will also leave some room for discussing what we could do to further improve the support for web editors in future.

Testing with Xpect

Moritz Eysholdt

Xtext comes with Junit4 support out of the box, which is great for unit testing. Xpect on the other hand allows to define test expectations right within your DSL inside comments. As a result everyone who understands your DSL can write and read the tests. This is especially beneficial when working with more domain-related people, such as a Quality Assurance (QA) department.

16:30 - 17:00

Discussion "Xtext on other platforms"

Host: Sven Efftinge

Although Xtext languages can be used outside of Eclipse, the IDE support is for Eclipse only. In this session we want to discuss whether Xtext needs to target other platforms, which platforms that would be and why. Also we want to discuss the available options.

Implementing Type Systems

Lorenzo Bettini

Type checking and type inference are extremely helpful tools to guide your users properly. In this session we will cover how type computation for a few example languages can be implemented and will discuss the limits of this approach. We will also briefly present Xsemantics, a DSL for writing type systems, reduction rules and in general relation rules for languages implemented in Xtext.

18:00
Evening Reception and Party
09:30 - 09:50
Morning Coffee
09:50 - 10:20

Building Xtext Languages with Maven and Gradle

Dennis Huebner, Stefan Oehme

Xtext languages should be built, tested and deployed continuously. Just like any other piece of software. This session explains how Xtext languages and projects using them can be built using Maven and Gradle.

What's in a resource?

Sebastian Zarnekow

In Xtext a text file is parsed into an EMF Resource. In this session you will learn about the AST, the underlying node model and how that connects to your grammar. We will also cover the different lifecycles of an XtextResource, how URIs and URI conversion works as well as what adapters are and how they are used in Xtext. This is an advanced session, where basic EMF know-how is required.

10:30 - 11:20

Graphical Modeling with Xtext

Moritz Eysholdt

Sometimes a picture says more than a thousand words. In this talk you learn how to implement a graphical editor for an Xtext language. We go through the different options, such as GMF, Graphiti, Sirius or hand written using JavaFX. The attendees will get an overview of the advantages and disadvantages of each framework, the consequences for your textual language, and the main challenges when integrating with Xtext.

Code Generation with Xtend

Jan Köhnlein

All customization points and aspects of Xtext can be implemented in Java as well as in Xtend. In this session you'll learn why Xtend is often the better fit and see some best practices and idioms when implementing code generators, transformers, validators and more using Xtend.

11:30 - 12:00

3D Modeling With Xtext (Case Study)

Martin Nilsson & Esa Ryhänen

Sandvik Coromant produces cutting tools for the manufacturing industry. By combining Xtext with a CAD/CAM system we have been able to create a mass-customization environment for mechanical engineers. This gives us the possibility to automatically offer products tailor-made to customer demands. In this session we will show our enviroment and demonstrate how a cutting tool is automatically designed in 3D.

Implementing Interpreters

Anton Kosyakov

Interpreters are an alternative to traditional code generation. They are a good way to provide really fast turnarounds to your users and as such can improve the user experience significantly. In this session you learn what an interpreter is and how you can build one for an Xtext language. We will also discuss some advantages and disadvantages of this approach.

12:00 - 13:00
Lunch
13:00 - 13:30

Sirius + Xtext : <3

Cedric Brun

Xtext provides rich textual editing for your domain - aka "your *own* IDE" while Eclipse Sirius makes rich graphical editing a breeze for any kind of EMF model, but can they work together? This talk will walk through all the possible integrations between those two technologies, from concurrently using the Xtext and Sirius editors on top of the same files to integrating the Xtext completion to a diagram or to a popup editor. It will also tackle the pitfalls and specific pain points one should be aware of.

Oomph: Automatically Provision a Project-specific IDE

Eike Stepper & Ed Merks

Each time you set up a fresh development environment to work with a particular version of a specific project you must install an IDE with appropriate tooling, materialize the appropriate projects in the workspace, materialize the appropriate target platform, install your personal tools, and manage your personal preferences. These tasks need to be well documented and evolve from release to release. In this talk we'll show how you can manage all this more effectively by formalizing the instructions so they can be performed automatically with the click of a button.

13:40 - 14:10

Pay your taxes with Xtext (Case Study)

Boris Brodski

German tax authorities incorporate a great amount of tax offices. Choosing the right one involves domain and law knowledge. You will have a unique opportunity to sneak a peek at the Xtext-based rule engine with an interactive interpreter that saves a lot of headache for both programmers and officials.

Advanced Parsing and Lexing

Sebastian Zarnekow

Parsers are complex beasts. In this session you will learn how to best debug and test parsers, how to exchange the lexer and how to convince the parser that you know what you're doing.

14:10 - 14:40
Coffee Break
14:40 - 15:10

How we built a typed JavaScript language and IDE (Case Study)

Jens von Pilgrim

Parsing JavaScript already is a problem on its own if you think of feature like automatic semicolon insertion or regular expression. Additionally we built a sophisticated type system on top of it, which, e.g., provides full support for generics similar to Java. In this talk I will describe of how we achieved all that with Xtext and related tools like Xsemantics or Xcore, giving you an idea about not only the limitations but most of all the power of these tools.

Xtend Active Annotations

Anton Kosyakov

Not every code-generation problem should be solved with a custom DSL. Xtend's Active Annotations provide a more lightweight alternative, which is a good fit especially for smaller and more code-centric problems.

15:20 - 16:00

Closing Panel - The Future of Xtext

All

In this last session we will discuss the future roadmap of Xtext.

The Xtext Clinic

Ask a committer!

Runs in parallel to the main tracks on May 27 and 28.

The clinic is your chance to get any Xtext-related problem solved. No matter if you got stuck in the middle of a project, or you just want to get some feedback on your design decisions and ideas. At the clinic you'll get the chance to go into a deep dialog with one of the Xtext experts.

Xtext Full-Day Workshop - May 26

Holger Schill, Moritz Eysholdt

This workshop is for beginners and those whose Xtext skills could need a refresh. Attendees will be well prepared for the rest of the conference.

During the day we will first focus on achieving a quick breakthrough from defining a language to generating code from its instances with Xtend. Then we will walk through all conceptual and code-related aspects of Xtext that every language designer should understand. Common scenarios will be covered with hands-on exercises. You will also learn how you can benefit from using the programming language Xtend when building languages with Xtext.

  • Key workshop content:
  • Xtext overview
  • Xtext Grammar Language
  • Integration with EMF
  • Xtext Architectural Overview
  • Model Validation
  • Code Completion
  • Template Proposals
  • Formatting (Pretty Printing)
  • Generating Code from Xtext Models
  • AST Construction and Actions
  • UI hooks (Quickfixes, Coloring, Outline, etc.)
  • Common Strategies for Problem Solving
  • Outlook

Lunch and tea / coffee on arrival and throughout the day are included in the workshop fees.

Speakers

Here is the full list of speakers at XtextCON

Speaker Image
Anton Kosyakov
Xtext Committer
Anton Kosyakov works as an IT consultant for itemis AG in Kiel, Germany. He is a committer for the Eclipse projects Xtend and Xtext. Before joining itemis Anton has been focused on the development of Enterprise applications.
Speaker Image
Boris Brodski
Freelancer
Boris is a freelance software architect, consultant and maintainer of XtextCasts. His primary focus is developing middle and large enterprise applications. He believes in test-driven development and well structured source code.
Cedric Brun
Cedric Brun
CTO at Obeo
Cedric is CTO at Obeo, project lead of the Amalgamation project, committer in Eclipse Sirius, Acceleo, EMF Compare and Eclipse Modeling's evangelist. He works in his daily job on creating products - OpenSource or not - and building the A-team to create technology.
Speaker Image
Dennis Huebner
Xtext Release Engineer
Dennis Hübner works as a software engineer for itemis. He has a focus on model-driven software engineering with more than 9 years of experience with Java and Eclipse. As the build engineer of Xtext, Xtend and EMF he has a lot of experience with build technologies such as Buckminster, Maven Tycho and Gradle.
Speaker Image
Ed Merks
Eclipse Modeling Lead
Ed Merks is the project lead of EMF, the Eclipse Modeling Framework. He has been an elected member of the Eclipse Foundation Board of Directors for many years and has been recognized by the Eclipse Community Awards as Top New Comer Evangelist, Top Ambassador, and Top Committer and has received the Eclipse Lifetime Contribution Award.
Eike Stepper
Eike Stepper
Oomph and CDO Project Lead
Eike is an independent consultant around the topics modeling and OSGi. He runs his own consulting company since 1991 and is the project lead of Eclipse CDO and Eclipse Oomph.
Eike Stepper
Esa Ryhänen
Independent Consultant
Esa is an independent consultant focused on developing tools and methods for knowledge based engineering applications by integrating CAD, CAM and DSLs to enable product designers and production engineers to build systems for product mass customization.
Speaker Image
Holger Schill
Xtext Committer
Holger is an Xtext Consultant at itemis. He concentrates on technologies around Eclipse and MDSD and is a committer at Xtend and Xtext. Holger is a regular speaker at international conferences.
Speaker Image
Jan Koehnlein
Xtext Committer
Dr. Jan Koehnlein works as a senior software architect for itemis in Kiel. He has been a core committer of Xtext and Xtend right from their beginnings at Eclipse. Even though he has converted to the textual world he has not given up on graphical modeling completely.
Speaker Image
Jens von Pilgrim
Team Lead at NumberFour
At NumberFour AG, Jens leads a team which develops a fully-featured JavaScript IDE and other development related tools. At Eclipse, he leads the GEF3D project, which he started as part of his Ph.D. project about semi-automated model-to-model transformations.
Speaker Image
Lorenzo Bettini
Consultant, Researcher and Author
Lorenzo is an Assistant Professor in Computer Science at the university of Torino, Italy. His research interests are design, theory and implementation of programming languages. He is the author of the book Implementing Domain-Specific Languages with Xtext and Xtend.
Martin Nilsson
Martin Nilsson
Sandvik Coromant
Martin is working in the metal cutting manufacturing industry with automation systems tailored for mass customization. Focus in his work are on programming platforms and efficient integration with CAD systems together with developing modeling strategies for knowledge based engineering.
Speaker Image
Moritz Eysholdt
Xtext Committer
Moritz Eysholdt is passionate about software development and works for itemis in Kiel, Germany. He is committer at the the Eclipse Projects Xtext and Xtend and he is initiator of the test-framework Xpect. You may have met him as a consultant, speaker or runner.
Speaker Image
Sebastian Zarnekow
Xtext Committer
Sebastian Zarnekow works for itemis and lives in Kiel, Germany. As the co-architect of Xtend and Xtext he is specialized in language design, language implementation and IDE development. Sebastian presents at international conferences and writes articles for magazines.
Speaker Image
Stefan Oehme
Xtext Consultant
Stefan Oehme is a software architect and consultant at itemis. His primary focus is on connecting developers and domain experts through domain driven design, better languages and continuous delivery. In his last project at a large German bank he cut down release cycles from six months to two weeks.
Speaker Image
Stefan Winkler
CDO Committer & Freelancer
Stefan Winkler is a freelance consultant and developer for Eclipse-based solutions. For his customers, he has extended and adapted various technologies, such as Team, Mylyn, and EMF. Stefan lives in Kiel, and has been a committer for CDO and a contributor to various other Eclipse projects since 2007.
Speaker Image
Sven Efftinge
Xtext Project Lead
Sven is a passionate software developer at itemis, who loves working with high quality source code. He's an experienced programming language and API designer and is the founder and project lead of Xtext and Xtend. In his spare time he codes Android apps, spends quality time with his family and is out on the sea for kite surfing.
Vladimir
Vladimir Piskarev
Eclipse Handly Project Lead
Vladimir works for 1C, one of the largest Russian software vendors. He is the Eclipse Handly project lead and is deeply interested in programming languages, systems design, and Xerox PARC research legacy. Having extensively used Xtext since 2.0, he's a convert.

Location

The Conference takes place at ATLANTIC Hotel, Kiel.

The ATLANTIC Hotel is located in the heart of Kiel, in the immediate vicinity of the Central Railway Station and overlooking the Kiel Fjord and the ferry piers.

A pedestrian bridge connects the first floor of the hotel to the car park. For attendees coming from Hamburg Airport we recommend the airport shuttle bus Kielius or the Kielexx airport shuttle.

Make a room reservation at the conference hotel using the special booking code "XTEXTCON"