Beemer (dr_tectonic) wrote,

Just got back from a short coding-break walk along the bikepath behind the lab. Saw a whole bunch of ladybugs on a plant. Also got a good look at the leetle-bebby prarie dogs in the adjacent open space. They are much smaller than the ones I saw earlier in the season that I thought were babies, so I guess those ones are adolescents. That means that prarie dogs either take more than a year to mature, or they have multiple litters of offspring each year. I have no idea which is true.

I'm making slower progress on my own, but it's happening. The game end sequence is much cleaner now, and I got the final debriefing window to hang out long enough to be read.

Still loathe java swing just as much as ever. I think the core concept of good UI design (and hence, good design period, for any product which is meant to be used by people, which is basically all of them) can be summed up as follows: whatever it is that people are going to do with your product most of the time, it should be good at that. If there's a common use, that should correspond to the default behavior. If there's an obvious way to interact with it, that should do something sensible. Don't punt on sensible defaults because they're more work -- that's just laziness. If you can't figure out what sensible defaults are, you have no business designing the product.

I don't think the developers of swing even had a concept of "default behavior"; they just have code that happens to function even when attributes are unset. Bad, bad, bad design, and utterly inexcusable, given that John Osterhout (designer of Tcl/Tk, which has very, very good defaults) was working at Sun at the time. I suspect that part of their mandate may have been "make sure it looks as little like Tk as possible, so we don't have to pay him any royalties".
  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded