An Open-Source Java Port To iPhone?
An anonymous reader writes "With the first anniversary of open-source Java coming up November 13, a Sun official believes the project could bear a fruit much sought-after in the Java community: a Java port to the Apple iPhone. Apple has not released a version of Java capable of running on the popular device. But Sun's Terrence Barr, technical evangelist for the Java mobile and embedded community, believes Apple's plans to release an SDK for iPhone in early 2008 may result in the open-source phoneME version of Java ME winding up on iPhone."
Apple can't even commit to Java 1.6 for OS X -- I think you're being a wee bit optimistic.
Speaking of being ready for business, the rhetoric across just about all media is that the Mac is a great computer for home use but isn't ready for business. Can anyone shed some light on why this is the widespread perception? The Mac, coupled with Mac OS X Server, can do just about anything that a Windows or Linux network can do, and even if it can't, you can always install some Windows or Linux servers to take care of whatever loose ends are left over. Couple that with iPhones capable of 3rd party development and Java, and it's a wonderful system for business.
A few years ago Apple was all over Java.
Apple rewrote their WebObject platform into Java. They built bindings into MacOS 10.3 making Java apps 'native', heck spent serious resources Aqua-fying Java to look native.
So now there are a coupla Mac apps that are actually Java.
But the bindings have been depreciated. And Apple is getting slower & slower about releasing Java updates. All the while additional toolsets are getting added, receiving support, etc.
Then there's the iPhone, which Apple has made clear they've little interest in adding Java to.
So does Apple perceive Java as moving into the also-ran category? Something that isn't gonna pay off development & support effort as a major player on the desktop? What makes it inappropriate for the iPhone?
Are there any Java-on-Mac developers willing to share their insights? Folks who actually use it, pay attention to it on an ongoing basis, etc.?
I don't read ACs: If a post isn't worth so much as a nom de plume to its author then I wont bother either.
I agree with the ugly interface, but just it.
As a former worker on that industry, I can tell you that there's too few applications that can't be built faster and cheaper on a good KVM than on native code.
I used to run Java games on a Siemens S55, and it work well.
One of the main problems with Java ME is the lack of interest, from the mobile industry, to invest money on something that will cause beneficts to their competitors too. They prefer to loose two users to give one to the competition.
Another one are the Operators. They are alergic to anything that gives freedom to theis costumers.
On the time I used to work for Siemens Mobile (RIP), I heard a history about why in hell the JME of S55 series can't access the InfraRed device (as the S45, that I still use nowadays, has a IR API for the Java).
The answer?
The Operatos demanded that Siemens throw out the IR API, as they do not want S55 users to intercomunicate without paying something for them (by buying GSM services). If the Siemens didn't complied, it would loose a major incoming as the Operators were the bigger buyers at the time.
The problem is not the technology. It's the industry.
Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
While an open source Java port would be an interesting development, the real issue is whether Apple is interested to support Java on its platforms. A recent Javalobby article, titled So Long Apple. The Party's Over, gives several arguments supporting the position that Apple is doing a lot less than what it should in order to properly support Java. A high-quality implementation of the Java virtual machine needs all the help it can get from the underlying platform. For an illustration of this, see how slickly Java runs on Sun's Solaris. If Apple isn't interested to put its weight behind Java, it's unlikely that Sun will fill this role. Sun is putting a lot of effort to tune Java on the Windows platform; I doubt they have the resources and motivation to do the same with Apple's platform, due to the significantly lower market share of Mac OS X. So, while an open source port of Java is nice, full-hearted support from Apple would be a lot better.
Java's default UI is still ugly. Also, to do a Java app on the iPhone seamlessly (by which I mean it uses iPhone UI components, animation, etc.) would mean that you'd have to write native code + JNI to access the native Cocoa UI API. Apple used to have a nice Java/Cocoa bridge API for desktop OS X, but they're no longer updating it and its use is deprecated. Given that, I highly doubt they'd have a Java/iPhone bridge API. Hence, you'd have to write all the UI for your app in native code anyway. So why bother with Java at all on the iPhone?
If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
An enterprising developer is already working to get FreeBSD's Java 6 on Leopard:
http://www.theserverside.com/blogs/thread.tss?thread_id=47500
This space left intentionally blank.
I agree; it really isn't as bad as some would make it out to be. I'm not an Apple fan so I really don't care about the iPhone part, but I'd like for Sony to officially do this for my PSP. Certainly not holding my breath, though...
"Fixed" as in car, or "fixed" as in cat?
Well, since the iPhone is running a scaled-down OSX, maybe they could go all the way and port J2SE to it...
Given that the only popular Java application on Mac OS X, Azureus, is universally regarded as being slow, bloated, and ugly, I'd say the GP's impression is not at all outdated.
Don't get me wrong - Java SHOULD have been on the iPhone and its almost nothing but a positive thing...
BUT... Since Java hasn't been an option, people have been writing and porting native applications to the iPhone, even without the SDK.
Assuming we can all agree that usually native > Java, so I'm afraid this may lower the overall quality of available apps. Understandably, developers don't want to write native applications for every single device. Let's be honest though - Java is a shortcut - and primary reason anyone chooses to develop with it is portability and portability alone...
Not having the option of writing apps in Java equals more native apps - which I think most people would prefer. I think this was Apple's intention. I also believe it is silly for them not to embrace Java, but I do believe this is a very real consideration.
Fact: Everything I say is fiction.
I wrote this at night over about a month:
Baby Cell
This app lets me hand my phone (or an old phone) to my 3 year old and I don't have to worry about her calling anyone or erasing stuff. It's got basic password protection and I wanted to do more, but the end product has 15 songs, a bunch of shapes and colors, her own voice. It was more interesting when she was 2, but still, it was a fun project.
Does anyone know yet what the cost will be to develop for the iPhone? It cost me nothing but time to write Baby Cell.
Will the iPhone's SDK be open, or will it be closed?
Java is a hole in the "security" of devices, in that it allows the execution of arbitrary code outside of the device's native "security model". And I use scare quotes because by security, they really mean control, and by security model, they mean control over who is or isn't allowed to produce software for the device, and run software on the device. If the Java runtime were trusted, then every Java application has the same rights as the Java runtime.
But Java has also been used by those who are legitimately concerned about security, because the virtual machine does actually make the execution of injected code very difficult. And by supporting the runtime natively, it actually gives you better control over what executes and who can execute it.
But that makes it easier to limit the features available on the devices, so you can claim to support third party software and still put up an impenetrable wall between applications and the useful, built-in capabilities that the carriers want to trick customers into believing are special "services" they must pay more for. Bluetooth, GPS, camera, and even networking have found their APIs stripped from Java on certain carriers' devices.
If Apple produces an open SDK, then putting Java on the iPhone is simple matter of porting it. Apple doesn't even need to be involved.
But if Apple uses code signing to control who is and isn't allowed to release software for it, you can forget Java ever appearing, because then anyone could write software for it. They don't seem to be at all interested in supporting Java themselves.
Your article is a great reason why we should fear DRM.
WHen I read things like this from cell phone developers I only think its what exactly what Microsoft would love to do with desktop pc's and lock them into generic appliances where everything is rented out.
http://saveie6.com/
Eclipse is nice, an IDE for java at first but suitable for other languages, and because it is java, it could in theory run on all os'es that have java.
Azureus is nice, a bittorrent client, and because it is java, it could in theory run on all os'es that have java.
Opera for mobile phones is Java.
These are just the ones I use most often.
The bad thing about java is that the old people among us remember it from the web days when everyone used it to bloat their pages when we were on modems that already choked on dns lookups. When your memory was measured in MB and java wanted GB that is when we got our first taste of java and my god did it taste foul.
Today that matters less, we got faster internet, we got more memory and more power, so while java still has a bloated feel to it, it doesn't matter anymore.
To be fair, java is only "bloated" because it replicates what your "local" programs already have in the OS. IF java apps didn't do that, and heavily relied on the OS they wouldn't be portable.
The most important reason to want java is that it would allow ANY java app to be run under it. No more need for signing, java would be signed, not the app running on it. Suddenly the iPhone would have a ton of third party stuff available.
There is a reason american phones often lack the java capability that exists on the same model in the rest of the world, java opens up the phone.
So java is good. Yes it is a bit bloated and a big of a hog, but that is the price for having apps that port easily.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
It's very questionable that they would even extend their Java efforts for the iPhone when Java support by Apple for Mac OS X might soon be over, but continued by Sun.
Main argument: Kernel APIs are stable since OS X 10.4, all major high performance graphic foundations since 10.5. The JDK could be put almost completely onto public APIs so Sun could take over development without the need for so much insider involvement anymore.
I've found the whole story here: http://javablasphemy.blogspot.com/ (currently overloaded)
MOD DOWN - Parent's link is a javascript browser denial of service attack.
This is so transparent.
This has *NOTHING* to do with any Java anniversary.
This is about competition, and that is good.
You are being MICROattacked, from various angles, in a SOFT manner.
So you're basing your assessment on one desktop app? I thought we were talking about JME, not J2SE. Anyway, speaking as an enterprise Java developer, for distributed business apps Java is hard to beat.
Well, Seapine software seems to make their non-Windows client software using Java, and just for simple configuration tasks [ie, click a button to bring up a dialog to change a password], their apps were dog slow. But their server software crashed so much we had to switch to another product, that I have a very low opinion of their ability to code.
But yes, this is off topic w.r.t. Java on the iPhone.
However, what's the point of trying to get Java on the iPhone, other than to load craplets onto it.
If you're going to bother making a first-class application, where it looks and behaves similar to Apple's iPhone applications, you're already making the UI totally iPhone-specific. And the back-end code can easily be in C [possibly even C++].
Sleep your way to a whiter smile...date a dentist!
"Java's default UI is still ugly"
I guess that depends on the taste . Personally , i like the Java GUI .
But i don't really care about the iphone , i'm looking into openMoko .
Slipping shoelaces ?
I consider it is more popular than Azureus.
There is a spark in every single flame bait point.
I bet some bad blood exists because Sun has taken so long to port OpenOffice to native Mac status. By the time they finish, Apple will have a full fledged office competitor themselves in iWork!
So essentially because Sun has decided Apple is not worth the resources to support OpenOffice on the Mac, Apple has decided Sun is not worth the resources to support Java on the Mac.
GPL Deconstructed
Only to idiots, are orders laws.
-- Henning von Tresckow
I'm a mobile phone game developer that has ported commercial games to over 200 handsets across all of the major Western carriers. This includes lots of crappy phones that could barely eke out 1fps, and lots of phones that hit 40-50fps without missing a beat. Overall though, I have a MUCH easier time porting for Java devices than for BREW, because Java is simply much easier to develop stable programs for, which means less bugs to waste time tracking down, which means you can make better quality software.
And as far as Java being slow, bloated, etc., maybe all that was true back in the 90's, but today it's perfectly fine for development on any modern machine, all of our in-house development tools are written in Java and work perfectly. And J2me, the subset of Java that you find on the phones, is particularly lightweight and speedy - most mobile JVMs compile rather than interpret the Java bytecode, and some ARM cell phone processor architectures actually execute the straight J2me bytecode directly in hardware. What varies performance most is not usually the choice of Java vs BREW for running applications, but the speed of the phone's processor and its ability to paint to the screen quickly, and in my experience these vary regardless of whether a phone is using Java or BREW. A good Java phone will be entirely indistinguishable from, if not even more capable than, a good BREW phone in terms of its game-playing ability.
If Java is ported to the iPhone, it would let existing game developers easily target their games for the iPhone during the standard porting process, and they could spend the extra time perfecting interfaces and controls to take best advantage of the iPhone's capabilities. This would mean an instant library of hundreds of quality commercial games each year, with a fast-growing library of independently-developed mobile games as well (that is, if AT&T grants its contract holders access to them). Otherwise, without a Java port it would mean a much more expensive porting process to a separate, proprietary SDK, which few mobile game companies with enough development resources will be able to profitably accomplish. So you'll probably get EA Tetris for your iPhone and little else, oh joy.
And, as of jre 1.6.0 swing can also be set up to use gtk themes as well
I wish steve jobs made that iPhone keynote a little more dramatic, by saying:
"iPhone runs Solaris 10"
Featuring core stability, and java!
I fear the Y2038 bug
I don't know why people bother posting Java-related stories to Slashdot. Clearly the majority of its readers are still coding in Perl and have the nerve to suggest that Java's performance or UI is any slower or uglier than Perl. Please :)
Secondly, it seems the majority of you are not aware of the fact that the vast majority of phones out there (~80%) runs JavaME. Pretty much every single one of you have been running Java applications for years on your phones without knowing it.
Java isn't fast at everything, nor is it beautiful for everything, but for 90% of the applications out there it is both fast enough and beautiful enough out-of-the-box. You can always enhance performance or UI by using custom libraries but most developers are either too lazy to or they simply don't need to for their specific application.
Uhhh, if the constant cost of a method call is the limiting factor, why not just get a processor with a higher clock frequency? I mean, would you trust your money on hand-written assembler in a world where regulations can change yearly and in a company which wants to skimp on the hardware?
Relatively slow compared to what? If you try the language shootout you'll see that it's almost universally faster than python, mono, and many other languages used for "plain GUI apps". Heck, the implementation of ruby in java is faster than the original C! The one place where java consistently lags is the startup time. Of course, this and other perceptions of responsiveness count for a lot.
Azureus is the only popular Java app on OS X???....so you mean Eclipse, NetBeans, LimeWire, and JEdit are not popular?
I think u meant to say that Swing sucks...not Java.
With regards to the lack of an official Java 1.6 on OS X...
What im wondering is how many of the people griping about this actually develop applications that leverage the features in Java 1.6 or how many of you require Java 1.6 to run an already existing Java application?
The major features introduced by Java 1.5 such as generics, annotations, and AOP, are not even popular yet. How many developers even know what AOP is? Ok from that subset, how many of them design new applications that leverage cross-cutting behaviour? Ok since there are a few of you left, let's move to Java 1.6...we've now got runtime hot-patching at the class level (not just at the class loader level! woohoo)....so those of you with personal satellites with "always-on" software can now update ur buggy classes on the fly....additionally, we can embed Ruby and Groovy script languages inside of our java application and run them directly from within the JVM. Im sure IBM is quickly porting all their applications to take advantage of that feature.
i still havent heard one real convincing argument as to why java 1.6 is so important to have RIGHT NOW. aside from being able to test your existing applications with java 1.6, i highly doubt anyone functionally necessitates the new features (and no, "because its cool to access your java objects from within ruby" is not a valid argument). if industrial companies like Mercedes are telling companies like IBM that they still arent ready to move away from 1.4.2, why on earth are basic computer users in a rush to jump to 1.6/1.7 ??
Do you give the same defensive reply when someone points out how crappy Visual Basic is?
Seriously, though, you're right: It probably *is* possible to make a fast, stable and slick app in Java across multiple OSes. The problem is that nobody's done it yet; everything that people associate with the Java logo is slow, ugly and usually also buggy. What do you expect people to think of the technology?
If Sun really wanted to push Java on the desktop, they should have developed apps to show it off themselves. Since they didn't, all the examples we have are crappy, and that's that.
Comment of the year
Strange. Whenever moving to Linux people complain about missing games ... apparently they are not compelling now ...
There is no other cross platform API for mobile phones, competently written or not. Unless you consider S60 such.
For me MidpSSH (or similar) is a must, and Opera mini is an excellent tool.
What does Java 6 offer that you can't download a library to do in Java 5?
Subpixel rendering in AWT/Swing applications. java.io.Console. The annotation processing API. I'm sure there are others, but those are the only ones I've made use of.
They did. It's called NetBeans.
This restiction is only for operator supplied handsets in the US. In Europe the operators don't do this.
If you want to write a multiply player game that uses bluetooth, for instance, you need a certificate supplied from the operator before your midlet will run.
Im suprised this hasnt already been done.
---- Booth was a patriot ----
Ok, I don't know what "NetBeans" is, and therefore my post is flamebait. I apologize to whoever moderated that post as flamebait for trying to imbue it with a teeny bit of humor, and I hope that the surgery to remove the stick from your ass proceeds with no complications.
Comment of the year
Annotations were added in 1.5, so I have no idea what you mean by "the annotation processing API".
I mean the package javax.annotation.processing, used to produce compile-time annotation processor plugins.
Having actually used java.io.Console, it's no better than System.in/System.out which have existed forever.
Except that it provides a crucial capability that is not possible with System.in and System.out: reading of passwords with echo disabled. Seriously, this capability alone is enough to persuade those of using Java for writing command-line system applications to upgrade.
As for subpixel rendering, you have to be kidding. First, Java has supported anti-aliasing since 1.2
Subpixel rendering and anti-aliasing are very different systems.
and secondly I'm fairly certain that Apple's Java used their font rendering in the Mac OS Swing PLAF anyway.
If it does, it's highly unusual. None of the Windows, Solaris or Linux ports do this. I can't confirm either way, though, because I'm not using an Apple system. Here (where I use Windows and Linux predominantly), 1.6 is a clear improvement.
Limewire which is another pure Java Application is always at top 10 of Apple downloads.
Java is not just file sharing. If Apple wants to make sense in business/science/military, they have to fix their Java or give it to someone who can. Linux/PPC has Java 6 for ages thanks to IBM.
There are javaless phones, that Motorola one with the primitive LCD display is one, but all "modern" gadget phones got it. If it can play mp3's and such, if basically it has the power to run downloadable games it has java because, well the games are java.
I can understand your confusion because it is just as confusing from my view. Basically most phones that are capable have it. How else would you play games and such on it?
To be fair, in holland and most of the EU, competition on the phones started with the mobile phones, before that the landlines were owned by semi-state industries on a national level. So perhaps the mobile phone companies that newly emerge with GSM just felt they had to compete on all fronts. In holland, the monopolist KPN was if I remember correctly also the one to most push their own content.
My own recent phone came with software to convert music to ringtones and offcourse java so I could run my own browser.
Basically, I never read a mobile phone companies press release saying it had java, only to find in store that it had been disabled. If Nokia, Sony-Ericsonn etc list the phone as java capable, then in holland at least, it is.
Perhaps it is also because most phones are sold through third party stores, they typically display a phone and then the different subscriptions you can get it with from the different networks. Wouldn't help sales of your network if your chart read "no java" when everyone else did have it.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
How many iPhone owners will give it to their 2-year old to play with, do you think?
Especially given the fact that getting a java port relies on having an open SDK for the iPhone -- meaning native apps can be produced. So, if there are native apps, why would we want Java?
Also, is my impression of Java outdated? Is it not slow, bloated (JRE + app), and have an ugly UI? My bank and their millions of consumers who all got a highly secure password generator (J2ME) in age of phishing can't care less about how ugly Java is. They all got the password generator free which does work on any J2ME phone except iPhone and that generator saves them from $90+ private data watching firewall and fixed password.
iPhone market share is still a joke while I hope it will become the Symbian rival. Win CE is the real danger to standards and market. If I call my bank and tell them I got a $400 iPhone which doesn't have J2ME which exists on $60 phones and tell them to code a iPhone
That is only a bank example. There are lots of examples about iPhone and stupid choices Apple made such as no SIM contacts support (backup!), no MMS support.
We want iPhone to be a true Symbian competitor and nothing else. I am an Apple user myself. If Java isn't there just because it is "ugly", Apple should stay making iPods since 2 billion devices and their users doesn't agree to their Java opinion.
"Sun estimates the total Java Economy to be more than (USD)$100 billion in sales annually driving an additional $110 billion in related IT spending
The Java economy includes 2.5 billion smart cards, 800 million PCs shipped with Java, 1.85 billion Java Powered phones (source: Ovum), and over 180 telecom providers who deploy Java technology based content/services."
http://www.sun.com/java/everywhere/#facts