Modeling is the next generation of programming languages, you may say, well you are being a little bit dramatic here. So let me explain.
Using the conventional way ( e.g. Java, C# etc. ) to create applications is somewhat an art, it require creativity, a lot of experience and usually a lot of effort. The main reasons for that are clear, but I will just mention a few- An enterprise application requires you to design and develop your application in a way that it is maintainable, fulfill all the application standards such as accessibility, security, quality etc. all of these mean at the bottom-line, time and money.
So I suggest a different way, why not just model the application, no code required, all standards are already applied on all of your modeled application, and the bottom-line much less money and time, I’m not saying anything new here, but I would like to emphasize on the different aspects of a good modeling tool :
- A robust modeling language – the modeling language should be robust enough in order to express most of the requirements from an enterprise application. If it is too simple( such as configuration tools which allows you to define a very limited set of options and then create an application out of it) then it will cover only limited set of requirements and therefore will help only on a very specific cases. On the other hand the modeling language should not be too complex as it will make the modeling tool tedious and not user friendly, which will not fulfill my second requirement J.
- A simple modeling tool – modeling tool should be used by business experts and usually not by developers, so the modeling tool should be simple enough so the business expert will be able to focus on the business logic and not on technical/complex staff.
- UI extension points – as the modeling language will not cover all customer requirements, a major point here is to provide the ability to extent the UI offering of the modeling tool. By providing the UI extension points the customers can cover all of his specific requirements.
- Connectivity to various backend – the ability to consume services is a must, but in the enterprise world today companies have various sources of data ( Web services, Databases , R3 ). If you can consume different subsets of data you are able to create applications which displays and consolidate data from various data sources.
- LCM- one last and very important in the enterprise world is to enable customers to deliver the applications from development to production or to enable to work on the applications with multiple users.
Visual composer do just that. We still have some points that can be improved but in general Visual composer fulfill the above requirements, and therefore is the right solution for creating a fully fledged enterprise applications.
I will appreciate your comments and feedback, and of course, if you think on a concrete requirement that is missing in Visual Composer, please feel free to suggest an idea in Visual Composer Idea place.
In my next blog posts I will touch base with some of the points raised here.
Looking forward hearing from you.