It has been more than one month ago since my last blog post so it’s time for a small update.

Last month was actually quite busy, but also very exciting. Mid June, we gave a workshop DSL development with Eclipse MDT, for which I prepared a DSL along with model transformations and a code generator to efficiently develop Android applications. Concluding from the evaluations filled in by the 23 participants, the workshop was a great success. Therefore, we are currently investigating the possibility to give this workshop a second time (contact me if you are interested).

Soon after the workshop, I attended an Android seminar organized by Nspyre and started working as a contractor at the FEI company. This company is the world leader in the production and distribution of electron microscopes. Using these microscopes, matter smaller than a nano-meter can be made visible, sometimes even be modified. Really cool stuff and a very exciting and challenging environment to work in. Obviously, the changing environment, new product and new software technologies forced me to learn already a lot of new things. Being part of a team for more than a month gave me a good impression of the software department and my role within it. I am confident I will find my place in it and will manage to add value to it. It is also worth to mention that FEI organized an internal Scrum/Agile course which I was allowed to attend. The course was taught by the people of QWAN and was very educating (and fun!).

At the model driven development front it has been a bit more quiet since these activities are now only taking place in my free time. Besides contributing to internally promoting MDD within Nspyre (of which I decided not to elaborate on this blog too much), I have attended a webinar showing new features of Xtext 2.0, which was released with Eclipse Indigo. Besides the cool new features of Xtext 2.0, the successor to Xpand (Xtend2) was presented. Xtend2′s capabilities are quite impressive, but I still don’t understand the design choice that led to develop a custom Java-like query language instead of using the OCL. The gents at itemis are aware of this, as the webinar was finalized directly after I’ve started a discussion on this topic. Really funny! Furthermore, I’ve responded to a blog post about improving the documentation of GMF. It was suggested that “GMF is not that complicated to undersand and use”, which I dare to contradict. The existence of DSL toolkits building on top of GMF (e.g. Obeo Designer) can be considered proof that I am not the only one. Pinpointing how to improve the documentation to make GMF better usable and easier to understand is thus difficult. Nonetheless, I hope documentation will be improved and GMF will survive!

So much for the update….





The Code Generation 2011 conference was held two weeks ago in Cambridge (UK). This conference is every years most important event within the area of Model Driven Engineering. A place where the top of the world unites to discuss this particular field of interest. I had the honor to represent the company I work for (Nspyre) at this event.

The three-days during conference was held on the Murray Edwards college, just outside the center of Cambridge. The journey to England started Tuesday night (24th of May) with a flight to London Stansted, a train ride to Cambridge and taking a taxi to the hotel which was about 20 minutes walking away from the college. A short visit to the local pub to drink a typical English pint and a quick preparation for the next day completed the day.

The conference started the next morning with a welcome speech by the organisation. The atmosphere was quite friendly and amusing with a handful of jokes by the speaker. It seemed that about 120 people from all around the world had attended the conference, so large enough but still very accessible. The sessions for the day consisted of answering the question whether code generation from UML models can be efficient, an overview of existing and new functionality of Obeo Designer and a panel discussion about the dilemma whether a company should be developing it’s own Domain Specific Languages. The day ended with a very well organized punting trip, a boot trip similar to gondolas in Venice.


Terrence Parr, the spiritual father of ANTLR, opened the second day of the conference. His most important message was that we, as being software developers, should always automate the activities we perform more than once. It proofed to be a very entertaining keynote speech. Other cool sessions were the presentation about practical experience in building software factories, an overview of functionality of Acceleo and a discussion about how to make Model Driven Engineering to live up to its promise. After these interesting sessions the organisation treated us with a delicious diner to end the day.

The last day was opened with a keynote of Ed Merks, project leader of the Eclipse Modeling project. Ed treated us with an interesting view on models and DSLs based on his experiences when developing EMF. A hands-on Jetbrains MPS workshop and a discussion of applying code generation as a normal programming practice were interesting warm-ups for the closing panel session of the conference. The panel consisted of Johan den Haan, Jos Warmer, Wim Bast and Andrew Watson. The discussion was led by Markus Voelter. The result was a very active and vivid discussion about the future of Model Driven Engineering for the next 5 years.

Right after the last presentation, I quickly headed to the train station to catch the train to Londen Stansted. Just one short night stay in a hotel close to the airport, before flying back to Eindhoven. I am looking back at a very fun, useful and educating conference. It is not that I have learned a lot of new things, but above all  I have received confirmation that we are definitely proceeding in the right direction!

As far as I am concerned, a very successful event! Great to be there representing Nspyre!



Number One

Hi there, welcome to my weblog!

Let me first introduce myself; my name is Niels Brouwers. Born almost 31 years ago, now happily living together with my lovely girlfriend and our cat in a nice house in Waalre, a small village in the south of the Netherlands. I received my bachelor degree in Electrical and Electronic Engineering at Fontys Hogescholen in 2001 and my masters degree in Computer Science at Eindhoven University of Technology in 2006. I am currently employed by Nspyre.

My professional interests are software modeling, model driven engineering, domain specific languages, code generation and developing embedded software in general. You can click on the LinkedIn button on the right to see more detailed information about me.

So now the formalities have passed, let’s get down to business.

Why did I start blogging?

Let me try to explain why I started blogging.

The discipline of software engineering is relatively new compared to other engineering disciplines. As a result, this discipline is constantly improving to create software that is of higher quality, more affordable, maintainable, and quicker to build. This leads to a constant rapid evolution of aspects such as paradigms, processes, methods, programming languages and tools that increasingly assist the software engineer to reach this goal. In turn, this leads to a load of choices that need to be made when developing software. Are we going to develop software using the imperative, the declarative or the object oriented programming paradigm? Is the implementation language going to be C, C++, Java or Python? Is the project planned according to the classic waterfall or an agile development process?

As a software engineer, you are confronted with the choices mentioned in the previous paragraph, likely even more. Loads of reading material in the form of books or articles on the internet can help you to study all of these aspects of software engineering in detail, but let’s face it: it is all too much. Therefore, I think it is part of being a software engineer to try to get the big picture and form your own ideas about each of the aspects and the choices that may possibly be made.

So, now we are getting close to the answer of the question: why did I start blogging? The most important reason why I started blogging was because I wanted to write down my thoughts and idea’s I have about software engineering in order to prevent thinking about them over and over again. Furthermore, if you write something down and expose it to the world you take extra caution that what you write has some truth in it. So it actually acts as some kind of safety mechanism that prevents me from having crazy idea’s ;-)

Last but not least, I hope that one of my articles will be subject to some discussion between readers and myself in order to improve the article and correspondingly my idea’s. This is where your help is appreciated!

What subjects will I be blogging about?

Don’t worry, I will try to limit the amount of blogs related to my personal life to a bare minimum (don’t want to bore the rest of the world with it ;-)). The subjects will mostly be related to my professional career as being a software engineer and (obviously!) will have something to do with my (professional) interests as mentioned at the beginning of this post.

Closing words

I really hope you will enjoy reading my blog and please feel free to comment on my articles. See you back soon!

Kind regards,
Niels Brouwers.