I couldn't remember what's exact the time, when I begin learning to do comparison between different but similar things. there is obvious no exception for the computer programming. Especially for GUI programming.

Since GUI Road

I do remember the sence that when I first met the GUI programming. It laid a deep impression on my mind. Since then, you recognized that you can do such beautiful and professional(seems like) windows interface yourself. Just like many modern normal college students, the materials where you first encountered programming are basically textbook. As a consideration of your low-level computer skills, Unix-like OS just makes most people tedious and be kept away naturally. One of most important member in Windows eco-systems, MFC become my first station in GUI programing travel. Before that, I were very curious about the principal of how can people can implement such complicated windows system with just simple syntax of program languages. How just all that things works! So, in summar of 2009, for the sake of Image CUP of NUPT, I begin a nice travel with about one month time. How perfect that time! Last year, I gave another attempt about GUI in java awt and Swing framework, the whole process is surface and short. Except that I was tried by all these framework and their logic relations and event sequence. Recently, It's maybe partly caused by the great intrest about Python language, it's nice syntax and board applications programming fields appeals me a lot. So when encount the same situation of indexing and searching modualr implementation, I just truned around to another new pypass. I decided to try something new, wxPython GUI framework. To be honestly, It's not an easy way, which makes me rethink the natural things about the GUI programming themselves, not just the personnal detailed modular or funtions. A good story just starts...

App or Window or Document

Noted here. In my superficial experience, there are two main basic components in common GUI programing. the App and Window, the former is responsible for the entrance of whole programming, the invoke of windows event loops. In other words, you can regard it as working background. And the latter is window, namely graphic user interface, which show applications' appearances. it interact with user, recieve user response and respond results back to the user through the GUI demonstration too. If we dig it deeper, we can find the key roler laid in the window contains the various of window Widgets (which layout frame or container) and Event Bind and handlers. Equipped with above two weapons, you could finish some basic and simple tasks, whcih rely on some not so complicated dialogs or widgets to show or interact with users, even in the age of user experience first. However, if you want the whole object storage or realtime user interaction operation, such as text/word processor, games applications, You just hit the skin. Document can be viewed as a store or serialize object, which is in charge of the data management. It also manage partly the communication between the data and methods.

For Complicated Logic Relation in GUI

I found it just very difficult to grasp the whole skeleton of the GUI programming. Put simply, it means that when you sit at your computer, open your favorite editor(Vim for example) or other popular IDE environment, you just become confused. Where should I start from? There exists a lot of tool-tricy logic sequeces in the whole programming procedure.