Generation process

Generation process

  
Hello all,

I had a few questions regarding the generation process.

I was wondering how the generation process from Outsystems works. Does this use code templates that are repated for certain parts of the meta-data? Or is there another mechanism?

And if templates are used, are there 2 generators (one for Java and one for .NET) or is there only one generator that uses different different code templates (i.e. Java or .NET)

Many thanks in advance!
Hi Sven,

Part of it is template based, but in order to generate optimized code there is a lot of it that is not on the templates and it's "written" explicitly by C# or Java code based on the model and the inferences done by our optimizers.

The parts that are done in templating, yes there are 2 of each template one for each language. The generator is only one, but it is compiled in both C# and Java to run on both stacks.
Also there are some base dll/jars with already the base classes so common behaviors can be reused instead of generated many times.

Just out of curiosity, why are you asking? :)

Regards,
João Rosado
Hello João,

Thank you very  much for replying! I'm asking because I am recently getting into model driven software development. I have tried a few tools such as Genexus and Mendix, but overall I like Outystems the most. I realised that Outystems has a very rich documentation, but for some reason I am not able to find information on the generator, but maybe I'm looking at the wrong places. And I'm very eager to learn how the generation is realised.

But if I understand you correctly, there are in fact 2 instances of the generator, one compiled in C# and one in Java?

You also mention a optimizer, is this a different program or are the optimizer and generator one program? And are they performed at the same time, or does the generator first produce standard code through templates, after which additional (optimized) code is added by the optimizer?

After this I will have no further questions! :)

Regards,
Sven Fortuin
João Rosado wrote:
Hi Sven,

Part of it is template based, but in order to generate optimized code there is a lot of it that is not on the templates and it's "written" explicitly by C# or Java code based on the model and the inferences done by our optimizers.

The parts that are done in templating, yes there are 2 of each template one for each language. The generator is only one, but it is compiled in both C# and Java to run on both stacks.
Also there are some base dll/jars with already the base classes so common behaviors can be reused instead of generated many times.

Just out of curiosity, why are you asking? :)

Regards,
João Rosado
 Hello João,

Thank you very  much for replying! I'm asking because I am recently getting into model driven software development. I have tried a few tools such as Genexus and Mendix, but overall I like Outystems the most. I realised that Outystems has a very rich documentation, but for some reason I am not able to find information on the generator, but maybe I'm looking at the wrong places. And I'm very eager to learn how the generation is realised.

But if I understand you correctly, there are in fact 2 instances of the generator, one compiled in C# and one in Java?

You also mention a optimizer, is this a different program or are the optimizer and generator one program? And are they performed at the same time, or does the generator first produce standard code through templates, after which additional (optimized) code is added by the optimizer?

After this I will have no further questions! :)

Regards,
Sven Fortuin
 
Sorry for the double post, but it was intended a reply the first time.