James Gosling: Quite the Firestorm
nighthacks.com
nighthacks.com
It uses the word "freedom" in that doublespeak-y way that is used in the "Handmaid's Tale" when they talk about giving citizens "freedom from" social deviants by establishing a totalitarian state.
For example how the application should deal with built-in keyboard, or without. What should it do when rotated. How different resolution would work.
There is also no formal requirments specification - e.g. this app requires builtin keyboard, et.c
>e.g. this app requires builtin keyboard, et.c
Again...what? Android provides EXACTLY this functionality.
Gosling lost me when he decided to essentially cover-his-technology-ass with the Android remark. "Fragmentation" in the Android ecosystem is almost entirely simple version fragmentation, and even that is rapidly resolving. On specific handsets there are extremely few device-specific edge conditions, like a peculiar 3D performance profile on some devices. This is nothing like the absolute disaster that J2ME was, where they tried so hard to abstract everything to the absolute lowest of the lowest common denominator, and what was left was simply trash.
Have you ever had to make adjustments to your apps to make them look good/OK on, e.g., Sense? What kind of adjustments were they?
Yeah, but the comment was about the term "freedom", not "fragmentation".
I'm not saying they would do that, or even that they should, but I think this is the line of thinking that Gosling is coming from. Java has always had "write once, run anywhere" as it's motto. Android should try to stick to that ideal as well- it would do the platform good.
Java has always had "write once, run anywhere" as it's motto.
Have you found that to be true? I found it to _often_ be the case, but no assurances; you had to pick wisely.Java has had its own problems with fragmentation, despite the motto.
If you're going to allow for the variation and variety needed for robust development and platform progress you have to allow for the risk that not all code will always play nice together. That's life.
I'd like to see a Microsoft Android. I've few worries about some heavy-handed market dominance, though, since there are few barriers to entry for anyone else to jump in and try the same thing (unlike what was the case with Java when Microsoft was interested).
It would still be nice to take Java code and run it on any server platform I choose. If a project is written well, it can, which is a major win for Java.
remember what James Gosling has been through with the Java/Microsoft scandal
Yes, I remember Microsoft releasing the first JVM that did JIT compilation. I also remember them having the only usable IDE for Java at the time.I also remember them wanting to add "delegates" to the standard, with Sun responding with an idiotic reply for all to view here: http://java.sun.com/docs/white/delegates.html
Delegates which are now being added through the back-door in the InvokeDynamic JSR ... oh, the irony.
If Java is a standard, then Sun should have let others participate. Imagine if the Javascript standard / trademark was controlled by Microsoft, and they would sue Apple / Mozilla for adding "proprietary" extensions to it.
Want to avoid fragmentation ... then don't build cripple-ware.
The problem with Microsoft is that they are a habitual monopolist and their method of choice is embrace, extend, and extinguish. They were already on step 2 of their plan before Sun's lawsuit stopped them.
Do you really think Java would be in the state it is today if you had to target a different VM for every OS? Microsoft always tries to lure developers over to their platform with the "ooh, shiney" factor of new APIs and features. This is like cheese in a mousetrap. Once they have you hooked on their APIs you're screwed.
No, it would impede ease or convenience of travel. Not freedom.
freedom, n.
8. Of action, activity, etc.: Ease, facility, absence of encumbrance.
You may have political beliefs about the utility of positive liberty, but that doesn't mean he's misusing the word.Ah; this is ideological for you.
Gosling's characterizations of Sun may have applied pre, say, jdk 1.2, but Sun choose to bite the apple, to compete with (and sue) Microsoft, to attack competing technologies, to restrict competitive products--basically to act just like everybody else. The result is a dreadful technology: PL/1 for the 21st century, embedded through every industry, taught in every school; and a zombie Sun persisting in the bowels of a ruthless "devil" they thought to slay.
I'm sure Dr. Gosling knows the changes that Sun went through on its long downward spiral better than just about anyone else, but I wonder if he's willing to acknowledge the role that Java qua product played in sealing Sun's fate and the fate of technologists for whom Java is now the default with which they must labor? An apology for Java(tm) would make the elegies a bit more palatable.
Sun insisted that Java should be "write once, provide the same inferior experience everywhere", and the result is that Java is pretty much completely dead on the desktop.
You were usually OK (but annoyed) if you developed using the Sun VM and then ported (yes, it was a port) to MS. If you started on MS, it was a horrid process to get to Sun's VM.
What really sucked was, as part of the embrace, their tools were the best tools at the time (compiler, debugger, vm). The "extend" part was even OK (sometimes it was handy to have easy COM access). It just sucked when the distend part came.
(Just don't ask about the time my company was partnering with Microsoft on a project and I built the software using Netscape's foundation classes. Stupid little dot on their scroll bars...)
How does it suck that you were using the best tools available at the time?
Well clearly having worse fragmentation would be less developer friendly, would it not? One follows from the other.
>As an aside I do agree with him that Android is more fragmented now than J2ME was back in the day.
No one who actually developed for Android and J2ME would even dream of saying this. Gosling gets too much of his news from Engadget, I suspect.
Its been sometime since I tried to hack anything on android (i briefly tinkered with it around version 1.6) but here is an example of some cross device breakage that I ran into - http://code.google.com/p/android/issues/detail?id=1480 .
Android is far, far better at code portability than J2ME in its (non) hey-day, if for no other reason than that I don't need to have my Android app certified by each handset manufacturer. Furthermore, Google's app certification process is basically generating a private key and signing with it, if you just want people to download your app from your website. It's a little more complex if you want your app to be in the Market, but still simpler than Apple's.
I keep reading about the lack of Android portability but the android App I developed for internal use at our company works equally well on a Motorola i1 (iDen, Android 1.6) and a Sprint Evo (4G, Android 2.2)
Eh?
What with MIDP1.0 (which doesn't even have floating point), 2.0, CLDC1.1 and 2.0, plus various JSR's, and, the real killer, serious, often strange incompatibilities between devices (and there are at least an order of magnitude more J2ME devices out there), I'm not really sure how you can make that claim.
Fragmentation is certainly a worry for Android, but stating that things are currently worse than with J2ME seems very inaccurate.
Apple still uses Java on the server. For example, the iTunes e-commerce back end is written in Java.
This illustrates very clearly just how dangerous (if understandable) this mindset is. Don't fool yourself that you're only filing "defensive" patents. A patent is a weapon and the fact that you don't intend to fire it is no guarantee that somebody else won't later. What's worse, with everybody patenting every dumb thing under the sun out of fear, there's that much more ammunition lying around for unscrupulous people down the road to use.
The trouble here is the assumption that Sun's notions of interoperability were inherently better and that it makes sense to appoint Sun as a global steward of interoperability. Given the history of what, making cellphones?