Re: Why use Java in Mathematica?
- To: mathgroup at smc.vnet.net
- Subject: [mg78336] Re: [mg78191] Why use Java in Mathematica?
- From: "厉正吉" <zhengji.li at gmail.com>
- Date: Thu, 28 Jun 2007 06:26:51 -0400 (EDT)
- References: <firstname.lastname@example.org>
On 6/28/07, Todd Gayley <tgayley at wolfram.com> wrote: > At 06:04 AM 6/25/2007, =?GB2312?B?wPfV/byq?= wrote: > > I'm glad I didn't jump right in on this thread because many of the > things I wanted to say were already said well by others. > > Java is used for a number of things in Mathematica. Here is a > reasonably complete list: > > - all kinds of Internet access, including Import from URLs and > the WebServices package > - database access (the DatabaseLink application) > - the new "data collections" feature (e.g., CountryData, ElementData, etc.) > - quite a few Import/Export formats > - some Date-related kernel functionality > - some Sound-related kernel functionality > - the PacletManager, a new component in version 6 > - bundled add-ons like GUIKit and EquationTrekker > - commercial and freeware add-ons like the Digital Image > Processing package and the SuperWidgetPackage > - user-written J/Link code, of which there is a huge amount > > The basic reason why Java is used for these things is, of course, > because it lets us bring some great new features into Mathematica > faster and more robustly than by any other means. > > David Bailey already addressed the memory issue, and I have made > remarks about it in other MathGroup threads. The Java runtime does > use a significant amount of memory, although the amount goes up and > down depending on the whims of the garbage collector. The actual > footprint of live Java objects is usually less than the memory usage > reported by the operating system. The PacletManager itself does not > use a large amount of RAM. > > > Todd Gayley > Wolfram Research > > I am so glad that Mr. Todd gave so much information on this thread. I know most of "what Java is used for" as listed by Todd, except for - some Date-related kernel functionality Is date handling difficult to implement? I do not think so. And it's OK to "re-invent this little wheel". ("Date" is not a typo of "Data", is it?) Since graphics has been improved greatly and Mathematica is able to built complex GUI, does we still need Java GUIKit? For JRE's memory issure, I think that: 1. It really uses lots of memory, no matter physical or virtual, while memory is still one of the most precious resouces of computers; 2. If Java is not active most of time and almost in the virtual memory, then why we load it at all? I suggest that there should be an option to let users chooose to load PacletManager at start up or not. As far as I know, JavaLINK, NetLINK is just based on the self-reflection feature of Java and .Net. I donot know if someone uses Borland's VCL here, but it has some self-reflection feature, too, and it's native library, not on a virtual machine. I am trying to create a VclLINK in off hours. It would be quite great if I can reach some progress.