Raise your level of abstraction
just joined MDSN, looks like a lot of useful reading available.
Computer science major, 20 years ago got into developing quite a few data-driven Applications with similar scenario, like:
one or more Enterprise data structures defined (branch, department,..., employee) and/or (warehouse, block,..., part) and/or (lists of processes, remunerations, customers, etc) which are were kept in the Database tables. There are CRUD operations defined on those related tables and there were some domain-specific operations too. Plus various reports. Pretty common and usual stuff.
I started with some generalization attempts: a business object consists of data container(a DB table), view(s) and form(s) and relations to other objects. It all could be expressed in plain text. CRUD operations could be executed in precompiled code - no actual generation here. UI of an object was interpreted by pre-written code again - no code generation here either. Relations one-to-many and many-to-many were again interpreted by run-time. Only custom logic has to be manually coded. So that how it started. I could elaborate if needed.
That approach evolved into something I cannot categorize and I'm looking for help and opinions here.
Today the highest level of abstraction is the same: a business object is a table, plus UI(s), plus CRUD operations, plus objects relations, plus API to implement custom Data processing. An application is a set of such objects and it is most likely might be expressed in UML or such. Although it is not.
There was some custom language before, today an App definition is hidden behind objects' Visual Properties Manager(s). An App definition contained in the Relational DB as set of text-based objects' definitions. There is a server side code waiting for client code to connect. That is how it works.
The client supplies credentials and if valid, receives back from the server an "entry" object's definition from the Database - usually the Main Menu (a table). The client interprets that definition and creates UI. Human user make a gesture (keyboard or mouse, touch interface is not supported yet) and activates one of that Menu's links. Another object loaded from the server and so on. Menus are immutable objects - they are easy. When mutable table loaded from the server, both a client(grids, views, forms) and a server(sessions, locks) support CRUD and custom operations (e.g. delete every odd record in the table) in ACID fashion. All clients are synchronized real-time - means all the content changes instantly propagated to all relevant sessions. There is a gesture language to visually define parameters of complex requests. SQL gets generated and executed by the server part and results passed to relevant client/sessions. There is Java API (architecture is language agnostic) which used on loaded objects on the client side only (!) by mimicking human gestures: "load object"/"edit object" and so on. The server is never restarted.
The client part contains Properties Manager code, which allows to define new objects and redefine new ones without leaving a live Application. Team development welcome.
There are client side processors which allows to link a table cell to Images, PDFs, some HTML. More processors - more data types could be supported. At last there are pure UI objects - with no data containers defined. They work pretty much like Java Canvas. After being loaded they call user code, which has access to other objects in the Database. That allows to create UIs beyond grids and forms - up to multiplayer games - with custom programming sure.
That thingy works in production environment for 3 years now. It is extremely productive and helpful. But I'm struggling to classify it. What is it? RAD RIA tool? It does generates some SQL, it allows live Apps design like Web CMSs, it is based on generalization of an SQL table... I'm more experimenting practitioner then academician.
Please help me define what that Datalator thing is. And what place could it hope to find in the computing world. Would be much obliged for reviews and opinions. Sorry for hasty prepared story.
I'm no good with web sites, forgive me. Please comment.
@Andriy and everybody:
>Mendix and OutSystems have evolved significantly in the recent years
Just visited the OutSystems site again... The screencast about building a webapp in 4 minutes at http://www.outsystems.com/agile-platform/rapid-application-developm... is pretty much the same a it was in 2009. The same lonely table, the same hand written code to wrap some logic around, the same easy to sell AJAX platform (I'd expect at least "lightboxes" to visualize forms above grids...) First attempts to go real time.. Sad.
Time to conclude this discussion: not surprisingly I do not understand ALL what You, the Researches, long term commited to Model-Driven world perseption, is saying here. That is understandable. The surprising part is - feels like I cannot deliver my message and spark more interest. Feels like we much apart. Either the subject is complex or the message.
Please do not get me wrong, I really appreciate the feedback. I'm thirsty for such a feedback - you are the highest authority on the code generation. I'm challenging the foundation of your beliefs and I expect to be annighilated on the spot :-). And I'm getting some pretty mild and kind of distracted responce:
>Andriy: "OutSystems ...". No it is at the same spot where it was in 2009, with all their resources. Given the same requirements I can beat OutSystems on the field of agile RIAs. Did it in 2009 - you guys did not watch my videos.html -and do it today (may be driving a truck gives me more time to think before I act :-)).
> Andreas - the most generous contributor to this discussion - what are you saying, sir: " I'm convinced we will work like that one day". I propose to try to work like that today, not one day. (I carefully red you papers dated by 1995)
Gentlemen, I assume I just cannot deliver a message. I'm OK with that, will be here reading, learning, watching the Big Ones. I'm not a troll, not angry, do not feel any disrespect. Dissapointed a bit - maybe, that is natural for all inventors :-). The life is pretty short... not even money and comfort worth it ... challenges to overcome?... understanding how the world works and how we can express it in computer programs? (my first favorite is AI).
Anyways, I promise to keep you posted on further develpments. With nice short messages :-). Will gladly accept more comments (or beating), if any... not trying to say the last word here. I told already I appreciate your work, opinions and the forum. I say it again.
Sorry, Alex, I just edited my last comment and posted it then see you new replay (you know, I'm writing very very slowly)
> (I carefully red you papers dated by 1995)
I feel charmed, Alex ;-) Slightly outdated, that stuff.... on the other hand side...
> " I'm convinced we will work like that one day". I propose to try to work like that today, not one day.
Actually, I do agree that it would be possible to do so, even today. Technology is available (just combine state of the art game engines, net infrastructure, VR technology & formats, abstract UI technology plus modern modelling and language technology). Actually, back then in 95 I thought it would take only a few years for that to become available (VRML was popular these days, remember CosmoPlayer?)
Reality taught me, that there is neither money nor a market, nor fellow visionaries, not even amongst developers - so, what chance do you have without all that?
Nevertheless, to some degree, my company is still working on a part of the problem - the "underlying modelling infrastructure", sort of. Which has proven to be incredibly more challenging than expected. I mean, in 1990 there was a widespread belief that simple, hardcoded M2T alone would revolutionise software development. How ridiculously naive, in retrospective.
If anoher "3D wave" will show up again, we're prepared. At present I simply do not have resources to spend on it. I'd love to do so - any VC reading here? ;-)
I am (can I say "we are"?) interested your point of views. We need different views around here. By all means keep posting :)
By briefly watching your "ebay in 20 minutes" video, I conclude that your Datalator is a highly targeted modeler and code generator (model executor perhaps?). That's why you say, I and believe, that you can beat Outsystems and others. You have efficiency at the expense of less flexibility. And that's fine if that's your target.
So, I would classify your system in the same category as OutSystems and Mendix: an "executable model" system.
You could like to have a look at "A Roadmap of Research for Enterprise Applications" :-) if you go on the development a 'build for change on demand' style one for the comprehensive applications for enterprises/business/management, perhaps all the aspects or the key points on the roadmap should also be considered by you, I think, and this is a great opportunity and huge challenge.
Just had a look at the Mendix and OutSystems, which seem another case for my MDS, and as well as, some example on your blog.
it seems I'm not very understanding some your opinion... would you admit that my ideas, the existence of the model driven mechanism and model driven system, and the distinction from the mainstream MDE?
Have a nice day! for everyone.
TY, sorry, I do not understand your question. Can you explain?
Sorry, It was not very clear in my expression.
(reading and writing in English still a hard job to me :-D)
Sorry, did not replay Yesterday. Was very busy. Some interesting questions asked and statements stated when I was away :-) .
Looks like the conversation is built around two poles
a) the "What" - what is done, what is not done yet, how it compares and what would be interesting/challenging/desirable to develop. Plus serving terminology, plus stated/agreed destination point - what we are not happy about in programming and how to change the "messy" traditional ways.
b) the "How" - lets assume for a moment the question "what" is answered and some theory elaborated and agreed upon - how to implement it, to bring it to reality : "any VC reading here?"
Those are complex subjects a) and b).
I'd like to ask a "how" question first. I'm a nobody's man. I'am in the situation well described by Andreas: "... neither money nor a market, nor fellow visionaries, not even amongst developers..." and I'm not even working for a software company. No name, nothing. And I'm droppy into the Forum from gleaming lobby - codegeneration.net that is. And I see a nice sponsors list (money?). And I think that some of you guys might be working for those innovation supporting companies. And I'm sure you might be better equipped and funded and encouraged to make those Innovations. But I sense some frustration here and dreaded immortal VC questions, which are not supposed to be. Me - I can express frustration - but you, Ladies(well, we haven't heard from Ladies yet) and Gentlemen? May be those Happy Ones are keep busy programming future and have no time for chatting?
Please explain me what's going on - why are you people have no finished VRML-programming-worlds yet? That's the puzzle, really. What are your bosses thinking about? So many events on the codegeneration, so many contacts, so much networking available? for many of you it's a lifetime activity - and it feels like no support available... a brick wall?
Started to write on my situation - "how to create advance code generation software in desintegrating USSR" - it is getting too long :-) And sad... Here in Canada it took me a few dramatic years to start funding myself - but again that is another story.
Please show me what forces are playing around code generation (companies, personalities, ...). Why it feels like the need to fork "true code generation" from existing CD.net?
I'm OK to share my experiments' results and my beliefs-concerns. I'm ready to contribute. But first - why are you not happy?
Best of day to you all, Alex
I think it's simply, two hypes over two decades (CASE, MDA) without success are too much to bear for business. Here in the forum you find the enthusiasts and visionaries who didn't give up, even if it takes so long, and who meanwhile have to make a living from working on pieces of the puzzle. But that's nothing to do with happiness - it's just we all underestimated CG in the beginning. Please note the smiley next to my VC question - as a child I was sure I can build a perpetuum mobile, too ;-) ;-) (note: 2 smileys now, I don't want to be discouraging, seriously).
Please share your results, beliefs and concerns. Specifically, I'd be interested in your opinion on the complexity of the "modelling chain", why you think that something like "scaling" is enough (be it 3D or not). My project experience told me it is not, but I might be wrong.
Plus: I'm serious with my comment on "being prepared for 3D". Our tool uses an UI abstraction layer (the virtual user interface), which is capable of connecting to arbitrary frontends, HTML5, extjs, sct/rcp at present, but we in fact have built prototypes for plain ASCII terminal, old WAP, and VRML. But without customer, partner, investor or enthusiatic spare time developer we cannot work on these prototypes.
"two hypes over two decades (CASE, MDA) without success are too much to bear for business. Here in the forum you find the enthusiasts and visionaries who didn't give up, even if it takes so long, and who meanwhile have to make a living from working on pieces of the puzzle."
I absolutely agree, Andreas!
said takes the old road on new shoes ;-)
"two decades"...are there a few decades in my life?
I think, it needs more passion, more innovation, more care about new ideas, ...