On the 0x3FC day of Apache Harmony Johnny Kewl wrote: > ----- Original Message ----- > From: "Egor Pasko" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Monday, March 03, 2008 10:12 AM > Subject: Re: JRE Lite > > > > On the 0x3FC day of Apache Harmony Johnny Kewl wrote: > >> ----- Original Message ----- > >> From: "Tim Ellison" <[EMAIL PROTECTED]> > >> To: <[email protected]> > >> Sent: Sunday, March 02, 2008 9:02 PM > >> Subject: Re: JRE Lite > >> > >> > >> > Your ideas sound quite reasonable to me. I bet you are surprised > >> > about how much code is run just to invoke main(String[]) in a Java > >> > program, but I see your idea. > >> > > >> > If you get it working we'd be delighted to create you a branch! > >> > >> Heres to hoping it pans out, I do realize that this burger may be > >> bigger than my bite ;) > >> Expect a lot of questions in the beginning, if it starts to work as a > >> rough prototype > >> I'll yell. > >> You would also have to consider carefully who sponsors the project, > >> what lic it > >> should have, and whether or not it should have a harmonious > >> sounding name. > >> As you know most OS projects are marketing statements with very little > >> unpaid community. > >> This one would have to be a real community driven effort, even at > >> ownership level.... I think. > >> ... worth thinking about I think ;) > >> I'm going to need all the help I can get... thanks > > > > OK. So, the project is to make a tiny-self-downloadable-almost-java? > > > > So, just to make sure, the TODO is like: > > > > * divide JSE in small packages > > > > * make an easily set-up server infrastructure for package hosting and > > mirroring (torrent?) > > > > * tweak classloader to download packages if they are not available on > > the system > > > > * make things work :) > > More or less yes... but I dont think it will be easy, possibly not > even doable. > > > I think size and speed tradeoffs, and the intelligence required will > make it really > interesting... if we get there a lot of fun.
How about a bit of somewhat easier stuff? shell> java-intaller install --all-deps swing (where, 'swing' is the package name) I.e. get basic JVM, then control which packages to install by hand. No pain. The only weird thing is that to deliver a Java app one must provide it with list of dependencies. But this is rather common and convenient in open source world. > Java currently is a pain to deliver... can we take that away, and why > hasnt anyone done > that yet.... is wots on my mind. > > or... you got a 50k application, but dont even bother trying to send > it via email, or contemplate > the user starting it froma browser.... because there is a big lump of > concrete attached to it. > Its like making a ferrari and towing a truck... more verbosity ;) > > > Sorry for my dummy question, I am just having major difficulties > > reading through your verbosity level ;) > > > >> > Regards, > >> > Tim > >> > > >> > Johnny Kewl wrote: > >> >> TIm... you right too much in one topic so split... > >> >> > >> >> You know when you discovering something, its not a science, its > >> >> exploration, and I havent even got > >> >> the dev env going yet so still very low on the learning > >> >> curve... but this is what I'm thinking.. > >> >> > >> >> The basic JRE engine must be completely plugable... dynamic loading > >> >> as you call it. > >> >> At a quick glance the really big components are things like the JIT > >> >> compiler, > >> >> The fonts, all the "base" classes and the Unicode... I think its a > >> >> unicode module. > >> >> > >> >> Now here is what I'm thinking... the JRE gets stripped right down... > >> >> So for example it looks for JIT but if it cant find it is doesnt > >> >> crash. > >> >> > >> >> Then instead of making users download... there is a Harmony site > >> >> and on this site, are all the fonts, all the classes... optional > >> >> UTF modules etc etc. > >> >> > >> >> The initial download is just a bootstrap... it can either be > >> >> downloaded or included with the software... > >> >> If it needs a Comic font and UTF module... it fetches it, just enuf > >> >> to get that application running. > >> >> So if the users runs a series of small applications they all very > >> >> quick installs, but the JRE is growing... > >> >> So by the time the user installs a heavy application, the JRE will > >> >> probably do it all. > >> >> > >> >> In this scheme there is also no concept of versioning... if a class > >> >> is loaded that needs a new JRE lite module > >> >> it will just happen.... the user is hassle free. > >> >> > >> >> So there is still a installation server somewhere.... but the user > >> >> doesnt even have to know about it. > >> >> That kind of dynamic loading means the JRE must fit together like a > >> >> jigsaw puzzle.. > >> >> > >> >> For example the first run of an application may run without JIT, > >> >> but the JRE's background loader starts to pull > >> >> it down... the next run will be fast.... > >> >> > >> >> The reason I asked about the interchangability is because if one > >> >> has a small engine that can get only what it has to... then that > >> >> gets very interesting. > >> >> For example, if a machine already has classpaths all over the > >> >> place.... and a JavaLite hits the machine.... it gets only what it > >> >> needs, ie it gets > >> >> a few core classes, maybe a few fonts, maybe its own multimedia > >> >> engine.... but it does not have to get anything else... it does not > >> >> have > >> >> to tell the users to setup xerces again... it see's wots on the > >> >> machine already and uses it... so theres the compatability > >> >> side... the creativity > >> >> side is that the Java application downloaded, may also be able to > >> >> suck down a native module, or custom class modules that do stuff > >> >> like play > >> >> Flash Video... now thats a JRE ;) > >> >> > >> >> So... when I get going I'm going to break Harmony into tini weenie > >> >> pieces.... ha ha. > >> >> In this model, one does not even care about classes.... its just > >> >> that engine that must be able to discover and use whats there, or > >> >> pull it from a installation server. > >> >> Apps have the choice of using there own JRE Lite... or the systems > >> >> JRE ;) but I think if that JRELite is small enuf... it will go out > >> >> with every application. > >> >> Installers will use that... for sure, it makes life very easy. > >> >> > >> >> ... so thats the idea... whether it will pan out, and the idea is > >> >> possible, I dont know... I cant see why not.... > >> >> > >> >> Some application will be unlucky... they internationalized the > >> >> developer has gone mad with XML, use JPA, JMX, JWhatever... and yes > >> >> that > >> >> apps JRE will have to build itself up to 10 megs before it will > >> >> run... but a game using JNI and doing its own drawing will probably > >> >> run on a 500k JRE > >> >> > >> >> Developers will very quickly learn what make the JRE take a big > >> >> hit.... I think thats a good thing, all the technology is there but > >> >> depending on what > >> >> system they targeting.... they will design accordingly, possibly > >> >> using property files instead of XML parsing... > >> >> > >> >> So... once I get going thats my hobby for the next 4 months ;) > >> >> If it works... you'll have to make another SVN fork;) > >> > > >> > >> > > > > -- > > Egor Pasko > > > > > > -- Egor Pasko
