Dalvik - Google's tweaked, non-standard JVM for Android!!!!

by Hari K. Gottipati

Google's Android software for Open Handset Alliance raises eyebrows of every Java developer because of its non-standards. Instead of supporting the Sun's open source efforts on Java, Google went in a different direction and came up with its own JVM named Dalvik which executes Java programs on Android phones. It is neither Java SE, nor Java ME. It is Google's in house version based on some of Java SE packages, apache commons, httpclient, junit and their own user interface instead of standard AWT, Swing. It also has android.* packages for Telephony APIs, power management and SMS. (List of Androids packages). In a way its similar to the GWT which uses Java as its development language but does not support the full JDK.

The byte code execution is also different. Instead of executing the .class files, Dalvik VM executes the .dex files which are optimized for minimal memory footprint. The dx tool(part of Android SDK) transforms .class files into .dex files.

We have enough problems with Java mobile development already. Not all phones support all the same Java standards, so there is no guarantee that the same software will run on multiple devices, as the "write once, run anywhere" Java tagline promises. Now Android is going to create more problems than solving. With this, programmers will have a new breed of Java to develop mobile applications, those cannot be ported to any device except Android powered phones. We already have enough versions(standards) of Java, why do we need another one?. I don't think any Java developer is interested in developing the applications in non-standard version, unless you want to win the 10 million dollar prize? It sounds like Google is trying to bribe the Java developers to adopt this non-standard Java with 10 million dollar prize. Well, may be its another Google's don't be evil policy -:)

Google tweaked the JVM to improve the performance of applications for the Open Handset Alliance phones. In fact, for the same tactics, Sun sued Microsoft a while ago. Knowing this, how Google managed to get the license from Sun to tweak the JVM? In fact, they didn't - according to MIT research scientist Stefano Mazzocchi:

But Android’s programs are written in Java, using Java-oriented IDEs (it also comes with an Eclipse plugin)... it just doesn’tcompile the java code into java bytecode but (ops, Sun didn’t see this one coming) into Dalvik bytecode.
So, Android uses the syntax of the Java platform and the java SE class library but not the Java bytecode or the Java virtual machine to execute it on the phone (and, note, Android’s implementation of the Java SE class library is, indeed, Apache Harmony’s!)
The trick is that Google doesn’t claim that Android is a Java platform, although it can run some programs written with the Java language and against some derived version of the Java class library. Sun could prevent this if they had a patent on the standard class library, but they don’t and, even if they did, I strongly doubt it would be enforceable since Android doesn’t claim to be compatible (and in fact, could very well claim that their subset/superset is an innovation on the existing patent and challenge Sun’s position).


Wow! what a smart approach! I am wondering what the Sun's reaction is going to be!!!! As a Java developer, I don't want to develop the applications that only run on Android even if they give 10 million dollar prize. If I did that, it would be encouraging such evil practices of creating non-standard Java.

Why Google is not following the open standards(Java is open source)? Why they are tweaking the standards? What happened to Google's "Don't be evil" policy?

What is your take on this?

60 Comments

peter royal
2007-11-13 14:13:38
why does everything that's written in java need to "run everywhere", can't we just treat it like other languages that sometimes only run in certain execution environments?
ivar
2007-11-13 14:43:10
When you say 'standard' java, you mean the java blessed by Sun. What if the number of Android handsets out there exceeds the number of java desktops.. By 'fixing' crippled J2ME and completely bypassing the JCP, Google is making a run at defining a defacto standard. In the case of mobile, I wish them luck.
Mkj
2007-11-13 15:18:23
Sun is bloating Java with debatable functionalities, my opinion is that this will more and more force other companies to divert from the standard. Java needs to become slimmer, its road to emulate the ADA language is not a good one. Google wants to attract Java developers to build a commercial ecosystem around Android, they are not very interested on pleasing Sun which, by the way, has never been able to extract much money out of Java. The winning standard will be the one people actually use.
AkitaOnRails
2007-11-13 15:20:41
The answer is pretty obvious: JME is lame and crippled. It is totally uncapable of bringing a level of user experience and quality like Objective C apps for the iPhones, for instance. This is literally apples vs oranges (rotten oranges). Google would have to struggle for months and spend and awful amount of money on bureaucracy alone to pass everything they want through the JCP (another proof that design by committee is the worst practice ever).


