Report on the GeneXus Meeting 2009
After attending a GeneXus Meeting for the first time, the software architect and consultant from Valencia blogs about why the Community meeting greatly exceeded his expectations.
By Pedro J. Molina from Spain.
After coming back to Valencia from Montevideo, I've found the time to organize my ideas and keep my promise of describing everything I saw there.
As I've said before, it exceeded my expectations.
The GeneXus Meeting organized by Artech is of world-class level: more than 3,600 participants, and over 120 sessions given over the course of three days. I'm impressed! These kinds of things are not improvised and the organizing team did a wonderful job for the event. Congratulations!
In this post I will comment on what I saw and liked (and share links to the videos and ample material) and explain my new, deeper insight of GeneXus.
Note: some online materials have been translated into English, but most of them are only in their original version (Spanish).
The Meeting
Once I finished presenting my MDD session on Monday, I had some free time to relax, follow the rest of the event and learn new things.
I wanted to know a bit more about Microsoft's vision of Cloud Computing so I attended these presentations:

Eugenio Pace
Steve Marx's (Microsoft) presentation about Azure, "Deploying to the cloud" and "Is your head in the cloud? Factors to keep your feet on the ground" by Eugenio Pace (Microsoft). Both of them provide a good overview of the factors to have in mind in order to use this computing paradigm and how Microsoft is preparing its cloud platform called Azure.
Another block of sessions that I found interesting were the RIA & Javascript sessions:
"Extreme Javascript" by Andrés Levin (Artech)
"GeneXus X: Rich Internet Applications Now!" by Nicolas Cardelino (Artech)
"The future of RIA applications with GeneXus" by Alejandro Silva (Artech)
These presentations gave me a comprehensive review of the pros and cons of current RIA platforms (Flex, Silverlight & AJAX) and the new HTML 5 features. Alejandro put special emphasis on how code generators can be modularized to modify parts of them in order to help change the output architecture of your RIA application. It absolutely makes sense to do it in this way to promote reuse.
Alejandro Panizza (Artech) spoke about "REST Webservices" and their use in relation to code generation.
I also met Nicolás Jodal (Artech) and enjoyed his great keynote presentation titled "It's in our nature...". Nicolás spoke about human nature and the kind of things that we instinctively do, such as mimic success, communicate and share, believe in models... and how the technologies that exploit such human traits tend to be more successful that those which don't. It was a very inspiring session!
On the soft skills side, Jose Lamas (Artech) talked about "How to achieve quality discussions". It was enjoyable and practical, and I’m going to put it in practice as soon as possible.
On Tuesday, Juan Matteo (a.k.a. Nicolás Jodal) talked about "Universal Data Models" to introduce alternatives to traditional relational databases in order to shift the focus from rows to columns, and from entities to attributes and relations. Obviously, this change doesn't provide good performance for a general replacement of RDBMs, but for small sets of data, working in this way can be quite productive, with benefits such as versioning, easy link exploration and on-demand extensibility.
One of the new features of GeneXus X Evolution 1 is the new Ruby generator. Daniel Mendez & Sabrina Juarez (Artech) showed that work.
On Wednesday, Gastón Milano of Artech gave a review of the "GeneXus Language Evolution" and the plans to improve that language in the future by introducing scalability through modularization and improving the user interface specification in GeneXus.

Angel Mahler's orchestra
In the closing afternoon, there was a funny and enjoyable session titled "When a team sounds fine" by Angel Mahler. In this session, an orchestra played several songs from movie soundtracks, stressing how aligned collective work (teamwork) can achieve better results than the sum of individual efforts (the so-called and often abused term Synergy). Nice performance!
Finally, Breogán Gonda closed the event with his keynote presentation. I remember some statements that I liked because they show his attitude and strong commitment.
He admits that the first meeting (19 years ago) was held to talk with clients and acknowledge a problem that they were experiencing back then. The main objective was to acknowledge the problem and let their clients know that they were working on finding a solution.
At present, he can't promise that there won't be any problems in the future; nobody can do that. However, he commits himself to keep working on the solutions together with clients, openly, as a real community. That's the attitude I like!
The product
I have to admit that I traveled to Montevideo without having a clear understanding of GeneXus. I have never worked with this tool: is it object-oriented or UML oriented? Is it MDD? Fortunately, I came back with a much clearer view of its approach.
GeneXus is based on the specification of conceptual data modeling and uses the assumption of unique names to such business concepts such as CustomerSurname or TotalInvoice. Behind the scenes, a (rule-based) Prolog engine obtains the final data model, the database to SQL. Once this definition has been made, GeneXus provides different DSLs to specify the business logic, workflow, user interfaces, etc. The fact that this specification does not depend on the database structure is a plus, meaning that it can be easily retargeted and, what's more, renormalized.
One of the most impressive features of GeneXus, which is something that you don't find in other modeling products, is the real out-of-the-box Schema Evolution: you can define your model, generate it, populate it and go live (deploy). Later on, you can change your model in such a way that it changes your data model and forces a reorganization of the database. In this scenario, when you regenerate your application, a set of DB scripts are also generated and applied to move your data to your new application. That's cool and difficult to achieve!
Of course, everything is abstracted from technology, making it easy to generate for different platforms such as Cobol, AS400, Java, C#, Ruby, code for the cloud (Azure), to name a few.
As commented by Artech staff, they need to improve the tool's scalability in order to manage large projects and introduce better and easier User Interface specification.
GeneXus isn't UML, it has no Class Diagram nor Sequence Diagram. You won't find XMI or MDA profiles either, because GeneXus doesn't need them. It's just a different approach, but it's real MDD; as real as its 20 years in the market.
Congratulations to the entire Artech team!
Keep up the good work, showing that code generation is the way to go in software development.
* Post: The Metalevel — Report on Genexus Meeting 2009
After coming back to Valencia from Montevideo, I've found the time to organize my ideas and keep my promise of describing everything I saw there.
As I've said before, it exceeded my expectations.
The GeneXus Meeting organized by Artech is of world-class level: more than 3,600 participants, and over 120 sessions given over the course of three days. I'm impressed! These kinds of things are not improvised and the organizing team did a wonderful job for the event. Congratulations!
In this post I will comment on what I saw and liked (and share links to the videos and ample material) and explain my new, deeper insight of GeneXus.
Note: some online materials have been translated into English, but most of them are only in their original version (Spanish).
The Meeting
Once I finished presenting my MDD session on Monday, I had some free time to relax, follow the rest of the event and learn new things.
I wanted to know a bit more about Microsoft's vision of Cloud Computing so I attended these presentations:

