> Hi Valery, > > > On Saturday 27 October 2001 22:55, Valeri Fine wrote: > > > > There is no such problem like supporting "Windows". There is the problem > > of providing the cross platform applications. > > Try to replace the words "Windows", "MicroSoft" and "crossplatform " above > > with > > "Linux" , "UNIX" "Windows" > > "MAC", "Apple" "Linux" > > "VMS" , "Digital" "UNIX" > > etc. Have a fun. > The main issue with cross-platform GUIs is between Win32 and X11 > (and MacOS <10), not between UNIX, VMS, Linux, Digital, etc. > No it is NOT main issue. The main issue (or main difference) : X11: We always deal with TWO separate processes, namely X-server and X-client. The former is implemented as X-terminal the later is our end-user application WIN32: There is no separate X-server process. However we still need "Server" and "Client". With WIn32 both things are to be parts of our end-user application and it is that user (ROOT team in our case) to provide this two parts. I'd like to mention one can not say which approach X11 or Win32 is worse / better. Each has its own pro and cons. The problem is risen when we try to create "cross GUI" application. and forget "X-server" part. > > > > For exampple it was proved many time the Windows application like ROOT must > > be multi-threaded. > > Of course such constrain doesn't make the application desing more simple > > and cheap. > > > > From the Fons's reply I understood the coming Win32 version of ROOT will be > > single-thread. > > Does this mean the author of the new Win32 layer thinks one may neglect the > > multi-thread issue ? > > > You misunderstood. Bertrand's implementation runs very well in a single thread > but without connection to the DOS box. For the DOS box he needs to use > a thread. The issue is that Win32 does not have a function like POSIX's > select() which allows one to monitor activity on different input streams. > Therefore one needs at least a thread to monitor the DOS box for input. I could not misunderstand his implementation since I did not see it at all. But "my theory" and "experience" say one needs TWO threads at least. On another hand during ROOT2001 workshop Bertrand did ask me how one can implement thing with the only thread and I did tell him how. I wonder if he has implemented that approach. It did work well for MS DOS version of CERNLIB. However to make it work I had to provide my own implementation of the low lever C run-time stdio subroutines. It was great for MS DOS and HIGZ and years ago. I don't think any Windows 2000 user will be happy with such MS DOS solution. (It may still work somehow, no doubt) > > What about ROOT GUI layer vs Qt (or another toolkit). Event though I did > > rate the Qt v.3 as > > a great toolkit that can be used by ROOT project that was said about > > version 3. THat was released > > three weeks ago. Of course 7 years ago when the current ROOT GUI (TVirtualX > > class) was designed > > there was nothing like Qt v.3 around. > Valery, since Qt claims to be cross platform how do you think they hide the > thread issue? Or, even with Qt, does there remain the DOS box communication > thread issue? Maybe you could find some time to investigate that. This would > be of great help. Yes the problem still remain even with Qt. They did no hide it. They have no reason to care about that. Qt is a toolkit. From this point view there is no difference between Qt or direct Win32 (or MFC if you want ) implementation. The multithread design is still the end-user responsibility (i.e. it is ROOT team responsibility) This is to say there is no problem to replace WIN32 API with Qt API. However this solves NO existent problem of Windows version of ROOT. Since they are not coming from API they are coming from "X-client-like " ROOT design. I'd like to say since the problem came from "multithread rather from GUI API this problem not the Windows version problem. The UNIX ROOT user must face the same problem just they will want more / less sophisticated multithread applications. However Qt may help to solve another problem. It is the problem of the single code for both platforms. There is another solution, namely create Xlib base ROOT for Windows. That's possible and had been discussed too. Cheers, Valeri
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:05 MET