Dringende Buchempfehlung: Gunter Dueck's "Aufbrechen"
Ich bin ja nicht unbedingt ein Fan der früheren Dueck-Bücher. Ich finde sie teils etwas zu philosophisch und langatmig. Aber das neue, "Aufbrehen - Warum wir eine Exzellenzgesellschaft werden müssen"
ist absolute Pflichlektüre für jeden der Deutsch versteht.
Dueck beschreibt wie sich die klassische Dienstleistungsgesellschaft aufgrund zunehmender Automatisierung dem Ende nähert. Der einzige Weg für ein Land (und die darin lebenden Menschen) relevant zu bleiben ist Exzellenz: also richtig gut sein bei dem was man tut. Mit anderen Worten: wir sollten dringend in Bildung und zukunfsfähige Infrastrukturen investieren. Ich will aber gar nicht mehr erzaehlen. Für jeden der sich schon mal die Frage gestellt hat wie das mit diesem Land eigentlich so weiter gehen soll, ist das Buch dringend lesenswert.
Übrigens hat Dueck auf der OOP 2010
über dieses Thema geredet und ich habe ihn im Vorlauf im Rahmen des OOP Podcasts dazu interviewt
. Nach dem Interview war mir klar, dass ich das Buch lesen werden müsste. Vielleicht geht's Euch beim Hören des Interviews ja auch so :-)
MPS/C/Lego Showcase at Embedded World 2010!
I am glad to report that I will have the chance to show the MPS/C/Lego showcase at this year's Embedded World
have a booth there, and I will be at the booth Wednesday and Thursday to help communicate itemis' story about model-driven development, DSLs and embedded systems - including Eclipse Modeling and Xtext, Yakindu and also the MPS/C/Lego showcase.
So if you're at Embedded World, be sure to drop by :-)
There's nothing more motivating than cool technology, Part 2
Of course I had to show the MPS/C/Mindstorms thing to my girlfriend. She works with embedded software for BOSCH. So in some very real sense, she would be a user of what we are building here. Together we built a simple "dancing robot" example. With a statemachine and a task. She said she really liked what she saw! Very encouraging! (Typically she is rather sceptical about the "magic" stuff I work on) We added some product line variability to create two versions of the "dance". Just a matter of minutes.
The cool thing was: except for a little bug in the statemachine generator, the new program (built with my own language) worked out of the box!!
This stuff is really A LOT of fun!
There's nothing more motivating than cool technology!
I spent the last couple of days and the weekend working on the Lego Mindstorms MPS showcase together with Bernhard Merkle. I extended my C implementation on MPS with state machines, tasks, bit patterns and other neat stuff useful for embedded programming and the Lego Mindstorms showcase.
It's hard to overstate how much fun it was! It is literally a matter of hours to extend a programming language (C) with new, domain-specific concepts that integrate completely into the programming experience - including the IDE and the type system.
MPS is really an unbelievably powerful tool, and it is surprisingly mature. Very little "strange behaviour". The only thing missing for a complete experience is an extendible debugger - and that will come with the next release (1.2).
There's only one problem: Using MPS effectively requires quite a bit of learning. The learning curve is significant. It's hard for most people to cough up the time and effort to work through the learning curve - I could not have done it without the wonderful support from Jetbrains' Konstantin Solomatov. The only thing I can say is: it's really worth it. It's a perfect environment for language development and integration, and clearly plays in the same league as Xtext and Intentional's Domain Workbench, with each of the tools having their own strong points and weaknesses.
Go, take a couple of weeks, and dig into it! It's really cool!
PS: I will blog about hte actual showcase later.
Helios Xtext coming along nicely
If you're an Xtext
user you should take a look at the New and Noteworthy for Helios M5
. The itemis
team in Kiel is making good progress and the feature set for Helios is shaping up nicely.
I guess there's no point in repeating what the New and Noteworthy
says, but I want to point out one feature specifically: the Builder infrastructure results in a "global model space". In other words you don't have to explicitly import resources (files) to be able to refernece an element. You can do it like Java and work with logical namespaces or packages or something. In the M5 release the guys added a feature which makes this facility perfect: Ctrl-Shift-Z opens a dialog where you can enter a the name of a model element and you can directly jump to that element. This completes the "Java IDE feeling" for your own DSLs. Very nice :-)
If you want to try it out get the M5 distro
. It contains a bunch of examples that showcase the new features.
DSL Best Practices Video
The folks from the JAX conference
have published the video of one of my talks at last year's JAX: DSL/MDSD Best Practices
. It's german and I have a cold, but I guess it's still worth watching if you're into these topics.
(you can also read most of what I said in English in this article