Thread: [Java-gnome-developer] Thank you - Great work
Brought to you by:
afcowie
From: Ben B. <lin...@bu...> - 2008-11-12 19:01:01
|
Hey guys, I just want to thank you for this great API to GTK. It feels entirely natural in Java, is very comfortable and very approachable. The names and APIs are as you'd think them up when you'd draw a widget set API in your mind, thus they are easy to find, too. They also *work* as expected (as least so far, I am still new). Also, the documentation is good. The API documentation for each class has a nice prosa introduction text, which is very helpful and saves most "tutorials". I also appreciate that it points out just the right level of footangles to be aware of. All in all a really great piece of work. When you talked about "quality" on your website, I was suspect, as that's most of the time just words, but you really deliver quality. You show an good example of what quality means in the context of an API. Sun should take a good example from you (*cough* Swing *cough*), and many in the open-source world, too. Such brightness and care is rare. Thank you again for this masterpiece. It's a joy to work with it. Ben |
From: Andrew C. <an...@op...> - 2008-11-13 06:28:19
|
On Wed, 2008-11-12 at 20:00 +0100, Ben Bucksch wrote: > I just want to thank you for this great API to GTK. Now that's just the sort of thing that really makes your day. People in the #java-gnome IRC channel were very happy this morning. > It feels entirely natural in Java, is very comfortable and very > approachable. That doesn't happen by accident. It is the result of the hard work of all the people who have bought into this project's goals [and who have put up with the resultant demanding requirements set by the project's maintainer :)]. It is to all who have contributed that credit is due. > The [bindings] also *work* as expected (as least so far, I am still new). Patience. I'm sure you'll find something to break. :) > Also, the documentation is good. The API documentation for each class > has a nice prose introduction text, which is very helpful and saves most > "tutorials". I also appreciate that it points out just the right level > of footangles to be aware of. All I can say to that is that the writing there is the result of experience - and usually, that experience has come as people like me have attempted to figure out just what, exactly, a given something in an underlying library actually does. That usually occurs as we're trying to _use_ something, and adding coverage that we hope will expose the thing that will do the trick. Along the way you quite often realize that the thing you're looking at doesn't actually do what you thought it did, or isn't for what you thought it was for. There's a lot of wisdom to be had there. Another source of knowledge are the questions and answers in places like gtk-list and gtk-app-devel-list; I for one see stuff there all the time that I didn't know about; I try to keep such messages around so that when if a day comes that I need to use something, I can benefit from the explanations there. It's stuff that is *not* in the underlying (GTK or whatever) API documentation, but is still very critical to using the library well. ++ So hey. As you experiment and learn, I encourage you to note places where a question you had in your mind *wasn't* answered as you were browsing the completion spaces or reading the JavaDoc popups in your IDE. If you think of something that needs improving based on *your* experiences, then by all means. Such contributions are as valuable as code. They *are* code. AfC Sydney |
From: Ben B. <lin...@bu...> - 2008-11-13 15:47:13
|
On 13.11.2008 07:28, Andrew Cowie wrote: > On Wed, 2008-11-12 at 20:00 +0100, Ben Bucksch wrote: > >> I just want to thank you for this great API to GTK. >> > > Now that's just the sort of thing that really makes your day. People in > the #java-gnome IRC channel were very happy this morning. > Great! :-) You guys deserve it. >> It feels entirely natural in Java, is very comfortable and very >> approachable. >> > > That doesn't happen by accident. It is the result of the hard work > As some scientist said: "Sorry for the long letter, but I had no time for a short one." The time you guys spend is saved (usually many times) by all the people who use the API. :-) It shows. > All I can say to that is that the writing there is the result of > experience [...] > That usually occurs as we're trying to _use_ something That's pretty obvious. Including the hair-tearing and head-banging. I liked the notes about the TreeSelection.Changed signal emission <http://java-gnome.sourceforge.net/4.0/doc/api/org/gnome/gtk/TreeSelection.Changed.html>, not just because of the funny language, but because it shows your fundamental attitude to a proper, clean API. > So hey. As you experiment and learn, I encourage you to note places > where a question you had in your mind *wasn't* answered as you were > OK, here's one: How do I make a deck? Basically a |Notebook| without tabs. I need it when I want to display two different kinds of UI, one at a time, in the same UI space, because they are mutually exclusive or the selection is triggered by something else, e.g. a tree node selection. For now, I implemented it myself, by adding and removing children from a HBox, and setting setSizeRequest(), calculated based on maxima of getRequisition() of the children. Ben |
From: Andrew C. <an...@op...> - 2008-11-16 06:48:54
|
On Thu, 2008-11-13 at 16:46 +0100, Ben Bucksch wrote: > How do I make a deck? Basically a |Notebook| without > tabs. I need it when I want to display two different kinds of UI, one at > a time, in the same UI space, because they are mutually exclusive or the > selection is triggered by something else, e.g. a tree node selection. > > For now, I implemented it myself, by adding and removing children from a > HBox, and setting setSizeRequest(), calculated based on maxima of > getRequisition() of the children. That's one way. Another way I've heard of is to add both Widgets to the parent container, and use hide() on one of them, toggling to the other "state" by show()ing the second and hide()ing the first one. A third way to do this would be to use a Notebook and call its setShowTabs() to turn off the display of tab controls. Interestingly, that method just turned up on 'mainline' while I was writing this email. :) AfC Sydney |