Active Topics

 


Reply
Thread Tools
Posts: 189 | Thanked: 121 times | Joined on Oct 2009
#41
Originally Posted by fms View Post
Well, C/C++ running on ARM is called C/C++. C/C++ running on x86 is still called C/C++. C/C++ running on 6502 is still C/C++. C/C++ without STDIO library is still called C/C++. C/C++ without STRING library is still C/C++. And so forth.

Why exactly is Java any different, aside from the bogus argument that "Sun defines it this way"?
Java is what Sun defines it to be. I think it's pretty funny to say "Oh only Sun defines it that way" because what you're saying is you're making up your own definition for what Java is and using that. You can certainly say Android is a lot like Java but one area where it's not at all like Java is runtime performance, since that's the topic under discussion it's important to highlight the distinction.

If I took C++ sourcecode, compiled it to Java bytecode and automatically rewrote the interface calls to be java platform calls then nobody would say that was C++. In particular nobody would be so bloody minded as to run a performance test on that setup and say "Wow the performance of C++ sure does suck doesn't it?".

The simple fact is Android is not Java.
 
Posts: 113 | Thanked: 30 times | Joined on Oct 2009
#42
Originally Posted by Rushmore View Post
Ironically, the G1's KB is better than Droids. N900 appears to have both the same key alignment and lack of top row clearance that Droid has.
Never understood any review that said the Droid's keyboard was better than the G1s. Shallow flat keys v raised keys, a no brainer really! The Droid's 'chin' is smaller, but the stupid D-Pag position is like having two chins on a G1.

Originally Posted by sharper View Post
Android applications are written in the Java language syntax yes but they don't use the Java platform or run as Java on the phone.

Google also makes a toolkit that lets you write javascript applications as Java. That's not "Java" either, that's a Java framework that lets you write javascript/ecmascript.
Android just uses a different JVM, it is a Java derivative. You can use some standard Java libraries. I would say it is Java, but it is like comparing J2SE to J2ME.

I didn't know the JVM lacked JIT, I would've thought it would really speed up Android.

Not sure if I hate Dalvik or J2ME more! J2ME is like using Java 1.4, no Generics, no Collections, no foreach loops, etc. Whilst I am forced to use crummy Eclipse for Dalvik So I am glad to be leaving the platform!

Last edited by 406NotAcceptable; 2009-11-21 at 19:38.
 
Posts: 189 | Thanked: 121 times | Joined on Oct 2009
#43
Originally Posted by 406NotAcceptable View Post
Android just uses a different JVM, it is a Java derivative. You can use some standard Java libraries. I would say it is Java, but it is like comparing J2SE to J2ME.
The differences between J2ME and J2SE are the platform libraries and the language features supported by the JVMs. Android doesn't use the platform library at all, uses its own non-standard VM and uses non-standard bytecode.

The Android VM won't run Java code and the Java VM won't run Android code.
 
Posts: 1,418 | Thanked: 1,541 times | Joined on Feb 2008
#44
Originally Posted by sharper View Post
Java is what Sun defines it to be.
Ok. So, you have no valid technical argument here, just a legal one, provided to you by Sun?

You can certainly say Android is a lot like Java but one area where it's not at all like Java is runtime performance, since that's the topic under discussion it's important to highlight the distinction.
You may find it news that a lot of JVMs use interpretation rather than JIT. For example, Sun's own KVM (used in MIDP1/MIDP2 reference implementations and in many cheap cellphones) is an interpreter. I have no idea what makes you think that Java is limited to JITs. This is not even in Sun's definition of Java, AFAIK.

If I took C++ sourcecode, compiled it to Java bytecode and automatically rewrote the interface calls to be java platform calls then nobody would say that was C++.
It would still be C++ though. In fact, Microsoft does just that with "managed C++" inside Visual Studio .NET. And yes, the performance would suck, but it does not make it any less C++.
 
