Become a fan of Slashdot on Facebook


Forgot your password?
Android Blackberry IOS Iphone Java Open Source Oracle Sun Microsystems Windows Apple

Ex-Sun Employees Are Taking Java To iOS 115

An anonymous reader writes "Ex-Sun employees did what Sun/Oracle failed to do since the iPhone launched. They brought Java to iOS and other mobile devices. They are getting major coverage from Forbes, DDJ, hacker news and others. They are taking a unique approach of combining a Swing-like API with a open source and SaaS based solution."
This discussion has been archived. No new comments can be posted.

Ex-Sun Employees Are Taking Java To iOS

Comments Filter:
  • Not entirely useful (Score:5, Informative)

    by medcalf ( 68293 ) on Thursday July 26, 2012 @10:57AM (#40777357) Homepage
    Just to be clear, this does not allow users to run Java apps on their phones. It makes it easier for Java developers to port Java apps, though.
    • by binarylarry ( 1338699 ) on Thursday July 26, 2012 @11:00AM (#40777397)

      Why would you want a desktop app on a phone anyway?

      Except for certain very narrow use cases, it's better to have an app written for phones.

      • by aaaaaaargh! ( 1150173 ) on Thursday July 26, 2012 @11:11AM (#40777565)

        There hundreds of thousand Java apps that are not desktop apps, like e.g. every Android app. So what's your point?

        • Seems that my post missing an auxiliary verb. Sorry!

        • by Desler ( 1608317 )

          Great but this won't work for Android apps since they don't use Swing.

          • by Anonymous Coward on Thursday July 26, 2012 @11:50AM (#40778149)

            It will work for android. Rather than trying to run Swing on the native platform, It compiles down to whatever the native platform is. Basically in C1 you are building a meta app using their libraries. Then when it compiles, for iOS it will generate Obj-C, for Android it will generate a UI using standard Android widgets (I know Android is java, but not sure what their UI framework is called).

            I'm a Java/iOS developer and have been playing around with it a bit. IMO, it has a long way to go before being useful, but it's exciting to see that what they are doing is possible. Currently their API is pretty sparse and their design tools are very primitive, so I think to match what a lot of apps are doing today, you would still end up writing a lot of native code. They have their own version of JNI that let's you do that.

            I think if they keep working on it though, create a cool UI builder, add more wrappers around more core platform services (location services would be a good one to add next I think) I think they will get there.

            It's neat stuff! I'm still going to do my iOS apps in Obj-C though for the time being.

            • when it compiles, for iOS it will generate Obj-C

              So developing it will suck as much as Obj-C and performance will suck as much as Java?
              Or did I mix this up?

          • Then write a Swing front-end, which runs on J2SE platforms, using the same application logic as your Android application. If your application's model and view are separated correctly [], this shouldn't be hard.
        • There hundreds of thousand Java apps that are not desktop apps, like e.g. every Android app.

          With the exception of those using the NDK, i.e. most of them.....

          • most of them

            I seriously doubt that is true. Do you have a reliable source that agrees that most Android apps use the NDK?

            • by gl4ss ( 559668 )

              most of them

              I seriously doubt that is true. Do you have a reliable source that agrees that most Android apps use the NDK?

              If I had to pull a number out of my stetson(I do have one, I just never wear it) I'd say that 99% of android apps don't need ndk.

              however the probability that someone interested in games has some ndk app or another is nearly 99% as well(gta & etc cool tech demo type of things need it.. that's why you're seeing them ported to both ios and android but not wp currently).

              technically though this particular java solution is only of interest to developers, however it seems like it's more reasonable than phonega

        • by Bogtha ( 906264 ) on Thursday July 26, 2012 @12:04PM (#40778377)

          Android applications aren't Java applications. They are written in the Java language, but they are then compiled to run on the Dalvik VM. Even if they were Java applications, you couldn't simply drop them onto any old Java VM and have them work; they need all the runtime libraries present on Android to work.

          • Is the release of this project an outcome of Oracle losing the lawsuit against Google for Android?

          • by owlstead ( 636356 ) on Thursday July 26, 2012 @03:01PM (#40781671)

            That is certainly true, but most of the libraries that are used for core functionality of applications (at least if your application is not just a GUI or Android specific) are fully compatible with the Java runtime after compilation, and almost any third party lib can be compiled and run. The only problem is that many applications are too dependent on the GUI - in other words if they are badly written.

        • Only on slashdot would a post this stupid get modded up.

      • by sl4shd0rk ( 755837 ) on Thursday July 26, 2012 @11:28AM (#40777811)

        Why would you want a desktop app on a phone anyway?

        Java is a portability option (if you are mindful). You can write a single Java based application and run it on any platform supporting the version you compiled for. This gives you instant portability to other platforms without having to wonder about ended-ness, hardware, file structure and myriad other things. Imagine writing a game on Linux and automaticaly, it would run on Windows, Mac and any other Java supported platform.

        Now, all this ease does come at a cost. It takes an extra layer of software (java VM) and more CPU power and RAM than a native application but this is the tradeoff. If you are wise, you can get acceptable performance out of modern hardware.

        In reality, developers haven't always coded Java with portability in mind. Some platforms (won't mention any names) have been suspect of "hobbling" the stability of Java on purpose because said platform had their own implementation to market, but that's beside the point. Java portability is a keen aspect of the language which sometimes gets overlooked. It can offer some very real benefits under favorable circumstances but is by no means the end-all many would like. It has it's drawbacks too but the portability is a big one.

        • by Anonymous Coward

          Java portability is a keen aspect of the language which sometimes gets overlooked.

          Overlooked ? It's the only damn reason it exists.

      • So, given that tablets run pretty much the same OSs (Android, iOS) as many phones, you'd consider the potential for touch-enabled versions of the large number of Java front-ends to client server/systems on tablet PCs to be a "narrow use case"? The key phrase in there is "SaaS". Don't just think front-ends to enterprise scale client/server database systems; think Google Apps, and the many other Cloud based applications that are no doubt going to be developed for the growing tablet market.
      • Why would you want a desktop app on a phone anyway?

        I don't know about you, but my cell phones have had stuff on them for years that say "powered by Java" (which mostly I launch by accident, and then close after waiting for the damned thing to start up).

        Java is used for much more than just desktops. The Micro Edition has been around a long time.

        Many many phones have Java code on them.

        • Who the fuck wants terrible J2ME apps on their smartphones?

          • I personally don't (like I said, I only ever launch them by accident and then close them) ... but for all I know thousands of actually useful apps are out there that people would be sad if went away. And, no, I have no idea of what they'd be. :-P

            I was just pointing out that asking why someone would want Java on their phone is a little late since it's been there for years already. My Motorola Razr had it back in '02 or so I think, my Krazr had it, my LG phone has it.

      • It's the number one reason random people want Java on things. Their approach of compiling to native code, however, won't work with Minecraft without violating the Minecraft licensing agreement.

    • by Anonymous Coward

      From what I see it makes it easier for Java minded devs to create apps that will compile natively to all platforms.

    • by DrXym ( 126579 )
      The problem is people don't want to port Java apps, they want to port Android apps. It's not much good supplying some API which is totally different to Android including the APIs that UIs are designed with. Basically it needs to be something which compiles Dalvik byte code into LLVM byte code and links with associated runtimes.
  • How is this so different from what the Appcelerator people do with Javascript? They just abstract the SDK of each platform with a common API and then compile it to target each platform/language.
  • by HornWumpus ( 783565 ) on Thursday July 26, 2012 @11:00AM (#40777409)

    Is that any API that basically doesn't work?

    • Yeah, you don't know how to use it, so it must suck...

  • Java has always sucked on mobile devices. I have no need of it on iOS, and I will avoid any apps that use it.


    • It was usable on wince. A java version of ssh1 was my only ssh option on my iPaq before I installed linux on it.
    • Re: (Score:1, Informative)

      by Anonymous Coward

      Java has always sucked on mobile devices.

      Based on that quote, I am quite sure you've never tried a Galaxy S3 and an iPhone running side by side, because the user interface on the S3 (running Java/Dalvik) is silkier and smoother than any iPhone.

      • by Anonymous Coward

        The last side-by-side comparison I did was with the Note when it first came out, and it was far from as smooth as the 6 month old iPhone 4s. iOS gives one full core priority to handle all UI events, and you can definitely tell the difference. The touch vs. swipe detection is far better than Android as well, with a fraction of the amount of drag length required for it to "figure out" that you are dragging. In my last test, it took about 1/4" of drag on an Android phone before it actually started scrolling

      • I have used both side by side, and I dispute your claim - its smoother some of the time, its worse some of the time.

      • by Desler ( 1608317 )

        Yeah and only needed double the CPU cores more RAM to do so.

  • by doubleplusungodly ( 1929514 ) on Thursday July 26, 2012 @11:06AM (#40777487)
    I hope iPhone users don't freak out when their Java apps suddenly start printing 500 line stack traces.
  • Im sure they will come up with something to sue them over, or if it gets big enough buy them out.
    • Larry prefers the hand on approach of dressing up as a ninja and hunting them like animals.
      • That's almost correct, except Larry Ellison prefers to dress up like a woman and hide behind his lawyers.

        And then hunt them like animals.

  • I'm always happy to see an attempt at making good cross platform frameworks. Good luck to the team.
  • Apple shunned other 3rd party app platforms like Flash because they wanted to lock down their walled garden, so I don't really think Apple wants Java on their platform.

    Java for web is dead, period. Any website that requires Java to view is a failure, on any platform, period.

    Java as a platform has been pretty much shunned by almost every other platform due to Oracle, Apple isn't going to let Java touch iOS and have them bastards hard on there case.

    Java the language can live on, but Java the platform has to

    • well, yes.. but they also said that they shunned 3rd party app platforms because they are almost universally crap.

    • Spoken like the truly uninformed. There's tons of applet code out there, you probably don't notice it because they don't run slow like they did 15 years ago. I play Yahoo Games hearts almost daily and their applets have been around for probably 10 years.

      Simple test, disable Java in your browser to see how many Java web apps you're using that you never noticed.

      • I've never had Java enabled in my browser - I've not noticed anything really missing from any websites I have ever visited. No big holes in the page, no missing functionality. Where are these wonderous hidden applets that you claim should be there?

    • by gl4ss ( 559668 )

      apple doesn't care _how_ your app runs. it can have a vm bundled with it, you can develope even flash apps for ios.

      what they do care is that your app isnt' a gateway to running other apps.

      and thanks to my bank I have to use a horribly designed java applet every time I want to pay some bills - but even in that case the fact that it's horribly written piece of shit isn't java's fault at all, just the fucking stupid fucks who designed the system(no it doesn't add any real extra layer of security to the login p

    • Not that I agree with much of your post (each to his own) but this product translates Java to the native platforms, there is no embedded VM. So this is Java the language and not Java the platform.

  • []

    It's just about as slow as a translated hack. DDJ reports that they draw all their UI elements from scratch, which would explain it.

    Granted, the video could be choppy because their recording software is bad or they intentionally slowed it down, but I've had an iPhone 3G (the demo is a faster 3GS) and my apps aren't this slow.

  • I figure the native APIs will always rule, especially on resource limited mobile apps. Now, what I would like is the ability to link in Java libraries.

  • by codepunk ( 167897 ) on Thursday July 26, 2012 @12:09PM (#40778461)

    You can now experience the same poor application performance and battery life of android devices. Download Now!

  • Java basically started out as a clone of OPENSTEP - i.e., the very system/API that is the ancestor of OS X and iOS or Cocoa and Cocoa Touch respectively. So, when I can have the matured original, why would I want the clone?
    • Java basically started out as a clone of OPENSTEP - i.e., the very system/API that is the ancestor of OS X and iOS or Cocoa and Cocoa Touch respectively.

      You mean (Java) Swing "basically started out as a clone of OPENSTEP".

      So, when I can have the matured original, why would I want the clone?

      So you could use a language like Java and have things like Garbage Collection I assume. And yes, my sentiments exactly, why use a halfway started clone of SmallTalk like Objective C when you could use Java, which is a halfway finished slightly better clone of SmallTalk instead?

      • I'm not a big fan of GC actually. Rather don't create garbage in the first place. That's why you have concepts like ARC in modern Objective-C implementations. This frees the programmer from most of the memory management (like GC) but without the runtime performance impact. I don't see how Java compares better to Obj-C here to be honest, not anymore at least. When Apple started to port OPENSTEP to the Mac, they actually even tried to implement Cocoa in Java or at least provide a Java-Objective-C bridge. Don
        • You don't seem to realize that well written garbage collected programs have the potential to significantly outperform non-garbage collected ones - you should probably read up on garbage collection as your viewpoint is whacked.
          • I'm always happy to learn new things and improve or revise my knowledge. So, if you could point me to some relevant documents, I'd appreciate it greatly.
  • FlexyCore tried the same thing a few years ago with iSpectrum: [] .They even made the source available: .
  • Personally [I said personally so it's an opinion, damnit] I hate Java. I've been doing Android development for quite a while now and not a day goes by I don't wish Google would enhance the NDK to a practically usable level so I could code in C++. I've even gone out of my way to code some things in Ruby and Scala, but the implemetations just can't match native code and can't make use of enough of the tools for the platform to be "practical". I would have taken a full ObjectiveC port for Android any day over

The only function of economic forecasting is to make astrology look respectable. -- John Kenneth Galbraith