I need some input
- From: Luis Garcia Alanis <al584493 mail mty itesm mx>
- To: gnome-devel-list gnome org
- Cc: lgarcia linux-dev mty itesm mx
- Subject: I need some input
- Date: Thu, 11 Nov 1999 20:10:59 -0600
I have been noticeing, that there are serius problems, defining how to program a gnome-app. Wheather, to folow the OOP model, or the component apreach, o wheather to do it the Imperative (C, Pascal) way, or the Model View Controler aproach.
And, I have made my mistakes, on developing on a single pure way, and I have had my "Its Time To Re Write Everything" moments. because I cant get pure clean reusable code. The problem is that all of thoes methos of programming are pure, and GNOME is not pure, because nothing is can be Perfect, and nothing can be pure, and there is no pure languaje I have ever seen (not even LISP, because it has imperative stuff like begin, end). So I would like to start a thread of how a gnome app should be writen. So that all this input can be documented, and new people can have a solid starting point.
What can be acheaved from this, is the GNOME standar for developing apps. How to develop widgets, how to develop components, and how to develop apps. Of course if someone does not like it, it can ignore it. But I think is important, to define the responsabilities of each of the key elements of a gnome app, and its foundating structure.
1) Widgets: IMHO, they are dumm, they can contain data, or other widgets, but they do not represent any prossesm they are objects joined together, but they are dumm, and do not know what to do by themsellf.
2) Component: This is like a widget, but inteligent, it has a core proces, and knows how to handle itself, its an object, but a more complex one including a model, and a View. We could vizualise the componets as a thread, like another app that has a main() and a main loop. It can survive by itself, and not like a widget, that requires to be iterated by a gtk_main().
3) Apps: an OO aproach is taken, we have core proces objects, like an statistic process object, or a comm protocol object, and we have an interface made with let's say glade (XML), it includes widgets, and components, the widgets are there, but they are useless, the components, are there, but they are just there, with no purpose at all. So then we have a controller object, that is the only not reusable part of the program, and it serves to make a diference from this app, and another using the same objects (like widgets, components, and core process objects). This controller, has the instance, and references to instance of all the backend core objects, and has the reference to the interface oject's it needs to extract or add information it has methods to be called by the interface, and has the reference to the widgets of the interface that can contain valuable data to use.
This aproach can make the interface apart of the app, and the core preceses of the app reusable for other apps. This is my Idea, and if you all help complete this ideas, and find my mistakes, we can work out a spec file for then create a GNOME Developer Studio, based on the same document. This is so that a good devel IDE can be created, and maybe accelerate much of the template like work that can be done automatically.
Thanks for the time.
] [Thread Prev