iPhone, Java, and Flash

Daniel Steinberg’s article entitled Java to the iPhone: Can you hear me now? is getting some link love tonight, me included.

I don’t think there’s any real epiphany here, more like a “yeah, that’s right” sort of forgone conclusion in my head that just makes sense. While I think Daniel has a bit of nostolgia for the old bird (that would be programming language Java, in case you’re not following), the truth of the matter is that Java never did shit on the desktop. Or more appropriately, that’s all it did. Even with the dramatic and amazing efforts of a lot of people – the reality of java on the desktop was a clunky, often-slow, and non-repeatable-between-OS interface that never really looked like anything other than a clunky interface.

I suppose you could call this post “Why flash is going to kick java’s ass on the desktop” just as well – because it’s not even related in many respects to the iPhone, except for a comment that Jobs as reported by David Pogue. Would you spend the resources porting java to the iPhone. If it was my choice, no way. Java still does some things well, but to me it’s moving into the real of “bank software”. Compiled server software? Sure, yeah. Probably over C++ in my book (but there’s always room for C if you need the down and dirty speed). But productivity for the developer? No, sorry – not anymore. More flexible languages like Python, Ruby, even PHP are taking it down. They’ve optimized significantly more towards “developer time” over performance. Java did this over C and C++, but it’s been surpassed.

But move to the desktop, and you’ve got even more specific needs. The rules disappear and the options explode for what you “want to do”, and a language that’s both tedious and relatively indeterminate (in terms of what you’ll actually GET in performance and visuals) isn’t going to last long. Flash, I think, will take it down at the end. Shoot – just look at Flash 9/ActionScript 3. A flash “movie” looks the same on a Mac as a PC as a Linux desktop. That’s the win, right there. It might be a pain in the ass to code towards – I personally prefer Cocoa/Objective-C for desktop apps, but then I can’t get a result on Windows and Linux with that. I can with Flash. It’s predictable. It’s growing, and not just in WS*craptola API’s. It will be interesting to see how Adobe plays out it’s hand here (I actually have little faith they’ll do it intelligently) – but I still expect Flash to suceed in spite of anything Adobe might actually do.

If I were Ray Ozzie, I’d be worried about Flash and what it’s going to do to my desktop. Or how I could use it… one of two.

Will Flash stand up to a large desktop App (Can you even imagine MS Word in Flash???). Maybe, maybe not. I’ll bet not. I’ll bet the small-pieces-loosely-coupled concepts of Unix are finally making it around as well though. And that it won’t matter. That having a reliable expectation of what the interface will LOOK like will ultimately be more important than the 600,000 features you don’t use.

Spreadsheets in a web browser – that must have been Bill Gate’s worst nightmare about 10 years ago. And they’re here. Any they’re not awesome, but they ARE disruptive. They’re somewhat functional, cost nothing, and will undoutable get better. It’s done mostly in Javascript with some clever server side function. Javascript is (more or less) ECMAScript. Flash 9 is ECMAScript as well. Connect the dots.

In the end, I real Daniel’s piece and thought. Yep, makes sense.

