Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

[ Create a new account ]

Sun Is Porting Java To the iPhone

Posted by kdawson on Sat Mar 08, 2008 02:27 PM
from the who's-driving-now dept.
krquet notes an InfoWorld article on Sun's plans for the iPhone. After studying Apple's newly released SDK docs for 24 hours, Sun decided it was feasible to develop a JVM, based on Java Micro Edition, for both the iPhone and the iTouch. An analyst is quoted: "I think going forward, with the SDK, it takes out of Apple's control which applications are 'right' for the iPhone." The article doesn't speculate on how Apple might to react to such a loss of control. "Apple had not shown interest in enabling Java to run on the iPhone, but Sun plans to step in and do the job itself... The free JVM would be made available via Apple's App Store marketplace for third-party applications."

Related Stories

[+] Apple: iPhone SDK Rules Block Skype, Firefox, Java ... 800 comments
An anonymous reader writes "Apple's iPhone software development kit is already drawing complaints due to the strict terms of service. Voice over IP apps like Skype that attempt to use the cellular data connection will be blocked. Competing web browsers Firefox and Opera are forbidden. Even Sun is now backpedaling on its recent announcement of a java port, noting that there are some legal issues. Critics are already comparing Apple's methods to Comcast's anti-net neutrality filtering, and Microsoft's Netscape-killing antitrust tactics. Could Apple face government regulators?"
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.

Sun Is Porting Java To the iPhone 25 Comments More | Login /

 Full
 Abbreviated
 Hidden
