This is the mail archive of the
mailing list for the Java project.
Re: [kaffe] Java-Gnome: jni or cni
- From: Chris Gray <chris at kiffer dot eunet dot be>
- To: java-gnome-developer at lists dot sourceforge dot net, Mark Howard <mh at debian dot org>, java at gcc dot gnu dot org, debian-java at lists dot debian dot org, kaffe at kaffe dot org, sablevm-developer at lists dot sourceforge dot net
- Cc: java-gnome-developer at lists dot sourceforge dot net
- Date: Fri, 12 Mar 2004 01:14:43 +0100
- Subject: Re: [kaffe] Java-Gnome: jni or cni
- References: <20040311174441.GA26451@pathfinderii.chu.cam.ac.uk>
On Thursday 11 March 2004 18:44, Mark Howard wrote:
> Dear Java Developers,
> I am writing to you on behalf of the java-gnome project for advice
> regarding a major change we are currently considering. I apologise if
> this is off topic for this mailing list but we really need input and you
> are the most knowledgeable open source java developers; it may also
> help determine whether we will be using your projects in the future.
> Sorry for cross posting - we think members of each list are likely to
> have different opinions on this topic and want to hear them all.
> The big question is: should we switch to CNI?
> Java-Gnome is a set of libraries for creating GTK/GNOME based
> applications in java. It is different from SWT in that it aims to
> implement the entire gnome libraries so will be able to create
> applications with integrate fully with gnome. It is different from swing
> in that it is completely free and has a high quality graphical interface
> builder tool (glade).
> At the moment, java-gnome uses jni to communicate with the gtk/gnome
> libraries. This works well with good performance but makes the build
> process very difficult and also makes the task of application developers
> more difficult since they are trying to support many jvms.
I'm a bit puzzled by this statement. Almost all VMs support JNI, and the few
that don't (e.g. Jaos) cannot run C++ code in any shape or form (but Jaos can
run Oberon code with 0 overhead :->). So if you want to support many JVMs
then JNI is the way to go.
Of course if you want to restrict your code to running on only one Java
implementaion then this will in a sense make your life simpler. It will of
course also make life simpler for anyone planning to use a different
implementaion -- they don't need to take the time to evaluate your solution.
Frankly this sounds to me like the worse kind of embrace-and-extend; it will
result in the emergence of a set of "Java" programs which run only on certain
implementations of Java. Hm, hasn't that been tried before?
Some people inside Sun seem to think that open source Java is a Bad Idea,
because it risks fragmenting the language. Until today, I thought they were
just imagining things ...
Stay cool everyone,
Chris Gray email@example.com
+32 477 599 703