[Sablevm-developer] Re: [kaffe] Java-Gnome: jni or cni
listas at lozano.eti.br
listas at lozano.eti.br
Fri Mar 12 02:23:14 PST 2004
> Anyone who uses the java-gnome libraries in a GUI-based Java
> application is risking tying that application into GNOME. By contrast,
> if they use Swing or SWT, they can easily port the application across a
> wide range of supported platforms.
Let me point that I can run popular GTK apps such as Gimp or Ethereal outside
Gnome, and even under Windows, MacOS and OS/2. There's no reason I shouldn't be
able to do this with JavaGnome. Just someone has to patch the bindings and
autoconf for these environments. :-)
GTK was born to be portable across different windowing systems and graphics
subsystems. So it should be as portable as Swing and SWT. The differente is on
current implementations, the priorities of each group of developers and who
supports each one (JavaGnome would be far more popular if a big company such as
IBM promoted it on his apps).
I also see a big value on the fact I can learn GTK for Java and use basically
the same Classes and API for Python, Perl or PHP. Swing and SWT won't give
that, and sometimes Java won't the the better tool.
The real portability you get depends on your goals and ability to enginner an
application. For instance, SWT supports OLE Controls. If you use this, your app
will run only under Windows. Eclipse itself uses that, and other native
features, that's the reason you download a plataform-linux and a
plataform-windows (else you would donwnload just swt-linux and swt-windows,
besides a common plataform, just like the commmon jdt). Why couldn't I create
an app that provides a Gnome panel applet module, or a vfs module, and don't
include them (or provide plataform-specific substitutes) for Windows?
> [There is a counter-argument that says that java-gnome will maximise
> integration with GNOME's look and feel, etc. My counter to that is that
> this is not the highest priority for most Java projects. For most,
> immediate portability or avoiding platform/vendor tie-in are equally, if
> not more important. Otherwise they'd probably be using .NET on a
> Windows machine ;-)]
Well, these prioriries may change shorter than expected. Many java apps today
include customized Swing lafs to look more like Windows XP, provide native
Windows installers (installshield and the like), create Windows desktop icons
and Start menu entries, configure file associations on Windows explorer, etc.
When Linux gains a significative market share on the desktop, vendors will want
the same level of "integraton" with the Gnome desktop, and JavaGnome will
becode sudenlly very usefull to them.
Even Sun is doing hard work to make Swing apps more like Windows native ones,
but is failing miserably with the gtk laf. :-( this will change if their
JavaDesltop System gets market share, because it is Gnome based.
There's no real, marketable app which is completely WORA. There are apps on
which you strive to maximize the portable code and minimize the
plataform-dependent code. JavaGnome is valid way to do this, an alternative to
Swing or SWT. And there are apps where you don't mind it runs only on a
specific plataform. Having standard, OSS ways to to that is better than having
just proprietary ones or limiting yourself to the OS systemcalls.
s, Fernando Lozano
More information about the kaffe