Hi, all!
Actually, I wasn't advocating bundling Java with Inkscape, I was just clarifying a couple of points. There would be severe problems with supplying Java, but they are not license issues. We would do, is inherit a huge problem in the area of support for any software like that. Even now, we get bug reports from people who don't know how to use Perl or Python. Java would be huge.
Nicu Buculei wrote:
Bob Jamison wrote:
I don't see the problem here at all. Calling out to the Java VM is no harder than calling out to Perl or Python. In fact, Java's C API is actually a lot cleaner than those (especially that awful Perl crappy API).
I see a few problems:
- JVM is *not* free software and can't be packaged by 3-rd party
distributors;
Actually, yes it can. The -JDK- can't be bundled, but you don't want to do that anyway. The -JRE- is free to distribute. Originally, Sun's license required that end-users be presented their license to click-thru it, but even that requirement was dropped years ago.
- regarding the size, JVM is a bigger dependency compared with either
Perl and Python;
I agree. It would add 15 MB or so for the JRE.
- on a free desktop you have a bigger chance to already have both
Perl and Python already installed compared with JVM.
I agree with this, too. Such a shame.. If every distro had a good Java VM, imagine the potential for Net-empowerment.
An aside note: Some people have an irrational Java-phobia. More like a language racism. If it works, it works, whatever the paradigm. Any worthwhile programmer should use every available tool in the toolkit, and not limit himself to any single mode.
Depending of a non-free Java VM would impede the freedom of Inkscape as a whole - http://www.gnu.org/philosophy/java-trap.html
Actually, (again ;-) , you can call the VM without adding a dependency. Since JDK1.2, the preferred way of calling the VM from C using the Java Invocation API, is to dynamically (and explicitly) load the shared object via dlopen("libname") , or its Win32 equivalent, then using dlsym(lib, "JNI_CreateJavaVM") , or its Win32 equivalent, then calling that function to get a context and VM pointer. That way an application can pick and choose which VM it wants. That way, also, there is no link dependency. You might have noticed that OpenOffice can work with or without the VM. There is no "can't find shared library 'xxxx'" error message.
R. Stallman is my hero, but I disagree on this topic. This is an irrational religious obsession with him. -Using- the VM does not poison software.
But, no, I don't want to add Java as a dep either. But it -can- be called, and it would probably be good to have the capability to use it as an option.
What I -would- like to see is the ability to export an SVG file in XSL-FO format, to get high-quality printing. This would be an easy XML wrapper of the current SVG output.
Bob