More | Login
Keybindings Beta
Q W E
A S D
Loading ... Please wait.
  • Loss of Control (Score:5, Insightful)

    by Doomstalk (629173) on Saturday March 08, @02:31PM (#22687758)
    What Loss of Control? They've got final right of refusal on everything that goes up, and they hold the only means of distribution. If that's a loss of control, I don't want to know what it'd be like when Apple is totally in control.
  • by adamwright (536224) on Saturday March 08, @02:35PM (#22687784) Homepage
    Section 3.3.2 of the SDK agreement states...

    An Application may not itself install or launch other executable code by any
    means, including without limitation through the use of a plug-in architecture, calling other
    frameworks, other APIs or otherwise. No interpreted code may be downloaded and used in
    an Application except for code that is interpreted and run by Apple's Published APIs and built-
    in interpreter(s).

    Now, this is certainly lawyer speak and probably covers more than they'd like - I very doubt they'd care if you used some of your own library code to script custom UI elements in, say, LISP. But it is certainly their intent to stop people from just republishing all the iPhone APIs under a new wrapper, then selling an "Interpreter App" that downloads and runs "jPhone Apps" (aka "data" for your special iPhone app), thereby bypassing all their controls. It certainly seems to rule out a JRE in the sense that we've used to, and from Apples point of view, this is correct (no judgements from me on whether this is a good thing or not).

    • by sane? (179855) on Saturday March 08, @02:54PM (#22687900)

      What a lovely way for Microsoft, err sorry, Apple to find themselves in court. I'm sure the EU will look forward to the fresh cash injection. If Microsoft find themselves hundreds of millions of Euros down the swanny for failing to document APIs and make them available, what will be the fine for actively trying to prevent competitors having the same access to the machine that Apple does?

      I guess Sun have read the API and know they can bend Apple over their own arrogance.

      [ Parent ]
    • by civilizedINTENSITY (45686) on Saturday March 08, @02:58PM (#22687926)
      Please note that:

      No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple's Published APIs and built- in interpreter(s).
      ...is not mutually exclusive to:

      After studying Apple's newly released SDK docs for 24 hours, Sun decided it was feasible to develop a JVM, based on Java Micro Edition, for both the iPhone and the iTouch.
      ...which fact is attributed Eric Klein, vice president of Java marketing at Sun, in TFA:

      Sun came to the conclusion it could make a JVM work on the iPhone after taking 24 hours to look at information on Apple's SDK. Sun saw nothing in the public statements preventing the JVM from being one of the applications enabled on the iPhone, said Klein.
      [ Parent ]
    • by RalphBNumbers (655475) on Saturday March 08, @03:07PM (#22687980)
      True.

      But Sun has Lawyers too, surely they've read the license as well. They wouldn't say they're going to make iPhone-java unless they saw a way to actually do it (albeit, their way to do it may just be to say they're doing it even though they know it's forbidden, and then try to drum up public support if Apple stops them).

      It seems likely that larger players are getting access to extra capabilities not allowed by the public SDK.

      Sun isn't the only big company doing things with the SDk that imply a special deal. AOL already demonstrated an AIM client for the iPhone, which would be rendered largely useless if it had to follow the restriction against public-SDK based apps running in the background.
      [ Parent ]
      • by DdJ (10790) on Saturday March 08, @03:45PM (#22688196) Homepage Journal

        But Sun has Lawyers too, surely they've read the license as well. They wouldn't say they're going to make iPhone-java unless they saw a way to actually do it (albeit, their way to do it may just be to say they're doing it even though they know it's forbidden, and then try to drum up public support if Apple stops them).
        Sure, and there's a very easy way for them to do it.

        They make the JDK/JVM available only to developers. Then it's essentially just a library that a developer can use. The finished app still needs to go through Apple, and be posted as an individual app. And installing such an app on the iPhone doesn't enable the end-user to install any other apps on the iPhone.

        I don't see Apple's terms as forbidding that.

        Also, note that if you're a developer, you can install whatever you want on your own iPhone. That $99/year gives you the tools to install apps on your own phone by a mechanism other than the consumer-oriented ones. So, a more conventional JDK/JVM could be made available to developers pretty easily.

        And there's also that talk about corporate centralized app-loading. We don't know what the rules for that are going to be, yet.

        But it does seem likely that ordinary consumers are not going to be able to load a conventional JVM or Perl interpreter or PalmOS emulator or MAME implementation onto iPhones.
        [ Parent ]
  • The beauty of letting Sun port it (Score:5, Insightful)

    by crovira (10242) on Saturday March 08, @02:44PM (#22687844) Homepage
    is that Apple is off the hook for anything that fucks up with Java Apps (and Sun knows it so look for very conservative Java apps to get rolled out first.)

    That opens up the iPhone (and iPod Touch but who cares about that minority,) for corporate deployment and all those goodies without exposing Apple at all.
  • Network-Mobile Objects (Score:5, Interesting)

    by Doc Ruby (173196) on Saturday March 08, @02:49PM (#22687876) Homepage Journal
    Java ME is already part of the default platform for DVB/ATSC (European / N American cableTV clients), most mobile phones, and Blu-Ray (so all HD videodiscs). When it's on the iPhone, JME will get high visibility as a development platform (DVB/ATSC/BD-J and even most mobile phone development is nearly all done by a small niche of developers).

    The same JME applets will run on any of those devices. In fact, the Java classloader lets any running Java program load a class from any other Java device connected by the network, load it and run it (safely) locally.

    I wonder whether having lots of developers targeting a very featureful terminal that can be used as a "universal remote" for all these personal devices will finally offer some good applications for Java's ability to transmit the same objects around all the devices. Like the GUI objects installed in each device being available on any other device, to control the "home" device in familiar terms. Or any other of these.

    And if that "mobile objects" platform does indeed come of age, will even Sun's "JavaSpaces" [wikipedia.org] finally have a use for its far-out platform?

    Will all of Sun's "useless" Java platforms from the past decade+ eventually be recognized as "visionary"?
  • In line with Design guidelines? (Score:5, Insightful)

    by aneviltrend (1153431) on Saturday March 08, @02:52PM (#22687890) Homepage

    Here's a short section of the interface design guidelines as released by Apple:

    Only one iPhone application can run at a time, and third-party applications never run in the background. This means that when users switch to another application, answer the phone, or check their email, the application they were using quits. It's important to make sure that users do not experience any negative effects because of this reality. In other words, users should not feel that leaving your iPhone application and returning to it later is any more difficult than switching among applications on a computer.

    So when the JVM is used by an application, it'll be launched/terminated each time the app is switched to? I'm willing to bet that will make apps that leverage the JVM almost unbearable to use.

  • There's already a port of Java to the iPhone. To run it on a jailbroken iPhone, first install Cydia (http://www.saurik.com/id/1) and then install iPhone/Java.

    It even comes with a simple demo Java app that uses the iPhone frameworks!

    Admittedly it's pretty primal, and there's a long way from "JVM runs" to being able to run J2ME app's (like, for example, a GUI layer). But it's still really cool!
    • Re:Apple's stance (Score:5, Interesting)

      by croddy (659025) * on Saturday March 08, @02:33PM (#22687766)
      Sure, possibly security or performance. More likely, NIH [wikipedia.org].
      [ Parent ]
      • Re:Apple's stance (Score:5, Informative)

        by Anonymous Coward on Saturday March 08, @02:56PM (#22687906)
        Apple uses lots of software that they don't develop in house, NIH has absolutely nothing to do with it. Apple wants to keep the quality of applications high, and Java applications are slow, ugly and integrate poorly with the rest of the system. Java on the desktop is dead outside of horribly conceived enterprise business applications.

        P.S. The Apple SDK is actually quite nice. Compared to the standard Java API it's a fucking masterpiece of computer programming.
        [ Parent ]
        • Re:Apple's stance (Score:5, Insightful)

          by samkass (174571) on Saturday March 08, @03:52PM (#22688224) Homepage Journal
          I can see you're wholly unfamiliar with Java.

          The only part of the Java API that is worse than the Apple SDK is the GUI part. If Sun completely threw out Swing and started again from scratch (or Mac Java developers used Rococoa [java.net]) it would be brilliant. Java's support for everything else-- from multithreading to data structures-- makes Objective-C look like the 30-year-old grampa it is.

          And Java is extremely fast-- almost certainly faster than Objective-C, which suffers from the worst of both worlds in performance: static compilation and extremely dynamic linking. These days, dynamic compilation (which has available to it runtime and usage statistics) can optimize much more efficiently than static, leading to higher performance code. And Objective-C's extreme approach to dynamic linking means almost nothing can be inlined or statically optimized across message/function boundaries.

          Finally, the iPhone/Touch has some specific hardware to help make Java fast. Apple's just ignoring it. But Java on the iPhone using Apple's GUI library would be extremely cool.

          [ Parent ]
          • Re:Apple's stance (Score:5, Informative)

            by Bill_the_Engineer (772575) on Saturday March 08, @05:33PM (#22688744)

            OK I'll bite == Keep in mind I am more familiar with Java than Obj-C but here I go:

            The only part of the Java API that is worse than the Apple SDK is the GUI part. If Sun completely threw out Swing and started again from scratch (or Mac Java developers used Rococoa) it would be brilliant.

            It is my understanding that Rococoa is a wrapper that allows Java to call Obj-C library routines. I guess this would put it in the same ballpark as IBM's GUI library.

            Java's support for everything else-- from multithreading to data structures-- makes Objective-C look like the 30-year-old grampa it is.

            I don't know what you are talking about here. All languages support data structures, and Obj-C is no different. I assume you mean built in library templates, and Java may have an edge here. I don't know how big the edge is, since personally I only use a subset of them and a lot of them are just there for legacy reasons. I would put this more in the realm of JavaSE/ME/EE the environment instead of Java the language. I'm sure it would only be a matter of time that Obj-C has a similar class library, if it isn't good enough already.

            As for threading, Obj-C has an atomic attribute, @synchronized attribute, exception handling across threads, NSLock, NSRecursiveLock, NSConditionLock, and Semaphores. As for Java, you have the monitor attribute, synchronized, and event handling. I believe that both languages do adequately support threads. Both languages are subject to the limitation imposed by their host OS. Ok the JVM could perform multitasking in its own time slice, but boy would that suck...

            I admit I only have written seriously multithreaded programs in Java (I have little demand for ObjC at the moment), but the Apple documentation seem pretty complete and ObjC has 20 more years of multithreading over Java (smile).

            Anyway, I think I hit the crux of the problem being that I've had little demand for ObjC compared to Java. In fact, it is this demand that is forcing Apple to support Java. If the native SDK proves popular and the iPhone/iTouch marketshare continues to grow, I'll probably see less demand for Java and more demand for ObjC. This is what Sun is worried about, and this is the motivation for Sun to make a JVM for the iPhone.

            And Java is extremely fast-- almost certainly faster than Objective-C, which suffers from the worst of both worlds in performance: static compilation and extremely dynamic linking. These days, dynamic compilation (which has available to it runtime and usage statistics) can optimize much more efficiently than static, leading to higher performance code. And Objective-C's extreme approach to dynamic linking means almost nothing can be inlined or statically optimized across message/function boundaries.

            You are the first person I have seen (outside of Sun) that has used "extremely fast" and "java" in the same sentence. Do you have references? I would like to read up on the architectural differences. Objective C can drop down to C, but let's face it the speed factor now-a-days is more academic than practical. To be fair, both languages run fast enough to give a good user experience. I always had my doubts on the effectiveness of benchmarks in arguments like these. I am more of a "the right tool for the job" kinda person. This right tool being, what ever you feel most comfortable programming in.

            Finally, the iPhone/Touch has some specific hardware to help make Java fast. Apple's just ignoring it. But Java on the iPhone using Apple's GUI library would be extremely cool.

            You are sorta right. The ARM 1176JZF does have built in hardware that is capable of running Java bytecode. It is a Software/Hardware solution called Jazelle. I don't know how easy it would be to incorporate its use into OS X lite. I know it's nice in an embedded JVM environment, but I have no clue on how well it would work in a mach environment. I'm thi

            [ Parent ]
    • Re:Apple's stance (Score:5, Interesting)

      by Anonymous Coward on Saturday March 08, @02:48PM (#22687858)
      For one thing, if iPhone developers choose to just use Java, then the applications could run on other phones relatively easily.
      [ Parent ]
    • Re:Apple's stance (Score:5, Insightful)

      by adrianmonk (890071) on Saturday March 08, @02:57PM (#22687920)

      Others have offered reasons why Apple didn't bother with Java (such as wanting to maintain control or not liking its performance), but I think there's a much simpler reason: Apple's products succeed because they are polished. The graphic artists make sure everything looks nice, the UI designers spend time on special touches, and there is a lot of effort that goes into consistency and uniformity.

      So, I think Apple didn't bother with Java simply because it didn't fit in with this. They have their own UI, and Java apps either won't look the same or will require a lot of effort to get there. That alone is enough to make Apple say "why bother?" when it already has one language that does the job.

      [ Parent ]
      • Re:Apple's stance (Score:5, Informative)

        by xouumalperxe (815707) on Saturday March 08, @03:42PM (#22688172)
        AFAIK, Apple thoroughly customized the version of Java that comes bundled with OS X so as to make it look consistent with the rest of the platform. It certainly doesn't look half as jarring as it does on windows.
        [ Parent ]
    • Control (Score:5, Insightful)

      If Apple hasn't been proactive in trying to port Java to the iPhone I expect they must have a good reason

      Control.

      Apple wants to control application access to the iPhone.

      I've never been a huge fan of the iPhone, and Apple's continual foot-dragging over opening it up is getting increasingly old.
      [ Parent ]
    • At least it's not Flash [informationweek.com], right?
      [ Parent ]
      • by civilizedINTENSITY (45686) on Saturday March 08, @03:06PM (#22687976)
        Agreed that Java is preferred to Flash.

        Java is a decent language. The library support is fantastic. With Sun opening up Java, its time to reconsider the use of a VM to draw our desktops. Certainly Java is preferred to Mono ;-)

        Still, there is a certain amount of Java-biased derision echoing about slashdot. Perhaps those issues need to be addressed before advocating the embracing of Java. Yet it is a decent language, one of the best of the curly bracket languages :-)
        [ Parent ]
    • by VGPowerlord (621254) on Saturday March 08, @02:49PM (#22687868) Homepage

      Now that the Mac is overrun with terrible ports of Java apps with Windows interfaces and menus at the top of windows instead of in the menuba

      For Swing apps, isn't that Apple's fault? They did the JVM port to OSX, after all... they had the power to make the JVM merge the Swing menu with the Apple menu using OS hooks.

      Instead, they chose to have it display at the top of each application like Windows and most XWindows GUIs.
      [ Parent ]
      • by wal9001 (1041058) on Saturday March 08, @03:00PM (#22687942)
        Well, they're not all that bad. It's mostly smaller projects, like PCGen that are the worst offenders, and some more widely used ones like Azureus never really got good Mac interfaces. For example, when you make the Azuerus window smaller, instead of adding a scrollbar it just covers stuff up bit by bit. So you can make it small, but if you want all of the statistics to be available you have to leave it at a fairly large size. Azureus's interface is the main reason that everyone I know has switched to Transmission.

        And I don't want to sound all negative, because there are plenty of good Java based programs on Mac. For example, Lux does a great job with the interface (maybe because it started on Mac and was ported the other way), but I'm still worried. The prospect of hundreds of developers jumping on the iPhone thinking "I already know Java, so I don't have to learn anything new" seems like it could end badly. I guess we'll have to wait and see what happens, if Sun does go through with this.
        [ Parent ]
      • by furball (2853) on Saturday March 08, @06:44PM (#22689146) Journal

        On the other hand, having one menu bar for the entire system is the worst UI design decision I've ever seen.


        http://en.wikipedia.org/wiki/Fitts'_law [wikipedia.org]

        That "worst" UI design decision results in a menu bar of infinite size which is better for usability than a menu bar of finite size. Poke around the Mac UI and you'll find other examples of Fitt's Law, like how its tree displays work compared to everyone else's.
        [ Parent ]