classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: SWING at OJE


From: Andrew Selkirk
Subject: RE: SWING at OJE
Date: Mon, 5 Feb 2001 12:28:16 -0500

Howdy!

>===== Original Message From "Rolf W. Rasmussen" <address@hidden> =====
>I've also be working a bit on a clean-room Swing. I've got some basic
>functionality working: JComponent, JLabel, JButton, and
>javax.swing.border. (and L&F delegates for these components)
>
>I've also been trying to implement the javax.swing.text package. I must
>say, working on Swing has been trying. I've often been cursing at the lack
>of proper documentation and wondering how something like Swing can ever
>become a standard.

Man, you've got that right.  Documentation is terrible.  I've spent
quite a bit of time researching SWING on the internet to figure it
out.  I've managed to find quite a bit.  I'm a java professional.  For
me, this project (and all others at OJE) is about learning about my
favourite platform inside out and backwards.  OJE is my contribution
to share what I've learned.  One of my goals is to have detailed
documentation of the entire project so that developer's have a place
to go to better understand the code and the Java platform.

>What is the legal status of stubs generated in this way? Is it possible to
>claim to be clean-room, if we extract information using reflection or any
>other automated process that uses the Sun product as a data source?
>
>I've often thought about the amounts of information that can be extracted
>by automated probing of classes using reflection, but I've shyed away from
>it because I didn't want my work to become tainted in any way. Have my
>worries been unfounded?

You've hit the nail on the head.  I have given it a lot of thought to
that myself from the beginning of OJE.  You are right that that the 
completely safe route is to only refer to documentation.  My position 
is based on the following issues:
 - java is an environment for programs to run.  This is the same for
   the WINE project and the Sony-Connectix case (apply all the same
   arguments for these projects).  For example, for WINE, you
   create programs that you run under Windows to gather information.
   I've done just that.
 - reflection is a feature of java to do exactly what I'm using it
   for.  Find out information about a class.  Can Sun limit what I
   can do with this information?  All I've learned is the api of
   the class.  I haven't decompiled bytecode (although there are
   fair use issues there as well)
 - sun makes a big deal that java is an open api compared to other OS's

Although I'm not a lawyer, these seem to support the position
adequately.

>I had actually half way given up on the idea of creating an accurate
>reimplementation of Swing. I was discouraged after realizing how poorly
>documented significant portions of Swing was.
>
>Another concern was that Swing reimplements a lot that is better handled at
>using low-level libraries. Consider text components. These should support
>I18N, Bidi, complex scripts, shaping, input methods, etc. These things are
>best handled by a low-level library such as Pango. And don't get me started
>on the evils of JDesktopPane and JInternalFrame.
>
>The worst problem with Swing is that it appears like a work in progress
>where the line between public API and private implementation is muddled.
>Actually, I think Sun is digging themselves a hole, since I can't see how
>Swing can be improved without breaking existing applications.
>
>OK, I'm done ranting...

I think many of us feel what you just adequately said.  But with all
that, I'm one that still yearns for a free Java 2 alternative.  For me,
it's *very* important to support Sun's standard API even if it is a
moving target.  But once we have a complete implementation, we can
start experimenting and optimizing freely with a free code base to
work from.

>If you'd like, I can give you the code I have (LGPL), and give you a
>helping hand. However, I don't really have much time to spare lately.

That's awesome!  Every piece helps.

Andrew...
address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]