Can Android Without Dalvik Avoid Oracle's Wrath?
jfruhlinger writes "Despite the fact that Oracle is suing Google over claims that Android violates Java IP, Android is roaring ahead in the marketplace. Still, some groups are wondering if they can implement Android without incurring Oracle's current or future wrath by avoiding the Dalvik VM. A project called IcedRobot aims to create a GNU-compatible version of Android, and rumors abound that RIM is planning on putting an OpenJDK-version of Android on its upcoming PlayBook tablets."
There are what seems to be a countless army of people and companies using Java, and I have never heard of anyone being sued for "Java IP anything". Something smells fishy.
I agree that integrating the desktop with the mobile more completely will be key to future success in the industry, and the line will begin to blur more between mobile and desktop operating systems. I think concentrating on the social networking aspect of things is thinking too narrowly, though. Social networks are already pretty well integrated into most smart phones by now, and moving between form factors on them, dependent as they are on centralized servers, is already pretty seamless.
The real interesting thing will be when we can get real productivity apps to seamlessly move from mobile to laptop to desktop and back. Sun had their SunRay systems where you could seamlessly move your entire desktop session, including open apps and work in progress, from one desktop computer to another, and even transfer phone calls seamlessly between phones as you moved, say from your office phone to a conference room phone. Imagine being able to do that, except between your smart phone and your laptop or desktop, even for things like full-featured word processor and spreadsheet programs or Visio or whatever other productivity apps you use. Now imagine being able to do that seamlessly without a central server or even without the little cards the SunRay depends on. You could couple all of your devices together and they could be in constant contact with each other so switching between them would be completely seamless and near-instantaneous.
We can do some of that already of course, but insufficient software and hardware on mobile devices, as well as deficiencies in disk and network speed (especially cellular network speed) make it impossible to really accomplish all of it now. I do think this is where we're headed though, and I can't wait.
Java is easy to use and highly portable. There are also legions of very low-cost Java programmers available in any number of countries like India and China. Moving to a different language would be highly painful for most companies, especially in the highly competitive world of mobile software where speed to market and cost are key, and 99.9% of your users don't give a damn what language you're using or what Oracle thinks about it.
WIth Oracle getting all pissy, and with alternate first-class platform-neutral languages like Python up-and-coming as first-class on Android, it may be attractive for Google to skip the Java language entirely.
Anybody want a peanut?
Might as well use MeeGo. At least then contributions from the community and improvements to various parts of the operating system would benefit more than just one platform.
But cellphones are about to be as powerful as desktop PCs and laptops.
Not really. They're already as powerful as desktop PCs were in, I don't know, 2002. But by the time they're as powerful as today's desktop PCs, desktop PCs will be faster too -- if only because you can stuff a lot more cores in a PC with a 200W power budget than you can into a phone with a 1W power budget.
But I agree on the convergence. Somebody needs to come up with a docking station-like thing with a ~50W CPU, several gigs of RAM, a TB of disk, GigE and a 22"+ screen which will transition the OS instance from the phone to the dock, server VM style, when you plug them together.
Then the 'dock' can stay connected to the internet even while they're not together and act as a 1TB+ remote storage and backup device and home server which the phone can access (e.g. over an ssh tunnel) using the internet or 802.11. The storage on the phone becomes essentially a local fast-access cache of the most recently used data in the larger data collection at home. This is probably how the wheel of reincarnation is ultimately going to kill off cloud computing in this iteration -- people will start using their own PC remotely instead of somebody else's server, then as phones get more powerful they start to take on more of the load as between the phone and the PC because local is always faster, until the remote PC is pretty much just a remote backup device which allows you to play high end video games and have a bigger screen and full size keyboard when you dock with it.
>> But cellphones are about to be as powerful as desktop PCs and laptops.
> Not really. They're already as powerful as desktop PCs were in, I don't know, 2002. But by the time they're as powerful as today's desktop PCs, desktop PCs will be faster too -- if only because you can stuff a lot more cores in a PC with a 200W power budget than you can into a phone with a 1W power budget.
You're correct on the hardware end, but you're missing the meatspace implications.
Most people don't need a computer any more powerful than a 2002-era machine that has hardware accelerated video (unless you're a gamer, of course, or someone with a hobby or profession that requires something more). This is why so many people CAN still get things done with old machines. Stick a modern browser on a Windows 2000 box, and you can do basically everything most people need, as long as the video stuff is offloaded into a modern video card.
Cellphones are approaching that stage _rapidly_, and will most likely be there with the upcoming quad core SoCs coming out by the end of this year. The implementation as a desktop for the masses is a trivial exercise. A dock that lets you use your cellphone AS your primary Websurfing/emailing machine is all most people need at home. Game on your console or have a gaming rig set up if you need something more, but we're just about to the point of having all the computing power non-specialists need, all in a cellphone.
The new quad-core SoCs can drive 2560x1600 panels (and more), full Blu-Ray level 1080p HD video (multiple streams, even), etc. There's honestly just not that much LEFT that people need, from a practical standpoint.
Do you hear that? That is the sound of inevitability.
I'm on a project installing several thousand dual-core W7 desktops today. Not a one has the processor power or video performance of the NGP. This battle is over.
The latest ARM processors go up to 16 cores SMP. They include up to 32 cores of video processing offload thanks to Imagination Technologies. They conserve Watts like the precious commodity that Watts are.
Part of what makes the hardware work well is the software. The Linux based platforms like WebOS, Android and others are very efficient and very portable. If they had to support Windows of course they would be slow, buggy, and burn those precious Watts.
Never say never. You'll lose that bet every time. Forever is a long time.
Help stamp out iliturcy.
Oracle knows they are going to get negative flack from programmers and stuff.
But the people who make the decision to use Oracle technologies (Oracle database, Oracle J2EE and all the other technologies) are usually not programmers, its PHBs who like the fact that some guy in a suit is saying good things about this "Oracle" thing and are duped into buying it (and the fact that in many cases there is no comparable alternative that is as good as the Oracle product unless you are willing to sign your soul to Microsoft or IBM)
It is. The x86 introduced micro-ops with the Pentium. The m68k introduced it with the 68060.
The whole idea is that more simplistic instructions allow for better pipelines. John Hennessy over at Stanford really pushed this while developing the MIPS architecture. RISC processors that use load/store instruction sets already meet this criteria. CISC processors retrofitted themselves by using complex instruction decoders that converted opcodes and their operands into micro-ops. At the cost of extra circuit complexity, you get the pipeline benefits of a RISC processor while keeping the more compact instructions of a CISC processor.
I really want to post a jerk comment like "Aaaahahahahahaha" and just leave it at that, but I'll bite. What superpowers would you use to save Intel, if only they were willing to put their fate in your hands? The same ones you use to see the future, perhaps?
He'd post about it on slashdot saying how great it is and everyone would listen.
+1 IDisagreeSoHeMustBeATrollOrAnAstroturferOrAShill
Eclipse is owned by IBM. They have their own Java development environment including compilers free of Oracle. If I owned a java shop I would rather switch to them than to use Oracle and my guess is Oracle is trying to act like IBM.
Netbeans is what I use and it is unfortunately owned by Oracle. :-( I want to gradually free myself from it soon if I make time to learn Eclipse. Both Eclipse and Netbeans are great for php, C++, and even python. You do not have to use them to develop Java software.
http://saveie6.com/
Not till DosBox gets mouse reporting right :p
Also, it allows you to remap physical keys only, and both n900 and droids with keyboards have less than 101 keys, You can't double-click the right "mouse" button, too. You can't use that era's ISA cards or similar hardware extensions, but this applies to modern PCs as well.
These are the only kinks I can think of that keep DosBox on phones from being strictly more powerful than the 1990 x86 PC you're talking about.
The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
Today's universe?
I think the point is you wouldn't find that setup very usable today because modern software is more resource-hungry. Back in my day a 68k processor running at 8MHz with 4MB of RAM was the Hot Stuff, and a 250MB HDD was [trump]*huuuge*[/trump].
Caveat Utilitor
... what are you kids TALKING about? It seems like most of the replies on this branch of the thread are about convergence between phones and PC's, and eventually using productivity apps on your phone. Who on earth wants to use a 3-inch phone to manipulate a spreadsheet, type in a word processor, or anything beyond the most specialized niche of data-entry for any extended period of time? Even tablet devices are poorly-suited for such tasks.
The intended purpose of a smart phone is not content generation or productivity. Their purpose is to read stuff (e.g. important email, directions to the restaurant, etc), and to play Angry Birds... until you've finished your car trip or boring meeting, and can return to your PC. You might tap a one-sentence reply to an email (with crappy grammar and capitalization), or enter the name of the restaurant, but that's about it for productive data-entry.
The limitation behind this is not the number of CPU cores in the device, nor its power budget. The limitation is the form factor! Duh! You can cram a supercomputer into the thing... yet even with the most clever swipey-typing system, it will still suck compared to a keyboard and full-sized monitor screen. Now, the idea of docking stations for your phone (or perhaps a standard docking port for phones on your PC) does sound like it could be useful in some circumstances... but I'm highly skeptical of full-blown "convergence".
No, that's exactly the problem with x86. Well, half the problem - the other thing is that it lacks things like predicated instructions, so you can't avoid branching and other tricks that simplify the execution unit design.
An x86 chip needs a complex instruction decoder tacked onto the front of the pipeline. Something like ARM has a decoder that is about as complex as the micro-op decoder on a typical Intel chip. This complex decoder is taking up die space, which is why it was a problem at the start of the RISC era - RISC chips could have a lot more execution units for the same total transistor cost than CISC chips. Now, much more importantly, it's constantly drawing power. The instruction decoder is a complex bit of digital electronics which an Intel chip can't power down most of the time. The only time that it can power it down is when it's running cached micro-ops - and then it's still got to run a decoder that is as power-expensive as the ARM decoder to decode the micro-ops.
Oh, and the variable-length nature of the x86 instruction set doesn't give you anything in terms of instruction density compared to ARM + Thumb2 (it's significantly worse in some common cases), so x86 doesn't even have the advantage of needing smaller instruction caches that it has over something like SPARC or Alpha (or, to an even larger degree, Itanium).
I am TheRaven on Soylent News
> In what universe is that not enough?
Any universe where Netbeans, Visual Studio, Eclipse, Microsoft Word (for anything more complicated than a single-page business letter that could be done via email), video editing, video encoding (something that can bring even the mightiest i7 to its knees; try multipass h.264 sometime...), or 3D rendering occurs. In other words, the desktop of anybody who's a content creator instead of a mere content consumer.
Back when you first started college, "video editing" involved 720x480 or 720x540 interlaced 50 or 60hz video. Now it involves 1920x1080 progressive video. Today, you could literally fill a terrabyte hard drive with an hour or two of raw, pre-encoded video. Modern DSLRs with HDR take pictures that are individually bigger (in bytes) than most CF cards that existed prior to ~7 years ago. Try editing a 12 megapixel HDR image on a PC using Photoshop on a PC with only a gig or two of ram. It's not fun.
As for people who "just want email and internet", well... Flash. Enough said.
The most high-end, hacked and rooted Android phones existing today can *barely* handle Flash in its raw, undigested, real PC form without gagging. "Works" is not the same as "runs well". Hardware-wise, a current top of the line Android phone is roughly comparable to a 500MHz Pentium 3 with 512mb, Windows 2000, and a $12 piece of shit videocard that somehow managed to have onboard MPEG-2 video acceleration anyway.
> the AGC used on the Apollo missions was considered a "real computer", and today's phones could emulate that entire system without breaking a sweat...
The difference is, the AGC made use of lots of ballistics data that was precomputed offline by mainframes and carried onboard via Hopi-woven core memory -- more megabits on a single mission, in one place at one time, than the sum total that had ever previously existed on earth. An i7 could calculate it on the fly. Had Apollo run into really, truly novel problems requiring realtime navigation that deviated significantly from the original plan (assuming it had enough fuel to allow it), the astronauts would have been fucked, because their computers wouldn't have been able to handle that use case at all.
Moblin / Meego slowness is not Intel's fault. Intel is not a device manufacturer, they produce a reference platform and device manufacturers actually build the things that consumers see. Another good example is Marvell's iMX515 - they demoed some netbooks with this CPU, Linux, and even Flash some time last year. They sell the components to anyone who is interested in shipping it, but I don't know of any company that's brought a netbook based on their hardware to market yet.
It's not the same situation as Nokia, a company that actually does produce consumer hardware, only ever shipping four device running Maemo / Meego.
I am TheRaven on Soylent News
The fact that you're writing ARM/MIPS as if ARM and MIPS have even remotely similar instruction densities makes it safe for anyone reading to disregard your views. Some things you might like to look up: the ARM barrel shifter, and predicated instructions.
I am TheRaven on Soylent News
In what universe is [a P4 equivalent] not enough?
In the universe of Adobe Flash Player, for one.
So how again are modern phones not powerful enough to replace PC's? When you answer, please remember that we're talking about the kind of PC required by the overwhelming majority of society
If "the overwhelming majority of society" switch to tablets and phones, the economies of scale might disappear from the PC market. Loss of economies of scale could make PCs unaffordable to individuals like me who have a good reason to need one, such as people who work from home or students. This has already happened to video games: the retail consoles are affordable but the devkits definitely aren't.
(email, word processing
I've tried typing on the on-screen keyboard of an Android-powered device, and it's a chore, especially compared to on my Dell netbook. E-mail (anything longer than SMS) and word processing definitely need a hardware keyboard.
facebook
Full disclosure: I can't speak to Facebook because I'm not a member.
pictures, etc).
Pictures has more than one meaning. Do you mean only coarse manipulations (e.g. color correction, rotation, cropping) to a photograph taken with a camera, or do you also mean drawing a picture? If the latter, what are the best free apps for creating sketches on an Android-powered device?
In other words, the desktop of anybody who's a content creator instead of a mere content consumer.
Devil's advocate: The general public appear happy to be "content consumers" (let's call them "audience" instead for now). If "content creators" (I prefer "authors") want to create, then they can seek venture capital, establish a business, and lease an office in order to qualify to buy a computer capable of doing so. At least this is what video game console makers such as Nintendo think.
Modern DSLRs with HDR take pictures that are individually bigger
The general public who have graduated from smartphone cameras appear happy with subcompact cameras. "DSLR? What's that? Those stupid Oreo cookie commercials I've seen?"
Java is "technically" open-source under GPLv2 (OpenJDK), but it's license contains an extra clause (classpath exception) designed to prevent someone from forking it. In order to fork Java and be granted protection from enforcement of Oracle's patents, the fork must pass Oracle's TCK (compatibility test). However, the catch-22 here is that Oracle will not license the TCK, so no fork can pass the TCK, so no fork can be granted patent protection, so, as in the case of Google, they would get sued for patent infringement.
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
This is not as far off as you might think. I'm running the Android-x86 (an x86 port of Android) right now on my desktop within a VirtualBox VM. Android-x86 is still in it's early stages, but is pretty stable and impressive already. Currently it supports Froyo (2.2) and Gingerbread (2.3) is in beta.
All that's really needed is a set of VirtualBox guest additions like those available for Windows and Linux guests to enable "seamless mode", and Android apps would appear on the desktop as (nearly) native desktop applications.
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
Interesting idea, however, if you think the patent waters around Android is thick with sharks, can you image the patent clusterf*ck surrounding the database arena with Oracle, Microsoft, IBM, Sybase and a myriad of other vendors all staking claims to anything that remotely resembles storing information in a way that it can be retrieved?
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.