
Axel wrote:
That is why I proposed to craft an Object I/O interface which enables programmers to write GUI application with a native look and feel albeit with a reduced functionality
I am also in favor of a medium level GUI interface. If I gave another impression, that is my fault.
Yes, but in my point of view this should be a medium level API like Object I/O, a bunch of IO function is doomed to be defined by the underlying backends. This certainly holds true for the Ports library.
The (Clean) ObjectIO library actually consists of two layers, an (A) and (L) part. Given their success, this proves that is certainly possible to define a decent (L) layer, on top of which a medium level API is built. Actually, Port is closely modelled after the low-level object IO interface. The "low-level" is not so low-level as you may think. It is rather the core medium-level functionality without any utility functions or abstractions. Again, I feel that we actually agree on all this topics. I am not a native speaker, so it may be that I am not always using the right words for expressing myself. Sorry for that, but I am doing my best :-)
You cannot define a common abstraction without looking at all the implementations you have to do. I think we want three backends: Win32, Gtk and Aqua. So we need to look at all of them before we define the interface.
You are right. I am not advocating that Port is the "right thing" or that it is already mature. I do not have a personal prejudice or something towards Port just because I have worked on it. (I am currently trying to finish my thesis, so I won't be working too much on it for now :-). Port is certainly not the greatest interface or something. If someone defines or proposes something better or more mature, I am all in favor of adapting that. The reason for mentioning Port, is because I believe that it may be a good starting point towards a concrete low-level API. Maybe we can use it directly, maybe the GUI task force can use it to propose a standard GUI API.
I think Wolfgang will have a hard time making a sensible port of Ports to Aqua.
If Wolfgang continues his quest, I am sure that he will find many deficiencies and hopefully Port will change accordingly. This is the whole point off course: Port is still small and flexible, and can easily change when we learn from our mistakes. Maybe more knowledgeable people about UI's will come up with a much better interface than Port provides -- and that would be great! Maybe others have the knowledge or man-power to define a medium level GUI directly for multiple platforms. However, till that moment, we might be better off trying to work with resources that we have, and use an evolutionary approach to building a portable GUI library. All the best, Daan.
Axel.