Posts: 1,255 | Thanked: 393 times | Joined on Oct 2009 @ US
#45
Originally Posted by 406NotAcceptable View Post
Never understood any review that said the Droid's keyboard was better than the G1s. Shallow flat keys v raised keys, a no brainer really! The Droid's 'chin' is smaller, but the stupid D-Pag position is like having two chins on a G1.



Android just uses a different JVM, it is a Java derivative. You can use some standard Java libraries. I would say it is Java, but it is like comparing J2SE to J2ME.

I didn't know the JVM lacked JIT, I would've thought it would really speed up Android.

Not sure if I hate Dalvik or J2ME more! J2ME is like using Java 1.4, no Generics, no Collections, no foreach loops, etc. Whilst I am forced to use crummy Eclipse for Dalvik So I am glad to be leaving the platform!
More playable at least for me. The current alignment makes going from left to right awkward unless you map the keys next to each other and then diagonals are unintuitive and up/down too, since you either are lined up with left or right. Even a standard KB has a slight stagger. Seems both Droid and N900 waste space that could have been a better KB. Droid's was a rush job (two blank keys and poor d-pad are a clue to this) and I know that Nokia thought it would be more ergonomic. For typing- yes, but not for games.

G1 has a better (IMO) key orientation for emulators and more space on the top row. Still we are talking reservoir dogs here, since the G1 keyboard is not that good either-just a tad better for games. Everything is relative.

Last edited by Rushmore; 2009-11-21 at 21:05. Reason: added up/down
 
Posts: 189 | Thanked: 121 times | Joined on Oct 2009
#46
Originally Posted by fms View Post
Ok. So, you have no valid technical argument here, just a legal one, provided to you by Sun?
I've outlined extensively the technical argument for why Android is not Java, What is "Java" and what is "not Java" is defined by Sun. This not a "legal" argument but a "what words mean" argument. You want to pretend you can simply decide what is and is not Java based on your own reasoning without reference to how the word is used by everyone else. When something is "Java" it means the three things I outlined above. Android is missing two of those.

You've also ignored the other example I gave. If a toolkit takes Java source code and produces ecmascript/javascript from it does that mean ecmascript/javascript is now "Java" too? Of course not.

have no idea what makes you think that Java is limited to JITs
I have clearly stated Java is not limited to JITs just that it's an extremely important factor in the performance comparison. Number people have been saying "Java is slow" based on their experience with Android.

It would still be C++ though. In fact, Microsoft does just that with "managed C++" inside Visual Studio .NET. And yes, the performance would suck, but it does not make it any less C++.
You source code would be C++ syntax nothing more. Your compiled code in that example is the .NET platform. Considering the limitations placed upon managed C++ code in .NET it's not "really" C++ but there are fewer restrictions on what can be called C++ than Java.
 
Posts: 1,418 | Thanked: 1,541 times | Joined on Feb 2008
#47
Originally Posted by sharper View Post
What is "Java" and what is "not Java" is defined by Sun.
If Sun lawyers would like to think that, it is no problem to the rest of us. Yet, any language that uses Java syntax and semantics, not adding or removing anything, is effectively Java.

If a toolkit takes Java source code and produces ecmascript/javascript from it does that mean ecmascript/javascript is now "Java" too? Of course not.
Well, then the toolkit you are describing can be called a "Java to JavaScript translator". Other such translators exist. For example, there is a well known Fortran to C translator (F2C). Also, early C++ compilers were simply translating C++ code into C, for later compilation with C compiler.

I have clearly stated Java is not limited to JITs just that it's an extremely important factor in the performance comparison. Number people have been saying "Java is slow" based on their experience with Android.
Java is slow even outside Android, but let us return to what you have said peviously:

You can certainly say Android is a lot like Java but one area where it's not at all like Java is runtime performance
In other words, are you claiming that any JVM (including all the interpreting JVMs) that is not fast enough is "not Java"? And how fast is "enough"?