So, why launch a good platform and sport it with crippled support? Google has the resources and the guts to steer their own community. So, both users and developers will want a brand new Android based device and they will not care about old crippled JME phones. So, big win, Google will own the next gen platform. So, who cares if they deviated from the 'standards' if they become 'the' standard.


Of course, it is too early to say, we have to wait until the first commercial units hit the market some months from now. And another thing: that's why they made an 'Alliance' with everyone else. They are pushing their standard and deprecating the old crippled one.


Maybe it sounds a bit like 90's Microsoft. Time will tell. Right about now, I don't see a different path they could choose. I think this is the right move. Java under Sun's control is not evolving fast enough. Apple works because there is no committee: Apple does what Steve says, period. Every great project (commercial or open source) HAS to have a benevolent dictator. Linux has Linus, Rails has DHH, Mono has Miguel. Who is the Java champion? Old Gosling? C'mon ...

Hari K Gottipati
2007-11-13 15:26:34
What if the number of Android handsets out there exceeds the number of java desktops.

If that happens, thats fine. But do you think all the mobile device manufacturers are going to ditch their software and use Android? Even Open Handset Alliance partners are not going to do that, they may start with one or two devices. Don't forget that 72% of the smart phones are equipped with Symbian OS and Symbian is not part of the Oepn Handset Alliance. As a developer I want to develop a app that runs on most of the devices, not the one or two.
Do you think Google's new defacto standard is going to overtake the J2ME?
Vance Dubberly
2007-11-13 15:32:21
I said it a million times. GPL Java, and you'll fork it.


But it woudn't suprise me in the least if Google goes throught JCP to canonize some of the mods. Granted not much to be done for going to a different byte code, that'll be interesting.

Karsten Silz
2007-11-13 16:06:06
I think Google did the right thing - they created a domain-specific language for building mobile apps, not unlike what Sun tries to do with Java FX (except for the different VM) for building "rich client apps". If Android is "non-standard Java", so is Java FX. Again, the only difference is the VMs the byte code runs on. Android programs are only supposed to run on the OHA, so they don't need to be compatible with the outside world - except for that using Java, the language, makes it easier for developers to learn.


Google wants to have rich, fast applications on the Android platform, so they need to be as close as possible to the metal (the hardware). Jave ME is a joke for that, and Java SE gives you limited access to the underlying hardware. And running multiple Java programs in parallel on the Java SE VM loads multiple copies of all runtime library - that is major issue for Java on the desktop (not being addressed anytime soon) and a killer on memory-restricted devices. Following Java SE would tie you to the release schedule of Java SE and force you to implement stuff that you don't need (web service APIs, all the legacy libraries). Why buy a cow when all you want is a glass of milk or two?


Now from what I heard, there's the option of running Java ME through a third-party add-on on Android, so you can still write "universal Java" there for OHA handsets that support ME. But Java ME will mostly look pathetic next to Android programs. And don't kid yourself - if you want to write non-trivial Java ME, you still need to test pretty much on every handset you want to run your app (graphic access, sound, access to local hardware such as GPS), "write once, run everywhere" has always been wrong for Java ME.

