Android's "Non-Fragmentation Agreement" 142
superglaze writes "The biggest doubt cast over Android (whose SDK was released yesterday) has been the fact that much of it is licensed under Apache. There have been worries that manufacturers might fork the code road in a non-interoperable kind of way. I.e., they would have no obligation to feed back code to the wider Open Handset Alliance, or even tell the other members what alterations have been made. However, it turns out that Google made all the members sign a 'non-fragmentation agreement' to make sure everything works with everything. In theory at least. 'All of the partners have signed a non-fragmentation agreement saying they won't modify [the code] in non-compatible ways ... That is not to say that a company that is not part of the OHA could not do so.' Google's spokesperson highlighted the historical dangers of working with Java, the programming language that lies at the heart of Android. 'One of the current problems with mobile Java development is that Java has fragmented ... Java virtual machines have fragmented, but all the members of the OHA have agreed to use one virtual machine that can run script in Java'"
Que? (Score:2)
So... how is this google vs apache?
Re: (Score:1)
Re: (Score:2)
Pretty cool start (Score:2)
My concern with all of this though - is that there is no hardware available.
One of the things about emulators is that they run really fast, much faster than the actual hardware runs - so it's hard to tell how responsive an application will be. So given that google has been plowing ahead on development but not been testing on real har
Re: (Score:3, Informative)
Perhaps they want to avoid symbians mistake? (Score:4, Interesting)
Symbian was developed on hardware, on the lowest hardware then available so that it would be sure to run on everything. This made the design obsolete at launch and now it is so archaic(?) that people really resent that original decesion.
Perhaps Google wants to avoid this. Wants apps that push the hardware requirements so that the Android phones will HAVE to be powerhouses, and it doesn't get trapped in the symbian or even MS trap of having to work on the cheapest shit some company can throw together.
Apparently (I only have this from hearsay) symbian phones often miss basic hardware capabilties that drive a pc programmer up the wall because he suddenly has to code for features that have been present in PC's from the dawn of computing.
All google now has to do, is convince mobile phone makers that it is in their best interest to make their phones capable of actually running the software currently being developed.
Don't forget mobile tech moves fast but is expensive. If the companies could get away with yesterdays tech they would. That ain't good for us consumers, we want them to be pushed so we finally get some fully capable smart phones and not the same crippled yunk they have pushing on us.
Re: (Score:3, Insightful)
Re: (Score:2)
Re: (Score:2)
I suppose you can limit it yourself. (Score:2)
(I'm sure there's a way to simply slow down the one emulator, but I just had to post the Rube Goldberg solution...)
Re: (Score:2)
Re: (Score:3, Interesting)
I haven't looked at the SDK, but from what I have heard you can configure the emulator a bit to reflect the capabilities of different types of phones.
Revisionism? (Score:2, Interesting)
Whoa, he-llo? That's a rather interesting (and bold!) statement to be making there. I don't know if Google has noticed, but J2ME phones all run the same code and the same APIs. Issues between phones almost always come down to working around JVM implementation bugs. Which isn't that huge of a deal when you consider that "porting" then becomes a straightforward matter of applying a min
Re:Revisionism? (Score:4, Informative)
Nokia phones for example, most will let you grab a single frame from the camera, some won't, but you can't grab multiple video frames without a 1/4 second delay per frame, whereas motorola phones, many will not let you at the camera at all, but those that will, will let you record multiple frames properly, except for a few which will only let you take single frames.
Re: (Score:2)
but J2ME phones all run the same code and the same APIs. Issues between phones almost always come down to working around JVM implementation bugs
This is just plain wrong. Once you start looking at graphics, audio, keyboard input, bluetooth, gps, network, photo or video capture or anything beyond very basic apps, you reach the murky world of JSRs, which are bits of java that may or may not be included in a particular j2me installation. If they are included, many of them have lots left up to the implementation to decide, for example MMAPI leaves it up to the implementation whether to support MIDI sound, whether to support playing audio directly from code rather than from a file, whether to support recording, what file formats to support etc. You can't even reliably play audio files across platforms, let alone do interesting things like get at the camera, get video frames etc.
No it is not wrong. Not all phones has camera snapshotting or audio recording capability which is why you need API:s that leaves it up to the manufacturer what to support. The only other alternative is that each manufacturer writes their own API for whatever features their phones support. All manufacturers had such API:s but are now trying to phase them out because it is easier to stick to standards than to invent your own. Which is exactly what Google is doing, which is exactly why they will fail to att
Re: (Score:2)
And besides this, even just having a single VM with a single set of bugs will seriously simplify things - right now entire companies exist for the purpose of making J2ME code run on enough phones to take the thing to market (I know - my brother works at on
Re: (Score:2)
try {
...
...
}
catch (NoClassDefFoundError e) {
}
Works on any Java VM.
Re: (Score:2)
Suppose four different phones implement the same functionality in different ways. Now you've got to have four different try/catch segments, and best case scenario, you're going to trip three of those every time you call the thing. Not only is this slow as all hell (catching an exception is one of the slowest ops in Java), it is an abuse of the exception mechanism. Exceptions are supposed to be used for exceptional situations, not for n
Re: (Score:2)
Re: (Score:2)
Each time I've developed for a particular phone, I've had to visit the website of the manufacturer and download one or more jars that specify what subset of j2me is supported on the phone. Does this not qualify as having different APIs for different phones?
Issues between phones almost always come
Re: (Score:2)
Oh, FORK!!! (Score:2)
Sounds to me like they don't want anyone forking it.
This is not as bad as Tivo ... or is it?
Non-fragmentation my you-know-what.
Re:Oh, FORK!!! (Score:5, Informative)
Re:Oh, FORK!!! (Score:4, Interesting)
Riiight - but who are these potential non-members? Its not like you can have half you development team be members, and the other half non-members.
And its not like there's a huge field when it comes to cell phone manufacturers. There's not thousands of different manufacturers, so google starts out with a de facto quasi-monopoly.
So even if a fork came along that was better, the companies can't use it.
No wonder Microsoft is afraid google will be the next Microsoft - they're using Microsofts' playbook.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Forking is not necessarily bad (Score:2)
Forking - and even just the threat of forking - can be powerful forces for coordination. Reducing the freedom to fork tends to centralize control and reduce the size of the community for a project, while also restricting potential innovation. From Stephen Weber's The Success of Open Source (pp. 169-170):
GPL solves these problems (Score:4, Funny)
If Android had just used the GPL (which prohibits forking), then this problem would have avoided. There are lots of examples to back this up. For example, if Emacs had used the GPL, instead of the Apache licence, the XEmacs fork would never have occurred. And if Gnome and KDE would both switch to using the GPL licence, then the projects would just magically merge into one, and we wouldn't have the duplication of effort and lack of standards that you currently see on the Linux desktop.
Oh, wait... (consults Google). Never mind.
Re: (Score:2, Informative)
Free FUD. Re:GPL solves these problems (Score:1, Troll)
If Android had just used the GPL (which prohibits forking), then this problem would have avoided.
The GPL solves the problem by giving you freedom not by taking it away. Forking is not a problem when code is free as you can tell by looking at the hundreds of "forks" in the Debian repository, or if you look at the thousands of distributions that all get along famously. Java has problems because it was not free and two or three companies were able to control it's destiny. Real community developed and own
Re: (Score:2)
Re: (Score:2)
No, twitter. I think you don't really understand what "unified" means. It doesn't mean being able to copy and paste text across applications, Microsoft figured that out 15 years ago. It means KParts working with GNOME applications. It means KIOslaves working with GNOME applications. It means KDE apps being bonobo-aware. It means that hilarious "embedding" technology OpenOffice uses is used by other desktop applications as
Google is EVIL!!! (for your convenience) (Score:1)
Brought to you by the Lawful Neutral alignment since 1984 - "I don't care what you do, just as long as it's in a neat and orderly fashion"
Re: (Score:2)
Android? Non-fragmentation? (Score:1)
If portable Java fragmented (Score:2)
Open up the network, as Google is proposing, and mfgs have to compete more in terms of coherent feature sets and what 3rd party apps they can attract.
Gist of the Apache license: Anyone? (Score:2)
Hype again for nothing? (Score:2)
I don't know about you others, but I seriously think that Android is over hyped. Yes, it's Linux based platform for mobile devices, but so what? There's already Maemo, but you don't see it hyped to death. Yes, the Android can also run Java ME applications, so what? All mobile phones can run Java ME applications...
And one last thing... there are no devices yet! No nothing! And you know what, there probably won't be even many of them. If you look at the alliance that Google has put together, the only serious
Re: (Score:1)
Re: (Score:2)
Apple got Time's invention of the year nod-- not for the device but for the breaking of an anti-consumer technopoly.
This isn't about Google
AIK
Re: (Score:3, Insightful)
Motorola is already shipping lots of Linux phones (far more than Symbian), but they have almost no developer community. Android might be the answer to their problems.
Motorola just bought half of UIQ from Sony-Ericsson
I think UIQ is a short-term fix for them. I also don't think UIQ is going to make it in the long term. For Symbian, Series 60 is going to be the de facto standard.
Re: (Score:2)
That Google has released the SDK early and is running a "competition" for applications that ends before the first phone will even be released guarantees that there will be cool and interesting software available for these devices as soon as they are released.
One open platform on almost eve
Java is simple to decompile (Score:2)
Re: (Score:3, Informative)
#1 Who cares? Only young'uns with little experience with how the industry works actually care about someone "stealing" their (incredibly boilerplate, easy to duplicate, hard to integrate into my own project) source code. Did you know that it's easy to "decompile" your HTML, Javascript, Actionscript, PERL, Python, Ruby, Shell scripts, and even Assembler too?
Oh noes! Do not want!
#2 The "Java" that runs on the phone isn't Java at all. Ja
Wait a sec... (Score:2)
To me that reads as they could close off the code and fork it into a proprietary monster as long as everything is still 100% compatible with the Google framework (user apps run correctly, etc).
So you still can't modify the source code on your phone and run the changes. I bet they are still going to lock down the phone software with DRM (Example.. Motorola A1200)
Developers, Developers, Developers (Score:2)
so... (Score:2)
Re:Java? Fragmented? (Score:5, Funny)
From this (and other comments in the previous postings about Android), one might get the impression that the people at Google are a bunch of idiots who just didn't do any basic research. Why, if only they had read Slashdot occasionally, they'd know that Java is slow, has 10^6 different versions, is very slow, is inferior to C++, is extremely slow, takes up too much memory, is abominably slow, is a programming language that no real programmer uses any more, and in general is teh sux0rz. <grin/>
Re: (Score:2, Insightful)
Re:Java? Fragmented? (Score:5, Insightful)
You've never written a JavaME (J2ME) app, have you? Getting a J2ME application to work properly on all phones is a huge nightmare. Just when you have it working on your phone, and all of your coworkers phones, you try it on your wife's phone, and find that it completely doesn't work. There's plenty of fragmentation just within J2ME, and it's made worse by the fact that it's almost impossible to test an application on every different phone that's out there. If Google can come up with an SDK that makes "write once run anywhere" a reality in the mobile world, I'm all for it.
Re:Java? Fragmented? (Score:4, Interesting)
Re: (Score:3, Insightful)
Re:Java? Fragmented? (Score:5, Insightful)
Mostly people who use 'but I thought you said run ANYWHERE' argument should actually try to think about what that would mean in real terms. For example, should you expect a huge Swing application or something like Weblogic 9 to run on your 8 year old J2ME phone? Be sensible please...
Re: (Score:2)
Only until your code depends on filesystem locking semantics which differ between your development and target platforms.
Yes, I've had to clean up after someone who relied on Microsoft's locking semantics for their Java application (or rather, their component of a much, much larger application). Knowing the abstractions and not the underlying details does not a useful developer make.
Re: (Score:2)
Re: (Score:2)
True, but this is the fault of the developer not the language. No useful language can protect against bad / lazy developers. Java can't abstract absolutely everything about the O/S away (nor should it try) so if a developer needs to write code s
Re: (Score:2)
Re: (Score:1, Redundant)
Re: (Score:3, Interesting)
Re:Java? Fragmented? (Score:4, Interesting)
Re: (Score:2)
The emulators I've found don't adequately emulate the various limitations of these phones. You're probably right that basic J2ME commands will work across most phones, but writing games, for instance, can be a huge headache.
Re:Java? Fragmented? (Score:5, Interesting)
Reading further on this, the interesting thing about Dalvik is that it's a non-Sun-controlled JVM. The thing about JavaME (aka PhoneME) is that although it (like JavaSE and JavaEE (Glassfish)) is released under GPLv2 [linuxdevices.com], there is no exception clause [java.net] (there is for JavaSE). This means that you can only run GPLv2 code on PhoneME. Obviously Google and it's partners didn't like this, so they wrote their own JVM. In order to avoid infringing on Sun's IP they've made the bytecode unique to Dalvik. So Java goes in ---> Dalvik bytecode comes out, runs on Dalvik. Very clever.
Re: (Score:2)
Re: (Score:2)
Improving J2ME would mean updating he basic standards of what it takes to be considered a J2ME phone. Right now, the standards are so out of date as to be completely useless, so you end up writing for what you think will work on most current phones, and then testing to find out...available emulators don't adequately emulate phone limitations, and not all manufacturers publish all of the relevant implementation specifications, so testing
Re: (Score:2, Interesting)
Re: (Score:2)
Re: (Score:2)
available emulators don't adequately emulate phone limitations, and not all manufacturers publish all of the relevant implementation specifications, so testing requires actually having a wide array of phones, which can be pretty expensive.
Seek and you shall find. At least both Sony Ericsson [sonyericsson.com] and Nokia [nokia.com] have public discussion boards where you can get in touch with handset developers, bug reporting [kpimdp.com] and free test suites [sourceforge.net]. You can also, if you represent a reputable ISV, borrow phones to test with and (if you sign a bunch of NDA:s) even get unreleased phones to experiment with.
Re: (Score:2)
Even Microsoft was wise enough to do something similar when they decided to scrap the whole pre-NT platform and start anew.
Re: (Score:2)
Illusion? Yup - in practice, this will be extremely difficult. IMO, Google's play is
Re: (Score:2)
Re: (Score:2)
So looking at this from the opposite direction (I downloaded the SDK last night), I think you may have shed some light on Google's rating criteria for the Phase I Challenge. All one has to do is make something that does something the average "G-phone" user would want, but that the cellphone companies wouldn't likely give away without a surcharge or lock-in package. Like you suggest, it's about creating demand for a product that doesn't exist yet, thanks to mobile telco hegemony.
Re: (Score:2)
http://ianskerrett.wordpress.com/2007/11/13/what-does-android-mean-for-suns-openjdk/ [wordpress.com]
If you're right about Google forcing the telcos to open up, then perhaps they've deliberately positioned Android for a two-pronged assault: the other target being Sun's kinda-open-but-not-quite-JavaME. After all, they could have done this with a Python variant or something else entirely, so why Java?
Re: (Score:2)
Re: (Score:2)
That's fine, but you're avoiding the central point: Google are causing further fragmentation and forking within Java at a time when there are significant efforts being made to re-unify and stabilize the platform.
Java (and even J2ME) is a strange little beast. It's not quite a platform, but it tries to be one. Google is trying to create a true platform based upon Java. It's probably true that code written for their platform will have issues (or not run at all) on non-Android platforms, but that's something that would happen anyway, even if Google had chosen J2ME and tried to improve it. With everyone else fragmenting Java, coupled with versioning problems, software written for Android probably still wouldn't wo
Re:Java? Fragmented? -- Google? Non-evil? (Score:2)
Re: (Score:2)
Re: (Score:1, Offtopic)
either/or? (Score:2)
They did do research, which is why they replaced most of the Sun bloat with native C libraries.
they'd know that Java is slow, has 10^6 different versions
They know that; it's one of the reasons they created Android in the first place.
Java is slow
They know that, too, which is why only the high-level apps are written in Java and why they replaced the JVM with Dalvik.
Re: (Score:3, Insightful)
With Andriod, you are free... (Score:3, Insightful)
Re: (Score:2)
The only reason to offer Java *exclusively* is if you run on a limited device (i.e. no MMU). In this case a VM is necessary to isolate untrusted third party applications. But in the case of modern ARM chips (with MMU), which can run a POSIX sys
Re: (Score:2)
Re: (Score:1)
The first comment to any article about Java on slashdot is by someone who always trolls Java as Anonymous Coward.
That's up to the SUN Java Runtime Environment developers not the public that codes in Java
Re: (Score:2)
Well, this _IS_ the Internet.
Re: (Score:2)
I'll stick to a basic phone, and follow the *NIX philosophy, "just does one thing, and do it well", thank you very much.
You have perfectly described Apple philosophy, not *NIX. *NIX is more like "do as many things as you want to do". The fact that Apple uses *nix to a large extent, and has put it on a phone, while at the same time some of these same tools help run huge render farms, workstations on different architectures, datacenters, embedded devices, routers, etc.. ad nauseam -- just goes to show the versatility of *NIX.
Re: (Score:2)
This is why grep doesn't let you replace, why ls doesn't let you read files, etc.
Of course, not all Unix programs ascribe to the Unix philosophy--which is why EMACS can read your mail.
Re:Google versus Apache (Score:4, Insightful)
How exactly? I don't see it that way
Google releases all their open source under the Apache license. I'm sure they have various reasons for choosing the Apache license, but I'd wager a major one is that it is very business friendly. They most likely understand what a pain it can be to include OSS products that are licensed under a different licensing scheme in a commercial product.
Re:Google versus Apache (Score:5, Insightful)
I really don't think it is. This is Google taking the Apache license and then fixing a major perceived weakness in it, at least within the context of their application (creating a single, uniform, mobile platform). And even then, they're not really restricting the software; they're just getting the people who are part of their trade group to agree not to stab each other in the back.
It's not Google "versus" anything or anyone, except perhaps maybe the closed-source phone manufacturers. Certainly not Apache.
Re: (Score:2)
Re: (Score:3, Insightful)
Well, if the licensing of the SDK is anything to go by [livejournal.com] it seems more like it's a case of Google vs. Free Software.
Well, we always knew that there were going to be parts of the software stack that aren't going to be Free software. The FCC won't allow the parts that control the radio, for example, to be user-modifiable. So there have to be some big locked-down chunks, just because it's a cellphone.
If Google actually said that the "full stack" would be OSS, then shame on them. But it seems like they're going to be way more open than anyone else, and possibly as open as they can be while still getting FCC approval for the
Re: (Score:3, Informative)
But it seems like they're going to be way more open than anyone else, and possibly as open as they can be while still getting FCC approval for the device.
How can you possibly say that when http://openmoko.org/ [openmoko.org] exists?
And I don't think openmoko had any problems with FCC approval and are truly open. "free software" is not all that relevant the type of "locked-down chunks" you are talking about - like 911 location service - since they are "locked down" in the hardware chips (by simply not having certain things controllable via serial interface) and not by any software.
Re: (Score:2)
There's no such thing as "locked down in hardware" for telephony stacks - the stack is firmware as well and thus subject to being reflashed and modified. Ope
Re: (Score:2)
Note the conspicuous absence of any Sun software (or support for it) in the SDK release.
See:
http://ohadev.com/blog/dalvik-vm-icicles-abound-no-sun-in-sight/ [ohadev.com]
Re: (Score:2)
I prefer the Apache and BSD style licensing myself, it's really what freedom is all about to me (including the freedom to have your own private fork if you wish). The Apache license hasn't exactly led to the Apache web server itself going to hell in a handbasket due to fragmentation. People are free
Re: (Score:1)
Re: (Score:2)
For the same reason people keep voting for the same old corrupt politicians?
Re: (Score:1, Offtopic)
I am with Linus on this one. For the life of me I can't understand what this sucking up to RMS is about. Linus himself does not think GPLv3 is a good thing. So why do people keep adopting it.
Without Linus FOSS is tossed. Not following Linus is dangerous for the survival of FOSS.
What are you getting on about?
Look, I know I'm going after a sacred cow around here, but if Linus had decided to do something else with his time instead of Linux, it wouldn't have been nearly as big a deal as you're making it out to be. He was the right person, at the right time, satisfying a very specific need, namely for a freely-licensed OS kernel. In the worst-case scenario, the whole thing would have been set back a year or two, waiting on the BSD kernel. More likely, I think somebody else from the MI
What the fuck? (Score:2)
But I have a bigger question. What the fuck does the GPLv3 have to do with Android?
Someone slap this tool with -1 offtopic, please.
Re: (Score:2)