Slashdot Mirror


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."

28 of 148 comments (clear)

  1. Apple & Java don't play nice anymore by Templar · · Score: 4, Insightful

    Apple can't even commit to Java 1.6 for OS X -- I think you're being a wee bit optimistic.

    1. Re:Apple & Java don't play nice anymore by ClassMyAss · · Score: 2, Insightful

      I don't know that I can agree that everyone should just calm down - a lot of people moved their Java development over to OS X because Apple made a huge deal about what a fan-freaking-tastic platform OS X was to code Java on. But 11 months later than the Win/Lin release? Come on now...that kind of delay does not indicate that they are taking developers very seriously, especially since said developers have been explicit ever since the ridiculous 1.4 delay about the fact that being up-to-date with Win/Lin is crucial to them. If they are not putting enough resources behind this to get the new version out in a timely manner, then it's pretty clear how much they care about the customers making the requests, and I think these customers are right to be a little pissed.

      Mac is a great platform, but if you're trying to stay on the cutting edge in Java, you need to be running Windows (Linux, meh - bugs always take a lot longer to disappear from the Linux JVMs than the Windows ones, so...). Lucky for me, most of my work is 1.4 targeted so it doesn't really matter.

  2. Ready for business. by rice_burners_suck · · Score: 2, Insightful
    I can't tell whether it was Apple's intention from the beginning to deliver the SDK for 3rd party development or if that's something that happened in response to industry-wide criticism, but either way, it is crucial to the acceptance of the iPhone for large business. A port of Java is icing on the cake, although that may become more important with time.

    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.

  3. So what happened to the Apple Java luvin'? by maggard · · Score: 4, Interesting

    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.
    1. Re:So what happened to the Apple Java luvin'? by mccalli · · Score: 5, Interesting

      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?

      I believe that's their perception, yes. I believe it's wrong too.

      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.?

      Sort of - allow me to pontificate for a moment please.

      I develop a lot of Java code, but it typically gets deployed on other platforms other than the Mac. It's a mix of desktop and server-side, and it's for internal apps only.

      I would like to develop this using my Mac - it's not that I will unleash a mass of Mac Java apps on the world (though I have unleashed one), it's more that it allows me to pick the Mac as my daily working tool. I believe Apple have underestimated the demand for Macs amongst the more technical crowd, and I am hopeful of an OpenJDK port to OS X to take this worry away.

      To summarise: perhaps Apple are right about desktop apps in Java on their platform. I still believe they're wrong in the general case though, and that they should still either keep up with the JDK or just help with the port to the OpenJDK and let others keep up for them.

      Cheers,
      Ian

    2. Re:So what happened to the Apple Java luvin'? by Blakey+Rat · · Score: 2, Insightful

      Speaking as a Macintosh user (and not a developer) Java does, and has always, sucked on Macintosh. I've yet to find a single Java app worth running, and it's only recently that Java applets on websites have actually worked without crashing the browser-- timely, now that most websites have ditched their Java applets.

    3. Re:So what happened to the Apple Java luvin'? by M.+Baranczak · · Score: 2, Interesting

      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'm a professional Java-head, and I use a Mac most of the time. But if this shit keeps up, I might have to switch to Linux for my work (certainly not Windows, and probably not Solaris either).

      The stuff I write is mainly server code that gets deployed on *nix boxes. (Which I think is Java's real strength - desktop Java apps and web applets seemed like a good idea at one point, but they're a lost cause.) I don't deal with the Java GUI libraries much, and I'm not particularly interested in the iPhone. I just want a stable, user-friendly Unix system that lets me run all the standard FOSS tools and that supports the latest versions of Java. Which Apple just doesn't do. Fortunately, most of the people I work for have a conservative approach to choosing their platforms, and they tend to stay away from the bleeding edge... and Java 1.6 doesn't seem to offer anything revolutionary, anyway... but the present situation is unacceptable.

      The thing that really pisses me off is Apple's secretive attitude. They actually had a beta release of Java 1.6 available for download - but a few weeks ago, they pulled it off their site with absolutely no explanation. And nobody knows if they're even working on it anymore.
    4. Re:So what happened to the Apple Java luvin'? by mccalli · · Score: 2, Interesting

      Thanks - yours is exactly the sort of viewpoint I was hoping to hear from - real life tool users, not armchair zealots.

      No problem - hope you've got email notification on because I switched the machine of after making that post and missed your reply.

      So in your opinion an up-to-date JDK is what you require, and could live without OS hooks, native-GUI, etc.?

      Yes - that's exactly it. There will be some need for customisation, specifically the menu bar code on client-side, but that's already done and works very well. Keeping the look'n'feel together can be a job for the porters on the OpenJDK if required - I'm sure there'd be enough interest that a decent job would be done, but it's not a prime concern either of myself nor any of the other Mac-using Java coders I deal with.

      Do you think the special Java bindings, native-GUI, etc. are worth the effort on Apple's part, or do you believe those would continue to be under-utilized?

      I believe they'd be under-utilised. I appreciate the native look'n'feel and the ability to sort out the menu bar as per a normal Mac app, but beyond that I wouldn't use anything Mac-specific anyway. That's just for my client code too, which isn't all that much compared to the server-side. Quite a lot of my client code these days is written in SWT as well which isn't affected by Apple's code.

      Essentially you've hit it though - an up-to-date JDK is what I'm after, rather than the bells and whistles of OS integration.

      Cheers,
      Ian

  4. Re:Why? by Lisias · · Score: 5, Interesting

    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
  5. Is Apple interested in Java? by Diomidis+Spinellis · · Score: 4, Interesting

    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.

  6. FreeBSD Java 6 on Leopard by javacowboy · · Score: 3, Informative

    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.
  7. Re:Why? by shutdown+-p+now · · Score: 5, Informative

    I have not found any really compelling Java apps on my desktops (Linux and Mac OS), are there really any reasons for needing them on my phone?
    J2ME is very different from desktop Java. It's one of the oldest APIs for handheld devices around, and there is a lot of stuff written for it already - tons of games, instant messengers, e-mail clients, and lots of other stuff. GMail Mobile is a J2ME application, and so is Opera Mini (granted, the latter not really needed on an iPhone or a decent smartphone, but priceless on plain Java-enabled mobiles like my Sagem my301).

    So, if there are native apps, why would we want Java?
    Considering the above, the short answer is: to use all the stuff already available for J2ME for other platforms.

    Also, is my impression of Java outdated? Is it not slow, bloated (JRE + app), and have an ugly UI?
    It is still relatively slow, of course (well, what do you expect from a language that forces everything onto the heap?), but it certainly works good enough for plain GUI apps, even on low-end phones (those not even considered smartphones). Apps are small. Tthe size of J2ME runtime is usually hard to tell since there are many different ones available, and which one your phone uses is not always obvious. UI is an interesting question: J2ME GUI toolkit is specifically designed so that it does not enforce any specific L&F or interaction model, and a well-written J2ME application should have native L&F on any implementation, and be fully resolution-independent. For stuff like games, it still allows them to get a fullscreen canvas and draw whatever they want on it, and interact with the keypad/keyboard and touchscreen directly.
  8. Re:Why? by burris · · Score: 4, Insightful

    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.

  9. Java = Lower quality apps? by RudeIota · · Score: 2, Insightful

    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.
    1. Re:Java = Lower quality apps? by quanticle · · Score: 2, Insightful

      Not having the option of writing apps in Java equals more native apps

      No. You forget that there's a third option - not releasing the app for the iPhone at all. Without a Java interpreter, application providers may decide that the marketshare of the iPhone is too small compared with the marketshare of phones that support Java, and decide not to release their applications for the iPhone. In other words, not having Java apps equals fewer apps, not more native apps.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
  10. Re:Why? by huckamania · · Score: 5, Interesting
    JavaME is very easy to write and very easy to learn. Eclipse plus the ME extensions plus the phone emulators really makes developing a quick and dirty app for a cell phone very easy.


    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.

  11. It all depends by 0xdeadbeef · · Score: 4, Insightful

    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.

  12. Well, it depends by SmallFurryCreature · · Score: 3, Interesting

    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.

  13. Apple may soon announce to step back for Sun by rpp3po · · Score: 3, Informative

    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)

  14. Re:Why? by darjen · · Score: 2

    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.

  15. Tit for tat by 2nd+Post! · · Score: 3, Interesting

    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.

  16. Common Java apps, OS X and Mobile by Savage-Rabbit · · Score: 3, Insightful

    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. I will admit that large Java GUI apps in particular can be slow and buggy and I can't say I can remember a whole slew of Java powered consumer applications that are popular among normal OS X users. I do however use quite a lot of Java apps at work. A few applications I can remember off the top of my head are development apps like Eclipse, Intellij, NetBeans, I have also on occasion used a of Java powered LDAP navigator, a whole collection of SAP utilities, Oracle utilities of various kinds... the list goes on. If I recall correctly I read somewhere that the new Lotus Notes 8 will be Java powered. There are probably a few more Java apps that I use but haven't noticed that they are Java apps since when are properly written and packaged, Java GUI apps can be quite hard to tell apart from regular OS X apps. It would certainly be a lot harder to use the Mac in a corporate environment without Java apps. I can certainly see why Java would be a good choice for quickly bolting together Java GUI Apps on Mobile OS'es and from a business point of view the 'write once run everywhere' cross platform aspect of Java has the same obvious appeal on mobiles as it has on desktop computers. I have seen anything from small programs like expense tracking software to things like fully fledged 3G streaming media players implemented in Java on Mobile Phones.
    --
    Only to idiots, are orders laws.
    -- Henning von Tresckow
    1. Re:Common Java apps, OS X and Mobile by Blakey+Rat · · Score: 3, Funny

      You're not going to convince people that Java isn't "slow, bloated and ugly" by citing Oracle Apps and Lotus Notes as an example. Just a little tip there.

  17. Java is not bad for mobile games. by radimvice · · Score: 2, Interesting

    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.

  18. Re:Why? by Sillygates · · Score: 2, Informative

    Java's default UI is still ugly If you are running windows, swing will use your windows theme (by default).
    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
  19. Re:Why? by tkinnun0 · · Score: 2, Interesting

    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?

  20. Couldn't be more wrong by bennini · · Score: 2, Informative

    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.

    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 ??
    1. Re:Couldn't be more wrong by Blakey+Rat · · Score: 2, Insightful

      I can't speak for the popularity of Limewire, but it's just as slow, bloated and ugly as Azureus. (Well, ok, probably less ugly-- but definitly slow and bloated!)

      The other examples you cite are all programmer's tools, so I can pretty much guarantee they're not "popular" among anybody except perhaps software developers. But software developers on Mac have XCode, so there you go.