ivar
2007-11-13 16:58:19
re: mobile marketshare - In the comments Hari points out that Symbian holds 72% of the current market.. Not to discount them entirely, but in the medium term (2 year+) I don't know how relevant present marketshare statistics will be. Many people worldwide have mobile phones as their primary computing device, and an open playing field will appeal to those wishing more self determination on their *computers*. Symbian had better provide some solid, serious innovation or they will get crushed between highend (Apple) and lowend (Android) handsets.. if the Android handset reaches critical mass it could be a serious competitor to the OLPC.
simon k
2007-11-13 18:51:38
Sun have shown they have no understanding of the desktop - so why should we trust they understand the mobile space. Personally i would prefer it if Google created their own language - inspired by Ruby/Python/JavaFx/Lua which targeted the darvik vm and bytecodes. Cut out Java entirely. Read the android docs - it requires Java in a non Java way ie dont create objects, use mutable strings. Google - create a language which is orthogonal to the vm you have created!!!
Muchacho
2007-11-13 19:38:26
Mobile manufactures adapt the kvm(J2ME) to their hardware and maybe sometime they have to modify the VM?, I'm correct?, if not thats why J2ME sucks on the mobile devices because they dont stress to the max the hardware. But with Android they are optimizing very well the VM to stress the hardware to the max. So the only thing I care as a Java developer is in Andriod I can programming with Java language(Syntax) thats enough for me I dont care if the bytecodes are not standard with java sun just the language so I dont need to relearn a new programming language.
Casper
2007-11-13 19:55:10
I for one welcome Google's proven past of KISS and pragmatism, something that has always lacked in Sun's vision of Java - designed by committee, verbose to get something done in and with a gigantic bureaucracy holding back innovation (look where .NET is going compared to Java).
Terry Laurenzo
2007-11-13 20:59:42
It's about time someone broke ranks. I wish them luck.


BTW - It is hardly evil to break ranks with a standard (especially a self-appointed one). It is usually a sign of innovation.

Markus Kohler
2007-11-14 00:15:19
Hi,
I think it's a smart move by Google.
The mantra of Java write once run everywhere really doesn't work on a phone. Swing just will not work on this type of device.


A phone has to have a completely different use model.
If you take a closer look at the Android framework, you will find that Google has thought about this and provides (at a first glance) some easy to use solutions.


I guess they started this project before Java became open source and I guess their VM is very well tuned for this kind of devices.
They could also support languages other than Java.


Regards,
Markus

Marc Logemann
2007-11-14 00:54:53
My take on this? My take is that your article shows that you never developed for devices apart from PCs right? Google did what made sense technically: Forget everything happened with MIDP/CLDC and roll out your own java based phone JDK. Your statement: "I don’t want to develop the applications that only run on Android" shows that you have some bigger knowledge problems with regard to the java ecosystem. On how many devices apart from handsets run MIDP applications?
ben
2007-11-14 02:08:51
Licensing costs, royalties.


Did you ever even for a second consider that?
While Mr Schwartz tries to turn the story upside down and praise Google for being so smart to use Java (which they didn't, they only used a syntactically equivalent language to Java) he knows that he's wrong and he probably knows that his marketing post about it isn't gonna change anything about it. And being deluded enough to write that Netbeans is going to be the tool to use to develop apps for it... he couldn't have possibly read the android page to a fuller extent.


Google is about freedom of intellectual property.
They don't use java mobile because mobile phone producers have to pay a hefty fee to use J2ME on their phones. They use their own version of it for flexibility (eventhough OSGi could've handled the multitasking part) and license the SDK under ASL2. They use eclipse as IDE because of superior licensing and technology.


