The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms...
Models as Scripts, with a DSL for Every EMF Metamodel
Write EMF models and metamodels as Groovy scripts, with a DSL derived from any metamodel by reflection: no grammar, no parser and no code generator to maintain.
Minimum price
Free!
$8.97
About the Book
A model has to be written down somewhere, and every way of writing it down has a cost. XMI is exact and written for machines. YAML and JSON are friendlier, but they are data: no variables, no loops, no computation. Diagrams suit some models and not a model of four hundred rules. Generated editors are good for changing one element and poor for seeing the whole or reviewing a change.
A Groovy script that builds a model reads like a structured document, braces for containment and a call for each feature, and it is also a program. It can name things and refer to them with variables, repeat and compute, derive a model from a diagram, a spreadsheet or another model, and decide what saving the model means. It is text, so it is diffed, reviewed and merged like code.
This book describes the Groovy module of the Nasdanika SDK Runtime, which loads a file such as library.ecore.groovy as an EMF resource. The language is derived from the metamodel by reflection when the script loads: every concrete class is a keyword, every feature is a call, and containment is nesting. Bind it to Ecore and you write metamodels; bind it to a rules or architecture metamodel and you write rule sets or architectures. Change the metamodel and the language follows on the next load, with no grammar, parser or code generator.
Every listing is included from the module's sources, tests or test scripts and runs when the book is built. The book says plainly that a script model is a program that runs when it loads, so load scripts only from sources you trust. Status labels mark what is PLANNED.
This is a Nasdanika Zephyr Book, an in-depth manual for one module of the Nasdanika SDK Runtime, and it stands on its own. The code needs Java 25 and brings Apache Groovy 5; some familiarity with EMF helps. The text is licensed under CC BY 4.0 and the code under EPL-2.0.
About the Author
Over 30 years of experience in Information Technology with 25 of them in the Financial Services industry, which includes 20 years in banking.
Model-Based Systems Engineering, Java, Architecture As Code
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms...
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
Learn more about writing on Leanpub
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them
You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!
Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.
Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.