[Xotcl] xotcllib?

Schofield, Bryan (GE Transportation) Bryan.Schofield at trans.ge.com
Tue Oct 19 17:10:28 CEST 2004

I've cut a bunch of the older email content out for brevity.

> -----Original Message-----
> From: Jeff Hobbs [mailto:jeffh at ActiveState.com]
> Sent: Monday, October 18, 2004 4:44 PM
> To: Schofield, Bryan (GE Transportation); xotcl at alice.wu-wien.ac.at
> Subject: RE: [Xotcl] xotcllib?
> While I don't want to discourage good coding exercises, I
> do want to encourage others to use code based on all the
> best practices.  We don't have a perfect megawidget
> framework to rely on yet, but hopefully you'll be willing
> to take part when we get around to it, or maybe work on
> yours until it is that system.  ;)
This actually started out as a coding exercise just to play with the new forwarding features of xotcl. I look forward to day that there is an "official" megawidget framework, but in the mean time, I do plan on enhancing mine to cover it's short comings.

> Hmmmm ... ok, you have created something more for users to
> define their own themes, whereas 'style' says "these are
> better overall alternate themes".  I must say that I
> personally encourage the latter.  It's a pity you couldn't
> make it to Tcl'2004 last week, because I had a tutorial
> and talk on these points.  I don't mean to pick on you, I
> just want to give my ideas and how they may affect your
> current efforts.
> The whole idea of themeing, which will be core in 8.5, is
> to enable a better look for Tk.  However, it is not
> intended for the user (in the common case) to change this
> theme.  The functionality is there merely for Tk to better
> adapt to current styles.  Thus, the 'style' code defines
> styles for users to just use, rather than providing a
> framework to create their own.

First, I don't take any of your comments personally. While I consider myself a good developer, I know that I'm not perfect and can be blinded my own intentions, motivations, and enthusiasm to create something new. Not to mention the fact that I know I don't know everything. I welcome your comments, as well as the comments of so many others.

Just clear up my intentions with xcentuate, it isn't really meant to be used for each application to define it's own look and feel. While it is very easy to do so, I'd hope that developers will respect the look and feel of the platform on which they will deploy. My main motivation was to improve how tk looks on my unix workstation. Currently, xcentuate only changes the theme on unix, by default it's a light grey theme which is suitable for brighter environments. It also provides a dark grey theme which works nicely in darker office settings. I think that xcentuate and 'style' share the same goal. Xcentuate, too, provides some "better alternate themes", it just goes one step further by making it very easy to define what the themes are. That makes it easy for corporate branding. For example, the system I work on is beige in color during normal operation. However, the same application can be launched in a training mode which is aqua in color. I can also have a "development" color mode to distinguish application instances that are in beta against those that running live. With xcentuate, the application look is simplified to:

  switch -- $mode {
    TRAINING { aquaLook apply }
    DEVELOP { devLook apply }
    default { normalLook apply }

> OK, I've dealt with this before.  There is nothing in the
> naming of that test that requires it be numbers, that is
> just convention.  It makes it easier for grouping and such,
> and is handy when searching through the test suite after
> failures.  In your example below:
> > file would be structured as follows:
> > 
> >     TestSuite foo \
> > 	-description "blah" \
> > 	-setup {set file [makeFile {} test]} \
> > 	-cleanup {removeFile test}
> >     foo test \
> > 	-description "test file existence"
> > 	-result 1 \
> > 	-script {file exists $file}
> What happens when you don't provide a description?  This
> should be a required field, as it is in tcltest, so why
> have it an option?  Otherwise, I see the structure you
> have chosen could make it easier to build tests.

By the default, the description is "No Description Available". So nothing happens if it is not provided. Much like the following:

  test foo-1.1 {} \
     -result 1 \
     -body { set x 1 }

Sure, tcltest makes it a required field, but it doesn't ensure there is anything meaningful in it. If you really think about, the description is optional in tcltest, too.

Now... having spent the time to write xout and the ui that goes with it, I've (begrudgingly) accepted the following:

 1. Tcl does not need another another a testing framework. Choice is not always beneficial, and in this case I think it would hurt tcl overall. It's hard enough to get people to write tests; no point in muddying up the water with something else.
 2. Having to name my tests (example-1.1) isn't that much more work. Calling "cleanupTests" isn't a big deal either, so I'll just do it and quit whining.
 3. My efforts would have been better spent adding a ui to tcltest. I think I'll do that.
 4. It took suprisingly little time to convert my xout test files to tcltest files.


> I like the UI you added to it.

Thanks, I think I'll redo it to work with tcltest.

> No problem, and I don't want to sound negative.  I'm just
> trying to assist constructively.  As I've told Gustaf and
> Uwe before, xotcl (or some close variant) could be the OO
> for the core, if it provided 100% itcl compatability (for
> the many many folks that rely on itcl).
> Jeff

You don't sound negative. 
Thanks, I appreciate your opinion, Jeff.

Didn't Gustaf whip up something that was itcl compatible, at least to some degree? And does it need to be 100% itcl or 100% itcl/itk?

-- bryan

More information about the Xotcl mailing list