Re: chooses not to generate code at all



Responding to Verhoeven...

I have no problem with phpPeanuts as a proof-of-concept or rapid prototyping tool. My comments below are mainly addressed at your description of MDA...

We are not alone! "Where other MDA tools are generating programmingcode, Codeless chooses not to generate code at all".

Note that only the MDA tools supporting translation provide full code generation. The MDA round-trip tools, currently the most common MDA tools, that support traditional elaboration usually only generate static structure declarations.



OK, phpPeanuts is not an MDA tool (it has no fancy modeling GUI). But it does generate application behavior straight from the metamodel, without generating code. And we did not need "a decade of know-how in maintaining systems with more than 30 million lines of generated code" to understand that it is not necessary to generate code, that generating code is only generating a maintenance problem.

There is nothing in MDA that requires one to model abstractly. For example, a 3GL compiler, linker, and loader that produce an executable from a 3GL source program are essentially MDA tools (i.e., providing PSM -> PSM transformation of representation). One doesn't see a lot of text-based PIM notations around mainly because the abstraction necessary for a PIM is usually best achieved in a 4GL graphical language.


Also, there are no tools that generate code "directly from the meta-model". All MDA tools generate code from an /instantiation/ of a meta-model for a specific application context. If you are referring to executable models, there are tools available (e.g., Bridgepoint) that execute directly from the MDA PIM without code generation. (Translation tools commonly run exactly the same test data to validate the model that they use to validate the generated executable.)

Also note that for translation-based MDA there is no maintenance of generated code. If one needs to make a change it is done to the model and the code is regenerated. (I know of one vendor who deliberately makes the generated code difficult to read to prevent anyone from mucking with it directly.) One of the main reasons that the translation tools generate 3GL code at all is to reuse the optimization provided by 3GL compilers.

Finally, as McKinnon points out, I think the definition of "code" for codeless is bit picky. It seems to me that scripts are code in exactly the same sense as C or COBOL source code. [I could also point out that scripting and markup languages were widely used in the '50s and '60s and there is a reason why they were largely abandoned by the '70s. But let's not go there. B-)]


************* There is nothing wrong with me that could not be cured by a capful of Drano.

H. S. Lahman
hsl@xxxxxxxxxxxxxxxxx
Pathfinder Solutions  -- Put MDA to Work
http://www.pathfindermda.com
blog: http://pathfinderpeople.blogs.com/hslahman
(888)OOA-PATH



.