You source code would be C++ syntax nothing more. Your compiled code in that example is the .NET platform.
My source code is in C++. It makes absolutely no difference what syntax the compiled code is in: ARM, x86, 6502, CLR, Java bytecode, Dalvik bytecode, C, or JavaScript.
 
Posts: 2,014 | Thanked: 1,581 times | Joined on Sep 2009
#48
Originally Posted by Rushmore View Post
Bratag made a great camera app for the G1 that made the camera usable. Droid users could sure use you because the camera app SUCKS. I wonder if it really is a software issue or really hardware (crappy camera components).

He can tell us the overhead horrors of Android. Bratag, please take a deeeep breath before explaining and stay away from the whiskey (Android probably drove him to drink)
I would love to make one for the droid - just as soon as I figure out all the camera parameters motorola for some reason decided to rename from standard and also figure out why when they call the hardware take picture function they decided to close the goddamn camera device - forcing me to reaquire it every mfing shot.

Honestly Android is on a slippery slope which will be paved with every manufacturer doing their own goddamn thing.

I wont even get into why my app doesnt work on the HTC Hero, they apparently decided that noone would want to generate a view in code and add it to their main layout so they just didint bother to implement code in the OS to handle that situation - sure it gave them a small (and perhaps faster) layout handler - but of course completely fubared my app and dozens of others that like to add objects to the view programatically.
__________________
Class .. : Power Poster, Potential Coder
Humor .. : [*********] Alignment: Chaotic Evil
Patience : [***-------] Weapon(s): +2 Logic Mace
Agro ... : |*****-----] Relic(s) : G1, N900

 
Posts: 2,014 | Thanked: 1,581 times | Joined on Sep 2009
#49
If Sun lawyers would like to think that, it is no problem to the rest of us. Yet, any language that uses Java syntax and semantics, not adding or removing anything, is effectively Java.
Ok I feel I have to step in here. That statement is patently bollocks. The syntax and semantics of a language do not denote it "being" that language - the interpreter of that syntax and semantics are what define that. It is entirely possible you could write an interpreter for the Java syntax etc that in no way produced the same output as the Java interpreter. By the same token you could adapt the Java interpreter to handle a non Java syntax.

While I agree that the syntax etc of a language play a role in defining it - they do not maketh the language in the whole.

Finally - To legally call something Java compliant you do have to get sign off from Sun. Anything else is technically not Java compliant and thus not "really" Java.
__________________
Class .. : Power Poster, Potential Coder
Humor .. : [*********] Alignment: Chaotic Evil
Patience : [***-------] Weapon(s): +2 Logic Mace
Agro ... : |*****-----] Relic(s) : G1, N900

 
Posts: 189 | Thanked: 121 times | Joined on Oct 2009
#50
Originally Posted by fms View Post
My source code is in C++. It makes absolutely no difference what syntax the compiled code is in: ARM, x86, 6502, CLR, Java bytecode, Dalvik bytecode, C, or JavaScript.
With Java it does because Java is a platform in addition to being a language. That's the aspect you're simultaneous ignoring and dismissing as a "legal" argument.

Considering we're talking about runtime performance and the runtime aspect is the area that Android most differs from Java it's wholly inappropriate to make comparisons on that basis.

Now I have no particular desire to crap up this thread further. I was making a small clarification for a poster who was referencing Java performance metrics in relation to Android. If you want to continue calling Android Java go ahead but you'll be continually misunderstood in what you're saying.

Edit: Thank you Bratag I think you outlined it all much more succinctly than I was able to. Sometimes I'm confused why discussions like this are even necessary, I generally assume people are just not aware of certain information and they just need to be pointed to it, when they actually start to disagree with established fact it all becomes a bit surreal.

Last edited by sharper; 2009-11-21 at 21:52.
 
Reply


 
Forum Jump


All times are GMT. The time now is 07:57.