From: Daan L. <daa...@xs...> - 2003-10-28 16:15:35
|
Hi Per, > I have lately experimented with both wxhaskell and HToolkit. > I'm a bit confused, they seems very similiar in style and have common > implementors (Daan Leijen). History: At the beginning of 2003, I was disappointed with the current state of affairs regarding GUI's for Haskell. A most promising project was the HToolkit library by Krasimir Angelov. He started this project to make a portable successor of the objectIO library. He created a low-level C interface for programming GUI's. He implemented this interface for both Windows and GTK -- getting a somewhat portable way to program GUI's. HToolkit was a bit monolithic at that time and I separated out the low-level interface (Port) and designed a higher level interface (GIO). Although I was very enthousiastic to begin with, I slowly became aware of the drawbacks of this approach. In my opinion, it will be too hard to maintain such a library for multiple platforms -- slowly the task will grow bigger and bigger, and bugs just kept creeping up. Furthermore, I realized that it is probably also too much work to support the amount of features necessary for "real" applications. I got more and more confirmed in my doubts when I studied other portable GUI libraries -- almost all have died a slow and lingering death due to unsupported features, platforms, and bugs -- even rather nicely designed and technologically advanced libraries. So, in the end I concluded that designing, implementing, and *maintaining* such library will be too hard for a small community like that of Haskell, and I abandoned the project (although I still believe it is a nice and cleanly designed library) The right way of doing a portable library for Haskell, is to build on the work of others! So I used the wxWindows library as the basis to build a portable GUI library for Haskell. wxWindows is free, portable across many platforms (windows,macOSX,GTK,X11,...) and has a large and active user community (top 25 of sourceforge, over 1 million downloads). Furthermore, rather serious applications have been written in it, including the latest AOL communicator and Mojoworld. The good part is now that we don't have to do anything (well, almost:-) to run on different platforms -- that is all done by the wxWindows community. Furthermore, the interface is generated automatically, so it is easy to follow new versions and to maintain the library. And we are not the only ones to see these advantages, wxPython is higly popular and many other bindings are there: wxEiffel, wx.NET, wxJScript, wxLUA, etc. wxWindows is also fairly comprehensive -- this makes it easy to support new features: just over the weekend there is support for portable ODBC and the OpenGL canvas (will be included in the next release). It saves a *lot* of work when all the hard parts have already been done by others :-) There are also drawbacks: wxWindows is not as "clean" as I would have liked it to be, it written in C++, the library is rather large etc. But I don't think these drawbacks are serious enough in the light of the advantages. > I have also read that the haskell community has decided that > the "common GUI" project, which I suppose HToolkit is an > implementation of, is no longer officially supported as a project for obtaining > a standard GUI library for haskell, but that wxhaskell instead is the > preferred library. Opinion: This is a "sensitive" subject :-). I would say that the "common GUI" interface is not abandoned. It still makes sense to define a kind of standard medium level interface that is somewhat standardized. However, I believe that it is too hard at this moment to define such a thing -- besides technical challenges with regard to types, it is also unclear how the interfaces should look like. There is no well defined goal and I think that is because there are just not many real GUI programs written in Haskell (except maybe for Programmatica?) > What will be the practical implications of that wxhaskell is > officially supported by the haskell community and that HToolkit is not? Current: It is a rather unfortunate situation that in this small community there are now two libraries that try to do the same thing :-( I don't know what to do about this, and maybe we should just leave it as it is (although I would love to have Krasimir as a co-developer, he is an excellent programmer :-). I hope this answers some of your questions, and that it puts things into perspective, All the best, Daan Leijen. > Regards > Per > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: SF.net Giveback Program. > Does SourceForge.net help you be more productive? Does it > help you create better code? SHARE THE LOVE, and help us help > YOU! Click Here: http://sourceforge.net/donate/ > _______________________________________________ > wxhaskell-users mailing list > wxh...@li... > https://lists.sourceforge.net/lists/listinfo/wxhaskell-users > > > |