Eugenio Pace
Steve Marx's (Microsoft) presentation about Azure, "Deploying to the cloud" and "Is your head in the cloud? Factors to keep your feet on the ground" by Eugenio Pace (Microsoft). Both of them provide a good overview of the factors to have in mind in order to use this computing paradigm and how Microsoft is preparing its cloud platform called Azure.
Another block of sessions that I found interesting were the RIA & Javascript sessions:
"Extreme Javascript" by Andrés Levin (Artech)
"GeneXus X: Rich Internet Applications Now!" by Nicolas Cardelino (Artech)
"The future of RIA applications with GeneXus" by Alejandro Silva (Artech)
These presentations gave me a comprehensive review of the pros and cons of current RIA platforms (Flex, Silverlight & AJAX) and the new HTML 5 features. Alejandro put special emphasis on how code generators can be modularized to modify parts of them in order to help change the output architecture of your RIA application. It absolutely makes sense to do it in this way to promote reuse.
Alejandro Panizza (Artech) spoke about "REST Webservices" and their use in relation to code generation.
I also met Nicolás Jodal (Artech) and enjoyed his great keynote presentation titled "It's in our nature...". Nicolás spoke about human nature and the kind of things that we instinctively do, such as mimic success, communicate and share, believe in models... and how the technologies that exploit such human traits tend to be more successful that those which don't. It was a very inspiring session!
On the soft skills side, Jose Lamas (Artech) talked about "How to achieve quality discussions". It was enjoyable and practical, and I’m going to put it in practice as soon as possible.
On Tuesday, Juan Matteo (a.k.a. Nicolás Jodal) talked about "Universal Data Models" to introduce alternatives to traditional relational databases in order to shift the focus from rows to columns, and from entities to attributes and relations. Obviously, this change doesn't provide good performance for a general replacement of RDBMs, but for small sets of data, working in this way can be quite productive, with benefits such as versioning, easy link exploration and on-demand extensibility.
One of the new features of GeneXus X Evolution 1 is the new Ruby generator. Daniel Mendez & Sabrina Juarez (Artech) showed that work.
On Wednesday, Gastón Milano of Artech gave a review of the "GeneXus Language Evolution" and the plans to improve that language in the future by introducing scalability through modularization and improving the user interface specification in GeneXus.

Angel Mahler's orchestra
In the closing afternoon, there was a funny and enjoyable session titled "When a team sounds fine" by Angel Mahler. In this session, an orchestra played several songs from movie soundtracks, stressing how aligned collective work (teamwork) can achieve better results than the sum of individual efforts (the so-called and often abused term Synergy). Nice performance!
Finally, Breogán Gonda closed the event with his keynote presentation. I remember some statements that I liked because they show his attitude and strong commitment.
He admits that the first meeting (19 years ago) was held to talk with clients and acknowledge a problem that they were experiencing back then. The main objective was to acknowledge the problem and let their clients know that they were working on finding a solution.
At present, he can't promise that there won't be any problems in the future; nobody can do that. However, he commits himself to keep working on the solutions together with clients, openly, as a real community. That's the attitude I like!
The product
I have to admit that I traveled to Montevideo without having a clear understanding of GeneXus. I have never worked with this tool: is it object-oriented or UML oriented? Is it MDD? Fortunately, I came back with a much clearer view of its approach.
GeneXus is based on the specification of conceptual data modeling and uses the assumption of unique names to such business concepts such as CustomerSurname or TotalInvoice. Behind the scenes, a (rule-based) Prolog engine obtains the final data model, the database to SQL. Once this definition has been made, GeneXus provides different DSLs to specify the business logic, workflow, user interfaces, etc. The fact that this specification does not depend on the database structure is a plus, meaning that it can be easily retargeted and, what's more, renormalized.
One of the most impressive features of GeneXus, which is something that you don't find in other modeling products, is the real out-of-the-box Schema Evolution: you can define your model, generate it, populate it and go live (deploy). Later on, you can change your model in such a way that it changes your data model and forces a reorganization of the database. In this scenario, when you regenerate your application, a set of DB scripts are also generated and applied to move your data to your new application. That's cool and difficult to achieve!
Of course, everything is abstracted from technology, making it easy to generate for different platforms such as Cobol, AS400, Java, C#, Ruby, code for the cloud (Azure), to name a few.
As commented by Artech staff, they need to improve the tool's scalability in order to manage large projects and introduce better and easier User Interface specification.
GeneXus isn't UML, it has no Class Diagram nor Sequence Diagram. You won't find XMI or MDA profiles either, because GeneXus doesn't need them. It's just a different approach, but it's real MDD; as real as its 20 years in the market.
Congratulations to the entire Artech team!
Keep up the good work, showing that code generation is the way to go in software development.
* Post: The Metalevel — Report on Genexus Meeting 2009