Ex-Sun Employees Are Taking Java To iOS 115
Posted
by
timothy
from the drinking-the-beans dept.
from the drinking-the-beans dept.
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."
Not entirely useful (Score:5, Informative)
Re:Not entirely useful (Score:4, Insightful)
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.
Re:Not entirely useful (Score:5, Insightful)
There hundreds of thousand Java apps that are not desktop apps, like e.g. every Android app. So what's your point?
Re:Not entirely useful (Score:2)
Seems that my post missing an auxiliary verb. Sorry!
Re:Not entirely useful (Score:2)
Just so long as you catch moose and squirrel. ;-)
Re:Not entirely useful (Score:1)
Great but this won't work for Android apps since they don't use Swing.
Re:Not entirely useful (Score:4, Informative)
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.
Re:Not entirely useful (Score:1)
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?
Separation of model and view (Score:4, Interesting)
Re:Not entirely useful (Score:1)
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.....
Re:Not entirely useful (Score:2)
most of them
I seriously doubt that is true. Do you have a reliable source that agrees that most Android apps use the NDK?
Re:Not entirely useful (Score:3)
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 phonegap for example - this approach could get much better actual cross platform compatibility for complex ui's.
but still.. swing.. ugh..
Re:Not entirely useful (Score:5, Informative)
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.
Re:Not entirely useful (Score:2)
Is the release of this project an outcome of Oracle losing the lawsuit against Google for Android?
Re:Not entirely useful (Score:4, Interesting)
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.
Re:Not entirely useful (Score:1)
Only on slashdot would a post this stupid get modded up.
Re:Not entirely useful (Score:0)
Because I want to run apps like Anathema or Hero Designer and don't want to lug a desktop around. Just shove the ipad in the bag with the game books, or better yet, not even take the game books just the ipad.
Just get a netbook (Score:2)
Re:Not entirely useful (Score:5, Insightful)
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.
Re:Not entirely useful (Score:0, Flamebait)
"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."
And your application looks like crap and non-native for every platform.
And you still have to test on every platform because of different screen sizes, performance, etc.
How many high performant apps have you seen written in Java or even using Dalvik? For the most part if you want performance especially on mobile, you have to go native
"but that's beside the point. Java portability is a keen aspect of the language which sometimes gets overlooked"
You mean write once test everywhere?
Re:Not entirely useful (Score:3)
How many high performant apps have you seen written in Java
I haven't seen many but the one I have seen [theice.com] is pretty darned impressive.
Re:Not entirely useful (Score:1)
Shit loads. Mostly on the server side but there are some well performing Swing apps too.
Re:Not entirely useful (Score:1)
Java portability is a keen aspect of the language which sometimes gets overlooked.
Overlooked ? It's the only damn reason it exists.
About time, more like (Score:3)
Re:Not entirely useful (Score:3)
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.
Re:Not entirely useful (Score:1)
Who the fuck wants terrible J2ME apps on their smartphones?
Re:Not entirely useful (Score:2)
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.
Minecraft (Score:2)
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.
Re:Not entirely useful (Score:1)
From what I see it makes it easier for Java minded devs to create apps that will compile natively to all platforms.
Re:Not entirely useful (Score:3)
From what I see it makes it easier for Java minded devs to create apps that will compile natively to all platforms.
This is why I love developing in Java.
Re:Not entirely useful (Score:2)
Allow me to be the first to say, "Nooooooooooooooo [nooooooooooooooo.com]!!!!!!"
Re:Not entirely useful (Score:3)
Appcelerator? (Score:1)
Re:Appcelerator? (Score:2)
finally (Score:0, Flamebait)
The terrible performance of android, finally on ios.
Re:finally (Score:1)
You'd at least think their demo video wouldn't show a sluggish looking app. If it's that sluggish on such a toy app, one can only imagine the terrible performance of anything complex.
Swing like API? (Score:4, Funny)
Is that any API that basically doesn't work?
Re:Swing like API? (Score:0)
"It is the poor musician that blames his instrument"
I was there when Swing made its first appearance (waaaay back in the Java 1.1 days) and I've never, ever had a problem with it. Except for that one mysterious button (JButton) in one app that wouldn't show but it was there, you could TAB into it, but that was when I was starting to use it. Not a single glitch since. And with Netbeans when they introduced Project Matisse for GUI editor... Loved it! (still do). I know Netbeans since before Sun bought them, it was a separate company with a product called "Netbeans developer".
Re:Swing like API? (Score:1)
Except there are tools and instruments that are objectively shitty. Swing was terrible and looked like shit on all platforms without having to put in way more effort than it was worth.
Re:Swing like API? (Score:2)
It takes few lines of code to make it appear native on any platform. There are many third party LNFs available, some for free. What you say is stupid, lame, and untrue.
Re:Swing like API? (Score:1)
Uh huh. So it was so easy that almost no one wrote these 'few lines of code'? Also what would have been the point of Standard Widget Toolkit [wikipedia.org] if Swing was so great and native looking?
Re:Swing like API? (Score:2)
Re:Swing like API? (Score:2)
yeah, sun did themselves a disserve by not making the system look and feel the default.
Re:Swing like API? (Score:2)
When Sun won it's case against MS and MS had to include Sun's Java I thought MS should retaliate by including Swing and using it to render Sun's Logo. Image the logo rendering one pixel at a time, painfully slowly...
Re:Swing like API? (Score:3)
Yeah, you don't know how to use it, so it must suck...
finally (Score:0, Redundant)
Now the developers of many excellent Java desktop applications can bring their awesome sauce to iOS.
Re:finally (Score:0)
Awesome Java desktop applications? LOL good joke.
Re:finally (Score:3)
Re:finally (Score:1)
Add SQuirreL to this list.
Re:finally (Score:1)
Not to mention all of the jetbrains apps (IntelliJ, PyCharm, PhpStorm, RubyMine, AppCode, etc)
Re:finally (Score:1)
I've used Eclipse and use Vuze. They both have the non-native Java stench.
Re:finally (Score:2)
Re:finally (Score:1)
You must be the product of a modern "computer science" program. You got some vocational training in Java and were sent out into the world. It's not your fault, you just don't know any better.
Re:finally (Score:2)
You must be the product of a modern "computer science" program. You got some vocational training in Java and were sent out into the world. It's not your fault, you just don't know any better.
Nope. Started my career doing C, Perl and the odd bit of Sparc assembly having learned to program on an Atari ST in the late 1980s. Added C++ to the mix and then Java. Gradually the Java supplanted all the others, since the tools and library support are excellent.
Re:finally (Score:2)
So programs that are slow to start up, eat memory like crazy and are pretty laggy and unresponsive? Yep, typical Java 'awesomeness'.
Re:finally (Score:2)
I was thinking the same thing. Java is great for prototyping.
Unfortunately, business people rarely know the difference between a software prototype and a product.
No, thanks. (Score:1)
Java has always sucked on mobile devices. I have no need of it on iOS, and I will avoid any apps that use it.
-jcr
Re:No, thanks. (Score:2)
Re:No, thanks. (Score:1, Informative)
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.
Re:No, thanks. (Score:1)
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 compared to probably 1/16" on iOS. This leaves a "jerky" feeling while swiping between pages, and I don't think any amount of hardware will fix that.
Whatever your complaints about Apple/iOS, UI is something that they have done exceptionally well at.
Re:No, thanks. (Score:3)
I have used both side by side, and I dispute your claim - its smoother some of the time, its worse some of the time.
Re:No, thanks. (Score:1)
Yeah and only needed double the CPU cores more RAM to do so.
Re:No, thanks. (Score:0)
Um.. you realize that every Android application is written in Java, and there are quite a few exceptional Android applications.
Re:No, thanks. (Score:5, Interesting)
Um.. you realize that every Android application is written in Java, and there are quite a few exceptional Android applications.
I think you'd be surprised at how many of those are written using the NDK. Download addon detector and look for yourself (its an app typically used to check an app doesn't include some dodgy notification-based ad networks, but it also shows you a load of other interesting info). 80% of the games I have on my phone are NDK based, they're the ones that are responsive and fast.
Re:No, thanks. (Score:3)
Re:No, thanks. (Score:2)
I'd hope that people realise that web apps are fine for LoB apps, if you're entering data and getting results, these are fine. Some javascript libraries give fine performance for this kind of stuff (network latency considered), but when it comes to game-style performance, you need something more native. I wonder if webgl can step up to give us this kind of perf, but if it cannot then any webapp will just not be suitable for low-latency, fast response applications.
Of course, this means WebGL libraries are needed to make development of these types of app practical.
Of course, it depends on the framework you're using - WPF for example is a "native" platform for UI development, but it is worse than web apps [wordpress.com] for performance especially now MS is using Direct2D for IE rendering.
Java Stack Traces (Score:5, Funny)
Re:Java Stack Traces (Score:4, Insightful)
If an App falls over and no one sees an error message, did it really fail?
Re:Java Stack Traces (Score:0)
Of course not, they will scroll flawlessly across the retina display.
Tomorrows News: Oracle sues ex-employees.... (Score:3)
Re:Tomorrows News: Oracle sues ex-employees.... (Score:2)
Re:Tomorrows News: Oracle sues ex-employees.... (Score:2)
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.
Over Steve Jobs' dead body they will (Score:1)
Re:Over Steve Jobs' dead body they will (Score:2)
Too soon.
cross platform (Score:2)
Compiles in the 'cloud' (Score:0)
When it comes time to compile to native, it ships your code off to their servers to compile on Xcode. On one hand, that means that you can now write iOS apps on any platform. On the other hand, it means you are dead in the water if your internet goes down, their servers go down, they go out of business and if you continue to use it you will have to pay whatever they decide to charge for the service. You are adding another single point of failure.
Appcelerator (Titanium) asks me to log in when I start it up, but I can still compile if I get disconnected.
Re:Compiles in the 'cloud' (Score:2)
Compiles to the cloud? I can see it,,,
PHB: where is your code?
Programmer: the cloud ate it
Wow! Major coverage from Forbes! (Score:0)
This is the same outfit that predicted a slam dunk win for SCO over IBM! They're NEVER WRONG!
Re:Wow! Major coverage from Forbes! (Score:2)
So based on your logic. Forbes makes a mistake so they always make a mistake?
Go back to Logic 101.
Why? (Score:1)
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 die.
Re:Why? (Score:2)
well, yes.. but they also said that they shunned 3rd party app platforms because they are almost universally crap.
Re:Why? (Score:1)
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.
Re:Why? (Score:0)
I always notice when a site requires java because I don't have it installed, and it does not prevent me browsing the web at all. Only my bank requires it, for something obscure, because the interface is all html.
Re:Why? (Score:3)
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?
Re:Why? (Score:2)
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 process).
Re:Why? (Score:2)
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.
Oh, wow (Score:0)
Do they hate iOS that much?
Judging from the video (Score:2)
http://www.youtube.com/watch?v=lkPt3jDW8Bs [youtube.com]
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.
debian (Score:0)
Could you please first take Java 7 license to somewhat compatible with Debian please?
I don't care about Java for the UI on iPhones (Score:2)
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.
You can now (Score:3)
You can now experience the same poor application performance and battery life of android devices. Download Now!
Re:You can now (Score:2)
My Android IS11CA lasts a good 3 days in idle mode. Don't get me wrong, that's nothing fantastic, but it's well more than a day.
We already have the original (Score:2)
Re:We already have the original (Score:3)
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?
Re:We already have the original (Score:1)
Re:We already have the original (Score:1)
Re:We already have the original (Score:1)
Re:We already have the original (Score:2)
FlexyCore (Score:1)
Other way around please (Score:2)
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 a set of Java porting tools for iOS.
Also James Gosling is a disgusting, narcissistic lying jerk. He goes out of his way to tear up other languages but he patently does so by just making things up. Compare to other language fathers like Stroustrup, who's generally humble and constantly picking apart what could be done better in C++; and Matz who goes out of his way to study other languages, see what's great in them, and see if he can implement those features in Ruby, all the while doing so without trying to defame them. I've also found communities around langauges to have similiar traits as their creators.