Hi, a lot of things crammed into your one mail, so just a few comments
in-lined below...
Johnny Kewl wrote:
Thanks for letting me join the group...
Everyone is welcome!
My job is not in IT, although thats my first love, and second, and
> third... actually where is my wife?
Gee, I stopped using C++ at VC6 and I cant believe how rusty I am, I
> hardly recognise it, there was a time when I used to whiz
> around in WTL... unbelievable.
While there are a number of 'professional' software engineers here, it's
always good to hear from a broad community -- especially when people are
willing to challenge the status quo.
I'm also struggling to get the thing compiled... the C code... I'm
running on XP, running the ant from eclipse and have VS 2005/2008
installed, it just wont get through that C code. It will say... dont
know what sprintf is so I'll jam in <stdlib> then it will say POSIX
_itoa violation... blah blah..
I'm just messing too much with the code for my liking... its already
Harmony "something else". Does anyone here actually work on the MS
platform? Am I wasting my time?
I know its because MS does its own thing in headers... also get
_WIN_NT_VER conflicts... the libs are trying to got to XP and the
code is declaring NT4 ... so not looking good.
Anyway if you know where I'm going wrong... yell ;)
We maintain buildable code on Microsoft Windows. The prereqs are here
[1]. Precisely what compiler are you using?
==============
Before I go any further, the thing I'm interested in is seeing if a
Java Lite is possible... my gutt tells me that JVM's in general bulk
up too quickly.
1) How small does one think one can make a JRE... say for example
there was just a JOPtionPane that said "Hello Harmony"... When I look
at this and other JRE's... it seems Java bulks up very quickly, I'm
guessing that just to run one line of java, the JRE would already be
sitting at 5 megs... do you also think that is about right?
You talking runtime (RAM) footprint or on disk install size?
If you think about C++... it more or less it follows a "more
application == more engine" rule. JRE's naturally are carrying the
"OS", but they dont seem to be able to do that. The actual native
components are not that big... but they still seem to have to bulk up
a lot to run "one line" of Java code.
With Java you have the option of using the whole set of APIs in the
runtime. I agree that simple "hello world" programs would be paying for
a lot of APIs they don't use in the runtime, so your analogy of an OS is
good.
To me thats a great pity... because if a JRE did not have to "bulk
up"... ie it followed a "more application = more engine" pattern,
then Java itself would be deliverable... and that would make that JRE
very special. 50k application + 500k JRE 100k application + 700k JRE
1000k application + 1500k JRE ... if you see what I'm getting at..
Again, are you thinking of small runtime footprint to start with,
expanding as you use more areas of functionality (i.e. dynamic loading),
or smaller disk footprint, like the Java kernel idea of delivering
additional components to the machine from (say) a webserver as you use
more areas of functionality?
As soon as its 50k application + 15 meg JRE.... we now asking users
to "please" install the JRE separately, and we just hope they can
find the site and know the difference between JDK J2SE and all the
rest... a MS user will probably be in the .Net site totally confused
between J# and J2SE ;) Yes there are installers but imagine 550k...
and not 15 megs...
So... thats what I'm wondering about and thats why I'm here...
Cool. With the strong modular structure in Harmony you can easily
imagine providing additional functionality 'on-demand'. To provide the
Java platform experience requires a reasonable overhead in start-up cost
and 'base' functionality.
2) Then I got another question... how interchangable are the actual
JRE's.... if I swapped out java.exe for java.with a feather... ie no
class changes... how far would that get?
Our goal is that you can do that and things would continue to work just
fine. We are implementing to the Java specification.
So hopefully I havnt disturbed you too much... and I got so many
questions... I'm holding myself back here ;) But as a user I just
wanted to say something... compatability is very important, but after
that, creativity takes precedence over standardisation... ie as a
user if theres an engine that runs my code, and does other cool
things... I dont care where it comes from.
Innovation and experimentation is great, and the Apache license allows
you to get creative with your ideas. I'm sure people will comment on
your ideas via the list here.
So what do you think, possible... or the science just says no? Java
Lite cant be. Java lite is not possible in the current
architecture... ???
It sure is possible, but wouldn't be 'Java' (i.e. to the specification).
You would have to design the alternative and decide what you were
prepared to give up.
Regards,
Tim