[Libreoffice] Rationale for replacing Java with anything but c++ (was Re: web based libre office)

Michael Meeks michael.meeks at novell.com
Fri Jan 28 02:17:25 PST 2011

Hi Thorsten,

On Fri, 2011-01-28 at 10:48 +0100, Thorsten Guenther wrote:
> Am 27.01.2011 11:48, schrieb Michael Meeks:
> >> I wouldn't mind spear heading an effort to do a python port
> >> of LO in regards to going web based. Cant you integrate the
> >> C++ code we have with python?
> > 	If you want to do a python port of some things; I guess working on some
> > Java -> Python conversion would be great for some of the built-in
> > extensions etc.
> could you please give me an idea why it would be useful to replace a
> language alien to the core with another alien ?

	Well python is not alien, since we ship a tiny (~1.7Mb) python run-time
with every copy of LibreOffice we ship; ie. it is more built-in than
Java which is (sadly) not ubiquitous, and 10x larger.

	Incidentally, the side effect of not having Java around, or worse
having a broken / mis-detected Java on an install is a slew of annoying
dialogs when you start LibreOffice from the various extensions that want
it; eg. five in a row of the form:

	"Can I annoy you right now ?! [yes!]"

	;-) a terrible user experience. I'd like to loose that: indeed working
on that would help reduce the need to prune Java stuff. The other option
of shipping a vast chunk of cruft we don't need to bundle, and use
almost none of is less attractive. Furthermore, Java has this unpleasant
GC that complicates debugging by hooking various signals, and has in the
past caused all manner of problems: eg. leaving invalid guard pages
around on the stack causing apparently un-related crashes later, and so
on. ie. I would really like to see Java relegated to a nice-but-optional
thing that in practise is not on the hot path for most people.

> I guessed the replacement of Java is to eliminate integration issues.

	Primarily; true. However, Java's startup performance is mythically
terrible; eg. porting from Java -> C++ for the flat ODF export turned a
four seconds export (for a simple file, the first time) down to sub one
second. This is not the case for our embedded python I think.

> If that's not the case... whats the problem with Java? Just the
> "is a appropriate JRE / JDK installed" issue?. Sorry, perhaps
> a noob question

	Not at all - a good question :-) I appreciate if your mission is to
drive Java deployment everywhere then perhaps the answer is not one that
everyone will like. Perhaps the best thing to do for Java is to try to
work on the C++ code paths, and error notification code for cases where
it is not present, particularly on Windows.

	All the best,


 michael.meeks at novell.com  <><, Pseudo Engineer, itinerant idiot

More information about the LibreOffice mailing list