It's about market advantages, not about "technological purity".
Ask Sun Microsystems why they limit the use of java mobile. (If you know their financial situation a bit better you probably won't bother to ask.)

Simon Hibbs
2007-11-14 02:39:49
There's nothing evil about releasing a product that competes with mobile Java. If the incompatible changes in Android offer insufficient advantages to be worthwhile then mobile Java will win because it already has market share and developers. If Android's changes do make a significant improvement, enough to establish a viable niche in the mobile market, then it will have proved it's worth.


MS' manipulation of Java was evil because they claimed compatibility that wasn't there. Google is making no such bogus claims and doesn't appear to be trying to deceive anyone. The portability of Java apps isn't an end in itself, it's not a religious dogma, it's merely a convenience for developers but if Android offers enough counterbalancing advantages then maybe it really is offering a net gain?

Karsten Silz
2007-11-14 04:43:23
One thing I really didn't spell out enough: Dalvik is optimized to run in multiple instances - probably by sharing classes and resources among Dalvik VM instances. Java ME / SE can't do that, and it's required to run multiple applications on the device at once.


Some of that could be done with OSGI, but I guess that Google had their reasons for not using it. In general, we should cut them some slack - arguably, Google has more smart people working then any place else in IT land right now. So they wrote their own HTTP server to quicker deliver search results, but they enhanced MySQL for the database; I guess they don't re-invent the wheel unless they have to.

rd
2007-11-14 05:04:43
The last argument for superiority of Java is dead. So all the Java developers can get of their high horse. It is the API stupid. between Sun's Java and Google, there is very little sharing. When all the GUI API is completely different then how can you guys even be happy. How funny that last week you thought Google was going to save you guys and that Steve Jobs was pure evil to force you to learn Cocoa and Objective-C.


And as far as Google's effort to introduce sharing of classes across VMs is concerned, Apple was the first to do it. and gave the code back to Sun. Now if only they filed some patents on it but probably didn't.

Muchacho
2007-11-14 07:22:51
Damn rd you always trolling around OnJava with your Mac-fanboyism. If you love macs and objective-c please go somewhere else but dont come anymore to this forums to troll and make lame as sush statements your are saying.


Don't feed the troll guys.

Muchacho
2007-11-14 07:27:58
rd just one question, Why you hate so much Java?, Did you work before with it or did you did some work with ejb2 to hate to its roots?
rd
2007-11-14 08:18:06
Muchacho,


not that you deserve an explanation. But once WebObjects was in Objective-C.
Apple rewrote in Java. but the java dweebs like you objected that it wasn't
compatible with J2EE and other such crap. So now the situation has turned
on the Java people. Your desperation shows when you carry the water for Google.
Obviously you don't know anything of this history or any other.
Yet you call me troll for simply bring this history to light.
calling you guys bunch of hypocrites.
See who is troll now. If you want a name calling contest. You can probably
win because you don't have any facts on your side.

Muchacho
2007-11-14 08:40:36
hmm I see, well you really took the apple kool-aid mate. Why I use Java because is a tool not a religion and with it I earn my money but if tomorrow Java goes away I will search another tool that lets me to get done the job could be python,ruby,lisp,c++ or even objective-c, I like objective-c but right now is at a niche, I'm open to anything but not like you that takes the things as a religion.
Hari K Gottipati
2007-11-14 11:00:36
@Marc Logemann -On how many devices apart from handsets run MIDP applications?
I am talking about the handsets only. As I mentioned in my previous comments, majority of the devices equipped with J2ME. May be one day, Andrioid will take over, if Andriod mesmerizes the people the way iPhone did. 72% of the smart phones are running on Symbian OS and it supports J2ME. So developing J2ME app will reach the majority of the phones. Whenever we go to the clients with some cool mobile application, the first question that they ask "How many devices can run your app?". As I mentioned, even with J2ME we had lot of issues porting the app to different phones. In this case, we don't need to re-code, just tweak it to the particular phone. But with Andriod, we need to develop the different app. Lot of people in the comments mentioned that Google is introducing the new standard. But My point is compare the number of phones with different operating systems with J2ME vs one OS with new standard.... if that one OS rules like a Symbian OS, thats OK.
As I developer my goal is to target the majority of the phones with the same code.... Coming to my experience, I have total 8 years of experience in developing mobile applications which includes location based apps, digital media apps, mobile banking, mobile alerts, SMS/MMS based apps etc. In fact at the moment, I am busy developing the PIM application using JSR-75 for J2ME phones.


Nick Brown
2007-11-14 11:32:15
Java's strength comes from its being a standard. Its performance is nearly universally horrible, its syntax is awkward and verbose (especially compared to languages like Python and Ruby), and its constantly getting stuck by its requirement to be backwards compatible with previous releases (for example, look at how they had to implement generics). So by forking the Java standard, Google has essentially inherited the language's weaknesses and missed out on its most important strength. I don't know whether or not Java ME is adequate as a platform (though from what I've heard, it isn't), but I don't see the point of this. Maybe if they had just included Dalvik as a bridge for Java developers onto the Andriod platform, but it seems it is designed to be the primary language for Android applications.


This is especially surprising as I had always heard Google was a big supporter of Python. I believe Guido works for them and supposedly a lot of their apps use Python. So why not use Python (or even something like Ruby as the primary application language for Android?

Muchacho
2007-11-14 18:43:06
Nick I agree with you, I love Python, They should use Python for the application development as the OLPC. They created a new virtual machine and they did many optimizations they could apply it to Python but they choose Java syntax but Andriod and dalvik vm is not Java standard. I guess they choose Java syntax beacuse millions of developers this days use Java in someway for development.


I would liked to see the dalvik vm for Python so also I could develop server and desktop apps with Python with a high perfomce vm jitted and I will throw away Java from the window and not depend anymore of SUN.


Beacuse even Sun released Java as open source they still have the control of Java as Microsoft does with C# and .Net, C# is ecma ISO but Microsoft have the last word, But Python or Ruby are really true free and without a comitte.


If someday we can see a true high performance VM for Python or Ruby I will switch for sure. Or adapt my self with the stack as C++/Python and code the bottle necks in C++ and use Python for the high level stuff.

Mac
2007-11-15 00:55:25
Reading some comments, it comes to my mind how others (need names?) were hardly blamed in the past for creating their own standards instead of evolving the existing ones ...


hypocrisy? lack of objectivity? is everything comming from Google good by default?

JD Evora
2007-11-15 11:18:23
>Dalvik is optimized to run in multiple instances - probably by
>sharing classes and resources among Dalvik VM instances.
>Java ME / SE can't do that, and it's required to run multiple
>applications on the device at once.
I know that SE can't, but when the MVM was released they said that the staring point was Java ME's virtual machine that had it already implemented
haoguang
2007-11-16 02:35:10
Looks like the Android to JavaME is going to be like the situation back then for Hibernate/Spring to J2EE. And there is no "standard" java yet for the handholds. We can maybe expect the J6ME or J7ME be an usable standard. (remind me hibernate and JPA...)
Vladimir Goncharov
2007-11-16 19:42:14
Google just uses java syntax and java technology which is not bad for the java developers if they use visual basic then I would complain :) Google doesn't have goal of killing java and pooling java developers into MS domain and marginalize Java. If Sun Java ME provides the services performance and support of what Android promises and most likely will provide then this we Java developers will have an option to choose.
Beth Trainer
2007-11-16 20:07:24
I make my living creating mobile apps for phones. I rely on a standardized definition of Java on mobile devices, and I love the fact that JME minimizes the work (doesn't eliminate - nothing does, not even Firefox is perfectly compatible with IE) of building an app that can touch the massive majority of phones on the market.


What Google just did sucks, plain and simple. They walked away from using the Java platform, which they could've done without any license fee (remember, it's GPL, like Linux) and built their own little special version, which I'll personally ignore until Sybmian and Samsung agree to pre-load it on all their phones.


To be blunt, Google just hosed their reputation among those of us whose livelihood depends on mobile devices, not enterprise cruft. We live in a different world, one that Google very clearly doesn't understand.

BlogReader
2007-11-16 20:27:51
Kept the java syntax but ditched the VM? When the rest the the world is praising the VM but ditching the syntax (see Groovy, Scala, etc) Google's going against the trend. I'm not sure if they are on the right side of history with this move.
Hari K Gottipati
2007-11-16 22:32:22
@BlogReader
Well said. The presentation in Phoenix Java user group(this week) was on JRuby. The presenter stressed lot of times about JVM and its powerful features. Ruby developers want to take the advantge of JVM, hence the JRuby. I am not sure why Google is going in opposite direction?
John
2007-11-16 22:48:40
My take is that you are just another guy that doesn't understand true innovation and technology. If you did, you would be working for Google, rather than writing this senseless drivel. Speaking as someone working in the telecom industry with Google, WE get it. You don't. Android will succeed.
Ophir Radnitz
2007-11-17 08:34:24
Yet another example of how intellectual property disrupts innovation and cooperation. I was under the impression that Java ME is on Sun's open source plan, if it hasn't been open sourced yet.


Now for some wishful thinking: I hope that Sun will react by releasing whatever IP they have over Java ME and giving it away to the Open Handset Alliance. I hope they will offer to make similar optimizations (as in Dalvik) into a mobile version of the JVM, which will be compatible with SE (as the JavaFX vision suggests). I hope they will offer this VM to the Open Handset Alliance, thus joining the alliance. I hope they will contribute JavaFX script to it and strive towards the united open mobile platform they advocated instead of fighting it with fragmentation of their own.


In short, I wish there was more cooperation between Sun and Google. It seems as if the 2 companies have completely different business models, both stand to benefit from a broad adoption of open Java development on an open mobile platform. They're not necessarily competitors in that regard. By forcing development teams to choose sides, they're impairing adoption.

frank
2007-11-17 21:07:00
Yes, because the Sun way is always the best way. I am a Java developer as well but to say that if we follow Sun's rules we will be better off is just downright silly. JSF anyone? The bottom line is that it takes soooo long for anything to make it through the JCP that we always seem to end up with half-finished "standards" and a lot of empty promises.


Also, you say that as a Java developer you don't want to develop apps for Android because it isn't 100% J2ME compliant? What if they took your advice and didn't change it to suit their needs. However, instead of sticking with what Sun is offering they used a completely different language. How would that be more helpful to the Java developers of the world. I think that Java developers are more than capable or using an API to determine where the classes are that they need to implement their particular project. Will they be able to take a J2ME project and move it directly over to Android? Probably not. But with a little tweaking they can. Would they be able to do the same if Google skipped Java altogether so as not to step on the precious toes of Sun and the J2ME?

frank
2007-11-17 21:29:53
"Don't forget that 72% of the mobile phones are equipped with Symbian OS and Symbian is not part of the Oepn Handset Alliance."


Where in the heck are you getting that figure??? I doubt that even 10% of mobile phones are running Symbian. There are over 2,000,000,000 cell phones in use in the world and according to Symbian's own website only 165,000,000 Symbian equipped phones have shipped over the life of the product and I'm sure that a portion of those are no longer in use at the rate that people replace their phones. In fact, they list 102 phones that are currently sold with the Symbian OS and some of the most popular in the world on not on that list.


Let's not forget that in the US Verizon does not allow J2ME on any of their phones.


Perhaps you meant to say smartphones. If so, smartphones aren't by a long shot the only phones running J2ME.


One more statistic from the Symbian website for Q3 2007:
289,100,000 cell phones shipped worldwide
20,400,000 Symbian phones shipped during that same timeframe.


Looks like 7% of all phones to me.

Prasanna Diwadkar
2007-11-18 06:49:16
"don't be evil" is for others not for itself.Every corporate no matter how many genuises it employs tries to be evil once its starts earning big money.Google is not exception.Though their "innovation" practices are questionable they are definite success in search engine.Mobile world is a different altogether where still big scope of earning cash exists.
rambo
2007-11-18 07:53:20
stop bashing Google. Google is trying to change the mobile world not just how applications are devloped in the short span. Don't look at it from java point of view only. java's tagline "write once and run everywhere" but google's new mobile is "write mobile apps compatiable with mobile browsers not some apps just in java and try to fit onto mobile small footprint. if you can't fit it just leavs bad experience for the enduser." you can't compare Google with Microsoft's evil policy at any level just because Google policy always been "let the strong win" not the microsoft's "let be strong cheater win"
alex
2007-11-19 08:46:51
Look at it this way - Google wanted to create a mobile device platform and they needed a language. They could have gone with Python or Ruby or even designed a new language from scratch but instead chose to leverage the wealth of experience of Java developers as well as the vast array of Java tools by creating a language very similar to Java. Dalvik is not Java, just as C# is not Java and like C#, we can expect Dalvik to push Java to grow for the better.
Happy man
2007-11-19 15:05:27
I've not seen so much nonsense as in evidence in many of these comments. The clear lack of knowing what J2ME actually is, let alone how it compares with the Android stuff is shocking.


The guy pointing out the Symbian stats is bang on. No way is it on >70% of handsets. Additionally the JVM on phones is a completely different beast to the desktop anyway. If you weren't aware of either of those two facts then any comment you make is simply noise.


On more interesting things let's throw in that Dalvik is register based, whilst the KVM (yes I said KVM) is stack based. This is a very interesting choice, the exact reasoning hasn't yet been mentioned, but you can guess at it.


Also I see no reason at all why a well written J2ME app couldn't abstract around the android areas and simply target this as another device (hell, we hit i-mode as well). It might require about an hours work and a tiny bit of imagination, but you can certainly easily port J2ME to this. It's all Java at the source level after all. Seriously lacking in imagination some people.

romero890
2007-11-19 17:33:00
The spirit of java is to run every where. The down side is too many apps were written for specific jvms.
Philip Ballen
2007-11-20 19:26:34
All Google ever does is exploit the community to buy bigger private jets. On their conf call they were bashing the GPL as "viral" - all the Java code is available via GPL at this point, so Google has to go fork Java to steal what they want. They are evil, pure and simple.
J.T. Wenting
2007-11-21 03:28:20
"The spirit of java is to run every where. The down side is too many apps were written for specific jvms."


So Google tries to cure that by writing their own JVM and pushing it down peoples' throats through their websites.
And yes kids, that's the next step. Just pushing it through some gaseous new mobile phone "standard" that noone uses yet is no more than the first step.
Expect a Windows (and probably Mac and Linux too) version soon(ish), being silently installed on any machine using google.com, gmail, orkut, youtube, or any other Google owned site.
Google will in days have gained total control over the consumer JVM market, and we'll be presented with a fait accompli, a world in which Google controls the Java language instead of Sun.
In that way the JCP can do what they want, and they may make a lot of noise and create language specs that run on server JVMs (which typically don't autoinstall JREs through websites), but that's about it.
Everyone who writes desktop software in Java will have to rewrite their products to Google's definition of the language or face user complaints about their software not working despite them "having the latest Java".

frank
2007-11-21 08:45:26
@J.T. Wenting
Get a grip.


@ Hari K. Gottipati
I noticed you stopped replying once people posted some valid counterpoints to your statements. Do you not read your blog after the first week or is there some other reason you don't feel the need to respond?

Paul Kofon
2007-11-23 10:05:22
Hi, I just finished downloading the Android SDK and the Eclipse plug-in and things are looking good! Been writing JME apps for a while now (and JSE/JEE apps for longer) but I always knew Sun just never got it right (on the desktop especially and mobile to a lesser degree), perhaps not a fault of theirs' directly. We all know how "brilliant" committees are! Based on hindsight, if Google does a better job of providing a truly useful mobile platform, then we will all benefit from their innovation! Afterall, that's how the world has evolved.
Hari K Gottipati
2007-11-26 16:13:52
@mac,
is everything comming from Google good by default?

Thats the same question I always ask! Google had failures too.
Hari K Gottipati
2007-11-26 16:19:16
@frank,
72% of phones are equipped with Symbian OS.... I meant smart phones.
Sorry, I was on vacation last week and I didn't get a chance to read the comments in time.
Hari K Gottipati
2007-11-26 16:25:02
@Philip Ballen,
Google wants to create/own the standards rather than following standards. I can't believe that they are bashing GPL!!! Which is why I questioned their "don't be evil" policy!!!!!!
Hari K Gottipati
2007-11-26 16:59:38
@All who mentioned "Google is favoring the Java developers":
Google is not favoring the Java developers by allowing to code in Java like syntax, they are using Java to attract Java developers. As a Java developer you are going to code in Java, but you are not going to get the benefits of Java byte codes or JVM.
Some one mentioned that its because of the licensing issues. But Google did not create Dalvik because of the licensing issues. JME has licensing issues, not the JSE. With Dalvik, Google is targeting the JSE, not the JME. So whats the licensing issue here?
Java is proven and its driven by community(JCP prcoess), where as Dalvik is driven by Google, not the OpenHandset alliance. Remember that Google came up with Dalvik and then members(OHA community) joined with Google.
frank
2007-11-26 23:28:37
@Hari


You said, "72% of phones are equipped with Symbian OS.... I meant smart phones.
Sorry, I was on vacation last week and I didn't get a chance to read the comments in time."


I'm sorry but if we are talking about J2ME applications why would the conversation be limited to smart phones only??? The number of regular phones sold with J2ME installed far outweighs the number of Symbian phone sold. So again, the stat is meaningless. The fact that you seem to be targeting only Symbian phones makes your argument even weaker about the need to code once. If you only install on Symbian phones then of course you only have to code once. On the other hand, if you were coding for the millions upon millions of non-Symbian phones with J2ME then you would not be able to code once and run on any of those phones.