![Page 1: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/1.jpg)
Karsten Thoms
![Page 2: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/2.jpg)
EASY TO LEARN
FLEXIBLE
GOOD DOCS
HIDES COMPLEXITY
USES XTEND
GOOD SUPPORTFAST PROTOTYPING
GOOD DEFAULTS
MATURE
SOURCE QUALITY
![Page 3: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/3.jpg)
FLEXIBILITYWho says you can’t play golf with apples?
https://pixabay.com/de/apple-natur-green-garten-947674/
![Page 4: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/4.jpg)
DESIGN SMELLS
![Page 5: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/5.jpg)
GRAMMAR• Assign ‚name=ID‘ attribute for non-referable elements
• Tweaking grammar to optimize non syntax related stuff
• generated meta model structure
• content assist (e.g. whitespace in combined keywords)
• scoping
DESIGN SMELLS
![Page 6: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/6.jpg)
GRAMMAR• Too few / too much keywords
• Trying to solve too much with terminal rules
• Unordered groups for multivalued assignments
• Using Xcore for small metamodels
• Enable backtracking to „solve“ a grammar ambiguity issues
DESIGN SMELLS
![Page 7: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/7.jpg)
GRAMMAR• Too few / too much keywords
• Trying to solve too much with terminal rules
• Unordered groups for multivalued assignments
• Using Xcore for small metamodels
• Enable backtracking to „solve“ a grammar ambiguity issues
DESIGN SMELLS
![Page 8: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/8.jpg)
GRAMMAR• Too few / too much keywords
• Trying to solve too much with terminal rules
• Unordered groups for multivalued assignments
• Using Xcore for small metamodels
• Enable backtracking to „solve“ grammar ambiguity issues
DESIGN SMELLS
![Page 9: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/9.jpg)
AMBIGUITY
![Page 10: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/10.jpg)
SCOPING• Use declarative scope provider
• Navigate cross-references while computing scope
• Compute stuff in scope provider which could be put into IEObjectDescription’s user data
• „Optimize“ scope to tweak content assist
• Check for proxies, resolve proxies
• Instantiate unnecessary objects
• Access node model and assume that it is complete
DESIGN SMELLS
![Page 11: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/11.jpg)
VALIDATION• Don’t use semantic validation at all
• Use @Check without CheckType => Default is CheckType.FAST
• Provide check methods for child-elements which traverse sibling elements (e.g. uniqueness check)
• Many fine grained check methods
• Loading the world again
DESIGN SMELLS
![Page 12: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/12.jpg)
COMPLEXITY
![Page 13: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/13.jpg)
IDENTIFYING THE RIGHT PLACE TO FIX AN ISSUE
https://pixabay.com/de/nadel-im-heuhaufen-nadel-heuhaufen-1752846/
![Page 14: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/14.jpg)
https://pixabay.com/de/yoda-dunkel-die-dunkle-seite-des-1726764/
Use the Source, Luke!
![Page 15: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/15.jpg)
![Page 16: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/16.jpg)
Dependency Injection
![Page 17: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/17.jpg)
CUSTOMIZING
http://de.freeimages.com/photo/chef-s-swiss-knife-1239195
UNEXPECTED
![Page 18: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/18.jpg)
OVER ENGINEERING
![Page 19: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/19.jpg)
DSL OVERLOAD
Entity DSL
ConfigDSL
FrontendDSL
RuleDSL
Style DSL
BehaviorDSL
RequirementsDSL
CoolDSL
YetAnother
DSLPersonalFavorite
DSL
MyDSL
DatabaseDSL
Sample DSL
The Only Right DSL
![Page 20: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/20.jpg)
EXPRESSIONS
![Page 21: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/21.jpg)
DSL != NATURAL LANGUAGE
![Page 22: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/22.jpg)
NON-TECHIE USERS
![Page 23: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/23.jpg)
SCALABILITY
http://de.freeimages.com/photo/constructing-tower-1207408
![Page 24: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/24.jpg)
CODE WASTE
![Page 25: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/25.jpg)
PROTOTYPES
![Page 26: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/26.jpg)
TESTING
![Page 27: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/27.jpg)
STICK WITH OLD RELEASES
![Page 28: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/28.jpg)
ADVICE RESISTANCE
![Page 29: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/29.jpg)
WRONGTOOL
![Page 30: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/30.jpg)
PROBLEM
SOLUTION
![Page 31: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/31.jpg)
• Evaluate if Xtext is the right tool to solve a problem [ it
often is :-) ]
• Get experts on board when starting ambitious projects
• Learn underlying technologies (EMF, ANTLR, …)
• Continuously develop DSL projects
• Write extensive tests
• Invest into user experience
AVOIDING TROUBLE
![Page 32: From Stairway to Heaven onto the Highway to Hell with Xtext](https://reader034.vdocument.in/reader034/viewer/2022051404/58ed65841a28ab4f798b472b/html5/thumbnails/32.jpg)
KEEP INFORMED
itemis.com / Blogs / Xtext
@kthoms
@holgerschill
@itemis
@chrdietrich
@franzbecker_io