Software Development and Other Hacks

My core areas in software development are model driven, generative approaches and the object oriented paradigm. And one can't really escape developing for the web.

Model Driven Development

Unfortunately model driven development hasn't found broad usage till this day. Subsequently, products as e.g. the Netbeans Metadata Repository, which enabled development along OMG's MDA approach quite some years ago, have been buried in oblivion. But at least with the Eclipse Modelling Framework exists a platform, that is vividly in development, supported by a large community and the base of a significant number of build-upon modelling languages and tools.

Once models for the domain of interest are designed and created, further processing tool mostly fall in one of two categories: these, that transform models into other models probably of different type, as well as those, that generate text files from models. In fairness, tools of the first kind often store their result models as text files as well. And in fairness again, tools of the second kind mostly generate models as well, only the choice or necessity to use the text file format often makes the model nature implicit. Subsequent tools then often recover the model through parsing of the text.

QVT Operational of the OMG is a language for model to model transformations whose imperative syntax is rather readily learnable by Java aficionados. But analogies to the situation of MOF implementations hold. The implementation SmartQVT sadly has stopped evolving since 2008. Fortunately the company Borland did release their QVTo implementation in 2008 to the Eclipse Foundation. It is till this day the most usable implementation of that language.

To model-to-text transformations pursuant to the OMG standard Acceleo lends itself. It is an open source implementation originating from Obeo.

Object Oriented Development

As much as object oriented development goes way back and meant developing with languages like Smalltalk as did this paradigm reach mainstreame only through C++ and even more so through Java. Java's pecularity was the elegant virtual machine that went with it. This was one reason that a significant number of languages emerged on it, often with fresh ideas and almost always sporting good interoperability with the existing Java world. Scala which gained popularity in the last yearsis a good example.

Development for the World Wide Web

Those who witnessed the formation of the world wide web through the NCSA Mosaic Browser will always be aware how inappropriate the Hypertext Transfer Protocol is for application development. But then, those might as well have made mainframe programs talk to stateless 3270 Terminals and hence are hard to upset anyway.

For the time beeing this section will focus on my experience in creating this web site and therefore in using pelican, python and skeleton.

Transformation of Models

The definition of meta models and the editing of models are the base enablers for the transformation of models. As the results of such transformations can replace human written source code or similar artefacts this approach offers a great potential.

Programming in object oriented Languages

I enjoy the object oriented programming in Java since 1999. For 2 years now I tap into the power of the functional object oriented laguage Scala.

Programming for the WWW

For the time being I write here about the construction of my web site and the experiences I gathered on the used tool set.

Copyright © 2016 Uwe Ritzmann - Created with Pelican, Python and Skeleton.