22 thoughts on “iPhone, Java, and Flash

  1. I agree RIAs are very compelling and much better than Java. Flash on the desktop is a very large market yet to be untapped greatly. But one glaring problem with Flash is apps that may run when remote desktop’d in to a server or additional PC. When in emulation it is just very unusable. I see more virtual servers and lots of remote control of machines in the near future and flash apps are horrid in these situations. In all other aspects I love it and AS3 is a real programming language that is very similar to C#/Java/javascript.

    Like

  2. Flash does need a “back end” to be effective, but I also see a trend in that direction for a huge number of desktop apps. Something beyond the classic “client-server”, richer than what you get with a browser.

    Brent Simmons did a talk at C4 this past year (and a copy for the XCoder’s group locally later) on hybrid applications. I think he’s pretty bang on the money with this concept. It’s another one of those concepts that just “rings true”. Google, Yahoo, and Microsoft are all making significant inroads into applications in this direction. Microsoft being one of the few that’s really attempting to mix desktop-without-a-browser applications.

    Like

  3. The problem with Java as Apple sees it, is that it is an open cross platform technology with standardarized specifications and API’s. Java would hurt iPhone’s proprietary nature by making mobile applications portable to other mobile devices. The rest of the arguments are BS. MS and Apple will always fight technology that hurts the proprietary nature of their systems.

    Like

  4. I call bullshit. Apple clearly doesn’t have a problem with an open, cross-platform technology – they supported Java extensively for years, and only boiled down to “fuck it, they just get a JVM” when nobody actually USED all those fancy bridging components they built, and that are a complete pain in the ass to maintain.

    Do they want to keep iPhone proprietary? Yeah, probably. I’d buy that – but its completely unrelated to supporting java on any part of their component platform.

    Like

  5. In my opinion, Apple made a huge boo boo. It’s the same problem that I have with the IPOD… It is totally cool in every way but just falls short on a few capabilities that I need/want. The point is, the IPHONE, despite the power it has, is not a desktop. Applications like Google Earth mobile and 3rd party GPS systems are all written in Java. Tons of mobile games (something the iphone lacks) are also in Java. The comment about using flash, DHTML, and all the other “web” technologies (as in request/response frameworks) shows Apple’s lack of understanding about what Java will gain them on the iphone.

    Maybe when the iPhone has exposed GPS functionality and Java support I’ll look at getting one. Until then, like with the iPod, my money will go to more complete offerings from other phone manufacturers.

    Like

  6. I hear what you’re saying, but I’m not sure I agree. I bought one, and while its clearly NOT a desktop, the breadth of functionality is really stunning. I still want some mechanism to do my own applications that’s closer to the hardware than DHTML. If that’s j2me or flash or even some local thing elsewise in javascript, I’ll be happier. Given my choice I’d prefer objective-c. I still rather expect it to be flash though.

    Like

  7. The IPhone has inside a java execution cpu from ARM:

    http://www.arm.com/products/esd/jazelle_home.html

    Java apps may already run on the iphone…

    All this flash vs java nonsense, people prefer the technologies they are familiar with, just like I am familiar with java. I prefer java to flash any day, why? I know java in and out and I am really productive in it. From my point of view I would use the browser only as a container for my applets. Java is already pressent in most phones …

    I think on mobile devices java is way ahead of anything flash has to offer…

    Like

  8. Apple made a deal with Google to use a customized version of Google Maps, which by in large is better than Google Earth (on a cell phone). Because the person who believes they NEED Google Earth on a cell phone is lying to themselves.

    Second, GPS is not supported by the iPhone AT ALL. And the feature probably won’t surface for numerous versions (read: year+). If ever.

    Third, when it comes to something on the level a cell phone, I can do EVERYTHING worthwhile Java can do with Flash and a couple PHP scripts. Everything.

    And I can hear people say, “But Flash can’t modify files on your phone/computer or do anything to it.” And I reply, “Exactly.”

    Like

  9. The iphone… boring… I can SSH to my Linux servers, play MAME games and Java games, remotely reconfigure my apache servers via SSH TTY, stream video, reconfigure my homescreen in XML and listen, watch and make videos on my MotoQ…
    try doing that on the iphone….
    Javascript is cute on the browser, flash is cute too, action script is pretty nice, but none of these languages let you do what Java does.
    Limewire is in Java, google earth is in java, eclipse ide is java – Ebay runs on java the mars rover too, shit most of your phones run java, industrial robots yep run Java and when you are about to croak, your hospital’s imaging and diagnostics equipment run’s java.
    Java IS everywhere – Flash/Flex actionscript 3 – looks like Java but will never be Java, it doesnt have the core functionalities that java has since it still has some of the deep systems programming roots, remember UNIX ?

    Like

  10. daj –
    You’re 1/2 right. Less than 2 months after launch iPhone, out of the box does not do SSH, MAME and Java games. But take a look at the after-market progress even without an official SDK:

    SSH?: Yes. http://iphone.port21.com/Code/; and see: http://code.google.com/p/mobileterminal/
    Java Games?: Don’t know, probably not. But you do know that the iPhone has an ARM Java byte code interpreter in hardware, right?
    MAME Games?: Some, here: http://code.google.com/p/iphone-sdl-mame/
    Nintendo emulator?: Yes. http://iphone.natetrue.com/nesapp/files/README
    Other applications?: Yes: http://www.iphonehacks.com/iphone_applications/index.html

    Now if I were Apple and I released a new platform I’d like to keep it closed for a little while, at least, just to make sure that the APIs as defined are what work. Then I can change any code and adapt the only official applications to work with the new APIs. Simple. Clean. Good user experience for the 95% who want to use the phone as designed.

    Also, it takes quite a few man-hours to create a decent SDK, and I just betcha Apple and their engineers had other things on their minds for the last year or so.

    Give em a little time, or enjoy the “hacks” above. I’m amazed that there are native 3rd-party applications for the iPhone less than 2 months after launch!

    Like

  11. I think a lot of this misses the forest for the trees. IPhone is a personal consumer device, not something sold to an enterpise–like Crackberries. It’s a closed system with a tightly controlled user experience by Apple . Apple is just repeating the IPod business model of bringing existing technology to the masses. I had a mp3 player years before the iPod came out. My wife and friends didn’t or had an unused one because it was like programming a VCR. They have several iPods now though. I’ve had a PDA/smart phone for years. My wife and mom were scared of it. They’re both considering the iPhone however. They don’t care about if it has java.

    In the enterprise application space, J2EE (not Java EE5) has no rival. ColdFusion/Python/Ruby/Rails/whatever might get some simple dynamic webpage marketshare, but nothing serious. People doing serious business involving real money won’t use anything else anytime soon. Bleeding edge to them means Linux/Jboss running J2EE, instead of Sun/WebLogic or AIX/WAS. They’re finally getting comfortable in the Web Services world. They’re right now considering whether to upgrade WebLogic 8.1 to 9, not even considering 10 yet. Mac server doesn’t cross their minds, except as a flavor of linux/JBoss out on the bleeding edge.

    I’ve been a Java-focused architect for more than 10 years and have never coded a java GUI beyond helloWorld, and I never will. Java desktop apps, with the exception of a few applets, are almost universally part of enterprise solution spaces coded by GUI specialists. They gladly DO use thick java apps when the UI is too complex for web-based approaches like Ajax. Personal consumers don’t use java apps ever. Therefore no need to support it in a phone not based on Java ME. Flash is much more used in consumer webpages, so I expect to see it soon on my iPhone.

    Like

  12. im not really knowlegable about software and hardware in computers…and the iphone in that matter; so my question is this: is it a huge loss for the iphone to not have java when it has javascript? i dont really know what either of them do but i do know that they are similar. but like…you know…i wanna know.

    Like

  13. I have to disagree with many of the points in this article, and take sides with many of the comments made here. IMHO Java is about to be a big thing for mobile devices, and yes the reason Apple chose to overlook it was purely from a proprietary standpoint.

    I think Apple and Steve Jobs have missed the mark, and when some of the new mobile Java apps being launched at the moment go mainstream Nokia, Sony Ericsson et al are going to see the reward for supporting the developer community.

    Like

  14. I have my own opinion.

    I have been a developer for mobile devices for some years including J2ME PocketPC, Palm, Symbian, Blackberry plus extensive Java, Flash and others.

    Here’s why i don’t really care that Java and Flash are not there yet….The real difference with the iPhone is I actually use it, ALOT. I actually think apple have got it right for a device that handles Phone, Web, Music, Video and Email. Although i have many gadgets (most of them) that technically can already do these things and more(on paper), its about execution for me. I don’t know of any other mobile web browsers that are as usable as the iPhone

    Meanwhile Apple will have a SDK out in February, I understand it will use Objective-C. If I want to write an application for this device I will simply use the language they provide together with the API’s which will no doubt yield a better quality application than either java or flash will. Who knows, they may even throws in the scripting bridge technology to enable Ruby or Python app with full access to the UI libraries.

    For what it does, its the best device IMHO and I am very glad I bought one. I’m sure feature such as Java ad Flash are just around the corner and will even be able to be installed on the current device.

    I don’t think apple have missed a trick, the other option would have been to hold back releasing the product until all third party software was ready to go live (Java/Flash). Once the SDK becomes available these things are only natural, unless of course the SDK is severely crippled.

    Like

  15. very disappointed on Job’s and his Apple decision not including Java in the iPhone device OS. There are many applications are written with Java, online. Which mean iPhone will have a hard time to access these applications nor the web page. I my case, move on to MS device until Android devices official release into market.

    Like

  16. With the iPhone SDK out there and free, there will be at least one Java VM created in no time, specifically in July 2008. I am sure that at least IBM is today working on it. Same thing for the Flash/Flex 3.
    As Java developer I’d prefere it to Objective-C, but I have to give Apple the credit that their strategy with the late release of SDK was brilliant. Time to overcome the dislikes and turn to Objective-C because nothing will touch Cocoa Touch, not Java, not JavaScript (GWT), ant not even Flash/Flex 3. Not for the long while.

    Like

  17. Sorry but you don’t know what you are talking about. Java for PC is not the same as Java for mobile devices. Also it is one of the most popular platforms for mobile devices out there long before iPhone existed. It is also not slow and hasn’t been for some time. Take a look at Opera Mini as a nice fast Java mobile application.

    If your still intent on comparing to PC then try JAKE2. As for PC speeds Java can run as fast (and some cases faster over time) vs C++ since at least 2003.

    See:

    http://www.idiom.com/~zilla/Computer/javaCbenchmark.html

    If you are going to make wild claims at least show us where you are getting the incorrect information from.

    Lastly adding another language platform to iPhone would not hurt it in the slightest. If you don’t like it, don’t install it.

    Like

  18. Simon,

    Take a look at the date on this post – it’s all hypothetical and “my belief”. If you read something on a blog, you should assume it’s someone’s opinion unless they state it as fact.

    I’ve got no disagreement about java running as fast or faster than other languages. That’s not the point at all.

    Like

  19. Well the issue is when people point to an entry like this and claim it is fact, regardless of its age. But thanks for pointing out it is based on fiction.

    Like

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s