Slashdot Mirror


Multi-Platform App Created Using Single Code Base

andylim writes in with news of a reasonably impressive demonstration of the multi-platform capabilities of Adobe AIR. "Christian Cantrell, a technical product manager at Adobe, has created an app for multiple platforms including OS X, Windows 7, Ubuntu, Android, iPhone OS, and iPad OS. What's amazing is that all the platforms use the same code base. 'The application is called iReverse, and it's a fully functional Reversi game (complete with a pretty decent AI). Although iReverse is fun to play, the most amazing thing about the project is the fact that it runs in all these different environments completely unchanged. In other words, the exact same code base is used to build versions for five different environments. There's no other platform in the world that can boast this level of flexibility — not even close.'" Cantrell says he will open-source the code for iReverse and document how he pulled this off.

296 comments

  1. Probably 500 lines of actual game play code by DarthBart · · Score: 5, Funny

    combined with 350 million lines of #ifdef _LINUX_ or #ifdef _MACOS_ or #ifdef _UNICOS_.

    1. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 1, Interesting

      There's no other platform in the world that can boast this level of flexibility — not even close.

      Adobe AIR is to applications like Flash is to webpages. Ludicrous resource usage and awkward non-native GUI elements. When I tried TweetDeck, it would run 20% CPU when idle - and would have a footprint approaching 1GB if left running over night. It doesn't install on 64-bit Linux very well, either.

    2. Re:Probably 500 lines of actual game play code by sopssa · · Score: 1

      But thats the reason you don't need to do exactly what the GP suggested with #ifdef's. The same code works everywhere. Of course you can't have native GUI elements in that case as it needs to support every platform. The GUI is handled by the runtime environment, just like with Java and other cross-platform languages.

    3. Re:Probably 500 lines of actual game play code by AndGodSed · · Score: 1

      On my 64bit Linux TweetDeck doesn't even run properly. Black background and mostly nothing else. And I also noticed the resource hogging, but thought that was because mine was broken.

    4. Re:Probably 500 lines of actual game play code by Jurily · · Score: 2, Interesting

      No, they said it's completely unchanged across platforms. Wanna guess how it looks on Windows?

      In other words, the exact same code base is used to build versions for five different environments. There's no other platform in the world that can boast this level of flexibility -- not even close.

      These guys obviously never heard of Unix before.

    5. Re:Probably 500 lines of actual game play code by Skreems · · Score: 1

      combined with 350 million lines of #ifdef _LINUX_ or #ifdef _MACOS_ or #ifdef _UNICOS_.

      Sounds pretty close... in the last screenshot of the "article" you can clearly see that the project has separate directories for each platform.

      --
      Slashdot needs a "-1, Wrong" moderation option.
      The Urban Hippie
    6. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      Adobe AIR is cross platform.. that's not the deal here. It's basically just able to adapt to what sort of screen the device the app is running on has... As I gather... Which by all means should be pretty tedious but not that hard to code.

    7. Re:Probably 500 lines of actual game play code by sopssa · · Score: 1

      Unix can be quite much put into one group. Also, once you get to more complicated system calls or other levels, you're going to hit incompatibility issues. Otherwise you could just release binary (32 and 64 bit versions) and it would work in every UNIX, BSD and Linux distro. But it never does. AIR applications however do.

    8. Re:Probably 500 lines of actual game play code by ciroknight · · Score: 3, Interesting

      Sure it's completely "unchanged" on every platform. That doesn't mean that it doesn't have a million lines of ifdef'd code. It's just the code doesn't do anything on the platforms where it's not needed. There are vast number of portable libraries and a somewhat smaller number of applications that do just this, having platform specific code conditionally compiled in.

      Anyways, I fully suspect this guy's "solution" will be something like "We just used Flash and embedded it into these application 'runtime' thingablobs and then it was simply a matter of loading up the platform agnostic swf file." "Wait, what about the source code?" "Here's the source to the Reversi game. ahahaha did you seriously think we'd open source a runtime that'd put half of us out of a job???"

      --
      "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
    9. Re:Probably 500 lines of actual game play code by ciroknight · · Score: 3, Insightful

      ...And the runtime environment has millions of lines of #ifdef __LINUX__, ...

      Whether you hide behind a runtime is entirely irrelevant. Because the APIs differ between OSes, somewhere, someone had to write some nasty sticky portability shims.

      --
      "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
    10. Re:Probably 500 lines of actual game play code by maxume · · Score: 1

      They are not open sourcing the runtime, but it is available for free.

      --
      Nerd rage is the funniest rage.
    11. Re:Probably 500 lines of actual game play code by mfnickster · · Score: 1

      > Whether you hide behind a runtime is entirely irrelevant.

      It's not irrelevant if it saves you from having to include all those #IFDEFs in your own code vs. someone else's existing code.

      Of course, you can do this with cross-platform libraries that are native, not interpreted. So why exactly do they persist in re-inventing this particular wheel? :-/

      --
      "Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
    12. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      You insensitive cod, I run xnix on PPC, Alpha, AVR32, H8, MIPS, MIPSBE, SPARC, ARM, IA-64, x86, and x86_64

    13. Re:Probably 500 lines of actual game play code by Adrian+Lopez · · Score: 1

      Sounds pretty close... in the last screenshot of the "article" you can clearly see that the project has separate directories for each platform.

      That's probably just to accommodate the build settings for each platform. The code itself is likely shared between all builds.

      --
      "In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
    14. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      oh...um....i know. its like PIZZA. yes. half day old pizza thrown into the garbage bin is also FREE ! did you know that ?

    15. Re:Probably 500 lines of actual game play code by techno-vampire · · Score: 2, Informative
      These guys obviously never heard of Unix before.

      They also don't know anything about the history of computing. COBOL was doing exactly that back at the end of 1960, which is one of the big reasons it became popular.

      --
      Good, inexpensive web hosting
    16. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      Exactly. It's like saying you write something with Qt, and you can compile it on 50 different platforms from phones to Unix to Windows to Mac, without changing any source code. And yes, it's true, but someone has to do the porting. Adobe AIR seems to do same thing, so this is nothing more than slashvertising.

    17. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      Looks like C-Kermit: ftp://kermit.columbia.edu/kermit/a/aavsys.txt

    18. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      ...and that's the big problem with these type of runtimes. it doesn't conform to my selected colours, desktop theme, accessibility settings, keyboard shortcuts, font or DPI settings. Copy paste between Air and native applications has problems, as does 'drag and drop'. You end up with an 'universal' application that is bad across all systems.
      I'm also not sure I actually want the same application running on all devices - or what the perceived gain is. I want a fully featured email client on my desktop machine, but I'm happy with a very simplistic interface on my mobile phone. Different devices offer different features and I expect my applications to utilize them as appropriate. Technical standards, be it HTML, CSS, SMTP, IMAP, POP - and implementing them correctly is much more important for interoperability than the same binary on different machines.

    19. Re:Probably 500 lines of actual game play code by miggyb · · Score: 1

      Half day old? Now, I'm no dumpster diver, but 12 hour old pizza sounds good to me.

      --
      This signature serves no purpose other than to help you see which posts were made by me.
    20. Re:Probably 500 lines of actual game play code by digitalunity · · Score: 1

      Agreed. Adobe is way off the mark here.

      AIR can't provide 100% portability for all application code across all platforms it supports because they don't all support the same features! If it does, it does so by not offering all of the features that the underlying OS supports.

      The closest I've seen so far to true cross platform coding is Nokia Qt. It doesn't support as many platforms as AIR but it does handle them extremely logically and the level of sanity in API design is refreshing compared to things like MFC/ATL/.NET.

      AIR is crap IMO. If you want portability, write portable code and an application/interface toolkit like Qt to reduce your headaches. To boot, Qt uses native GUI elements for most widgets on most platforms giving users a familiar feel.

      --
      You can't legislate goodness. Let each to his own destiny, by will of his freely made choices.
    21. Re:Probably 500 lines of actual game play code by digitalunity · · Score: 1

      Close. Qt hides all the conditional compilation from you, but it's still there. The upside is that you get native UI elements in portable code.

      There are still plenty of things that Qt doesn't address, either because they haven't gotten to it yet or because the underlying feature doesn't work similarly or are absent in supported operating systems. For instance, Qt supports COM on Windows which doesn't exist on OSX(but you won't be using it if you wanted portability anyway).

      --
      You can't legislate goodness. Let each to his own destiny, by will of his freely made choices.
    22. Re:Probably 500 lines of actual game play code by Firehed · · Score: 1

      The closest I've seen to true cross-platform coding is HTML/CSS/JS. Granted as a web application developer I'm biased, but I also write in a single platform-independant language and have working code across pretty much every platform in existence. And what's even better is that when a new platform comes along, my code is compatible with it from day one without any extra effort on my part; no #ifdef nonsense.

      Of course, the web has its limitations, not to mention the whole IE thing. But almost every application I use today could be turned into a web app, and plenty of them would be better off as one. There's a time and place for desktop apps, but when I want to reach the widest possible audience with the least amount of programming effort, browsers tend to be the logical target.

      --
      How are sites slashdotted when nobody reads TFAs?
    23. Re:Probably 500 lines of actual game play code by skids · · Score: 2, Interesting

      You can indeed support platform-specific features in an abstracted UI. You just have to abstract the features, and demand that developers check for them, turn them on, and provide alternative behaviors when they are not available. I know, why bother, that's the same as #ifdeffing around with OS APIs... well, it can work out when a subset of OSes have the same features. The application only has to deal with the features it wants (and their absense) and not each OS which has that feature.

      There are a lot of good attempts at reusable portability libraries, but few projects use them and instead opt to re-invent the wheel. It's a shame, actually, many of them are not very onerous and are a great place for code sharing to reach a wide user base.

    24. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      Nope... he wrote it in Java. /ducks

    25. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      So why exactly do they persist in re-inventing this particular wheel? :-/

      And why do they *keep* making it on Slashdot as something so damn amazing? I swear, I must have have seen 2 for sure now--maybe (being Slashdot, probably) more--in the last about month or so alone. It really doesn't seem much like news when you're hearing the same thing over and over again.

    26. Re:Probably 500 lines of actual game play code by obarthelemy · · Score: 1

      my oh my, American, are you ?

      --
      The Cloud - because you don't care if your apps and data are up in the air.
    27. Re:Probably 500 lines of actual game play code by obarthelemy · · Score: 1

      clue: OS != dev toolchain

      you're welcome.

      --
      The Cloud - because you don't care if your apps and data are up in the air.
    28. Re:Probably 500 lines of actual game play code by SQLGuru · · Score: 1

      SDL? I'm pretty sure someone could write Reversi using SDL and C or Python and have it work pretty much everywhere.

    29. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      Its more than not doing anything, its not there. The #ifdef by definition means it does not appear in the binary, only the source.

    30. Re:Probably 500 lines of actual game play code by Loomismeister · · Score: 1

      How does that make him american? Typical foreigner!

    31. Re:Probably 500 lines of actual game play code by Unoti · · Score: 1

      Not the phones. But otherwise yes.

    32. Re:Probably 500 lines of actual game play code by orasio · · Score: 1

      How does that make him american? Typical foreigner!

      Because those "americans" eat old reheated pizza, in pizza places!! I've seen it with my own eyes!! They even have them in display, pre-baked pizza.
      In my country, pizza, specially mozzarella, is always freshly baked, never reheated in the pizza place. You could get in trouble with customers trying to pull that off.

    33. Re:Probably 500 lines of actual game play code by binkzz · · Score: 1

      Anyways, I fully suspect this guy's "solution" will be something like "We just used Flash and embedded it into these application 'runtime' thingablobs and then it was simply a matter of loading up the platform agnostic swf file." "Wait, what about the source code?" "Here's the source to the Reversi game. ahahaha did you seriously think we'd open source a runtime that'd put half of us out of a job???"

      On the page he says it's Flash, so I don't see the huge importance or excitability of this. What I get from the article is that he's (or they; it took a whole team) wrote a reversi game that adjusts itself to any screen size. I am totally disappointed and unimpressed by this going on the title.

      --
      'For we walk by faith, not by sight.' II Corinthians 5:7
    34. Re:Probably 500 lines of actual game play code by cbreaker · · Score: 1

      Not *all* the phones. My N900 supports SDL.

      --
      - It's not the Macs I hate. It's Digg users. -
    35. Re:Probably 500 lines of actual game play code by ckaminski · · Score: 1

      I liked CORBA, way back in the day... but why isn't there a cross-platform version of COMs IDispatch? Surely that would be the bees knees?

    36. Re:Probably 500 lines of actual game play code by DutchUncle · · Score: 1

      They also forgot that Basic was invented for portability, and the entire development of 3GLs in general was to provide common interfaces to disparate systems.

    37. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      These guys obviously never heard of Unix before.

      Are you stupid? Why the hell are you modded up? Writing a game for a 'Unix' does not instantly mean its portable to other Unix. Unix does not dictate your graphics subsystem, or your input subsystem... Heck the iPhone is full blown Unix, we certainly know that it and your Ubuntu box are not exactly the same platform.

      Seriously why do you people raise your ignorant heads on articles about development.

    38. Re:Probably 500 lines of actual game play code by Wovel · · Score: 1

      Americans eat 12 hour pizza at home when it is leftover and even better cold. I am sure you are referring to pizza by the slice places, which everyone here also recognizes are not the best pizza in the world, but you can be in and out in 2 minutes, so people eat it sometimes. The US has some of the best Pizza places in the world. Except perhaps Naples, you can find better Pizza in every state in the US than anywhere else in the world.

    39. Re:Probably 500 lines of actual game play code by orasio · · Score: 1

      I am sure you are referring to pizza by the slice places, which everyone here also recognizes are not the best pizza in the world, but you can be in and out in 2 minutes, so people eat it sometimes. The US has some of the best Pizza places in the world. Except perhaps Naples, you can find better Pizza in every state in the US than anywhere else in the world.

      Yes, I was referring to pizza by the slice.
      The fact that places like that can survive says something about the publics tolerance with pizza.

      That's what I mean, that you have to be from the US to tolerate such a thing for the sake of convenience, and even pay for it.

      About having good pizza places, I wouldn't know. I've been only to Florida and NYC. In Florida I went to several pizza places, and they were regular to good.
      In NYC I didn't see a lot of places I could eat real pizza, I tried pizza by the slice and it had a dough that tasted like sponge, like supermarket pizza.
      I would assume I could get real pizza in Little Italy if I really wanted to, but I didn't run into any place that sold real pizza, in Manhattan or in Hoboken.
      I had good pizza in Union City, but it was not as good as what your get here or in Argentina (Italy should be better of course, but I've never been there!). I think the big problem is you can't get good cheese in the US.

    40. Re:Probably 500 lines of actual game play code by Anonymous Coward · · Score: 0

      Unfortunately, Steve Jobs just banned the use of this program on all apple products, because it "violates our terms of use".
      http://theflashblog.com/?p=1888

  2. Yawn by Dunderflute · · Score: 1

    So what do you do if you want to make a call to the system API? Or if you want to use something like OpenGL/OpenCL?

    I've seen these before and they're more of a novelty than something robust enough for anything other than technology demos.

    1. Re:Yawn by WrongSizeGlass · · Score: 1

      So what do you do if you want to make a call to the system API? Or if you want to use something like OpenGL/OpenCL?

      That's easy ... you rewrite it as a real application.

    2. Re:Yawn by Dunderflute · · Score: 1

      Did you stop reading after the first line? That's exactly what I was suggesting.

    3. Re:Yawn by sopssa · · Score: 1

      So what do you do if you want to make a call to the system API? Or if you want to use something like OpenGL/OpenCL?

      I've seen these before and they're more of a novelty than something robust enough for anything other than technology demos.

      Then you don't use it. Theres own place for both languages closely tied to the OS you're developing for and languages meant for cross-platform usage. It's your own responsibility to pick the one that suits you best.

    4. Re:Yawn by WrongSizeGlass · · Score: 1

      Did you stop reading after the first line? That's exactly what I was suggesting.

      Your post was very clear ... I was simply being sarcastic.

  3. there are other solutions by Anonymous Coward · · Score: 0

    I ran into a company that claims to produce single code applications for iPhone, Blackberry, Symbian, WinMobile, Android, Palm (Pre), BREW as well as a thin client optimized for multiple browsers.

    see konysolutions dot com

    but it'll be interesting to see this!

  4. Not even close? See: Java. by fahrbot-bot · · Score: 5, Insightful

    What's amazing is that all the platforms use the same code base. ... There's no other platform in the world that can boast this level of flexibility -- not even close.

    Guy creates functionality I've been using in Java for 8 years; film at 11.

    --
    It must have been something you assimilated. . . .
    1. Re:Not even close? See: Java. by Foofoobar · · Score: 4, Insightful

      Well speaking as a Java fan myself, that's not entirely true. This runs on the iPhone which Apple won't allow Java code to run on. Apple would like to see Java die and is doing it's best to kill it and Microsoft as well. The only people who like it are enterprises and developers... thankfully though, that's still alot of us and eventually Steve Job's will die.

      --
      This is my sig. There are many like it but this one is mine.
    2. Re:Not even close? See: Java. by what+about · · Score: 1

      True, mod parent up

      It must be a test to see the level of competence in the field :-)

    3. Re:Not even close? See: Java. by Jurily · · Score: 1

      Posted by kdawson

      'Nuff said.

    4. Re:Not even close? See: Java. by Nerdfest · · Score: 1

      ... except that Java runs just fine in 64 bit Linux on an AMD. Adobe Air ... no so much.

    5. Re:Not even close? See: Java. by Anonymous Coward · · Score: 0

      More like guy writes to abstraction API. yaaaaaaaaaaaawn

      There are a few of these out there. Let me pick a random one, believe it or not MFC is (or at least one point was) at cross platform (in specific conditions). I did this in the mid 90's write one code base recompile poof worked on a mac os 7. Think borland ported it over to OS2 at one point.

      If you have to 'tweak' to a platform when using an API you have a 'leaky interface' API. There are many out there (even my MFC example did it in many cases). They work pretty good on whatever platform they were written on. Pull them out of that environment and suddenly you have to do many crazy things to make it work right.

    6. Re:Not even close? See: Java. by zach_the_lizard · · Score: 1

      There's also JavaScript, which will run pretty much everywhere, and doesn't require installation of the application. Safari, Chrome, Opera, and Firefox all support it reasonably well enough to do some very neat things, even on the iPhone and Android devices (assuming they use a variant of the Chrome browser; I've never used one). What's more, at least one of the above will run on Mac OS, Linux, *BSD, Solaris, Windows XP and above, various mobile phones and embedded devices, etc. With Flash you can get similar amounts of users, though you will lose the iPhone and some other platforms.

      --
      SSC
    7. Re:Not even close? See: Java. by forkazoo · · Score: 1

      Guy creates functionality I've been using in Java for 8 years; film at 11.

      Off the top of my head... Java, Python, C using GLUT-OpenGL-OpenAL, C++ using Qt... There are tons of platforms that I've personally worked with where I had no problem supporting multiple platforms with GUI and audio while being able to maintain a single code base. Does this make me some sort of portability super-developer? Should I be doing speaking tours to brag about my amazing accomplishments?

      No, I'm just some dumb fuck mediocre part-time programmer who has his head stuck slightly less far up his ass that the people who think AIR is interesting.

    8. Re:Not even close? See: Java. by BikeHelmet · · Score: 1

      Ahh, but this is compile-once, right!? That makes it so much better! ...but Java already had this. Sure, you have to detect the platform and adjust accordingly - but it's been happening for a huge part of Java's existence.

      In all honesty, you pulling it off in C/C++ makes you a "good" programmer, because your code doesn't actively make the codebase harder to maintain or port. If your code retains the possibility of targeting different architectures and devices, you're doing it right - at least for games.

    9. Re:Not even close? See: Java. by Anonymous Coward · · Score: 0

      My thoughts exactly, jvm works on all OSes with no code base changes. Except when it come to directory structure but am sure that they just have a class that manages this

    10. Re:Not even close? See: Java. by Anonymous Coward · · Score: 0

      If you meant to do s/s /'s / everywhere, you forgot: a's, Thi's, run's, i's, enterprise's, developer's, and u's.

    11. Re:Not even close? See: Java. by IsaacD · · Score: 2, Funny

      ...eventually Steve Job's will die.

      deities don't die.

    12. Re:Not even close? See: Java. by ducomputergeek · · Score: 1

      More like HTML5 & javascript. Recently we've been using that coupled with jQtouch and PhoneGap to create web apps that work across iPhone, Droid, Blackberry, and Webkit browsers (Safari, Chrome, and Konqueror).

      --
      "The problem with socialism is eventually you run out of other people's money" - Thatcher.
    13. Re:Not even close? See: Java. by Foofoobar · · Score: 1

      No... i deliberately spell bad to piss off grammar nazis.

      --
      This is my sig. There are many like it but this one is mine.
    14. Re:Not even close? See: Java. by Billly+Gates · · Score: 1

      With adobe its not about its language but its tools.

      How long would it have taken you to write and polish the same app in Java? I bet with Adobe flex and flash you could it in about half the time and it will look all nice and pretty. Since Oracle owns it I doubt they will do anything about this as they only care about boring server ERP apps and stuff like that.

    15. Re:Not even close? See: Java. by dominious · · Score: 3, Insightful

      This runs on the iPhone which Apple won't allow Java code to run on.

      So Java is not flexible because Apple won't allow it on their platform? wtf?

      ... There's no other platform in the world (JAVA) that can boast this level of flexibility (JAVA) -- not even close. (JAVA)

      some /.ers correctly classified this as slashvertisment

    16. Re:Not even close? See: Java. by StormReaver · · Score: 4, Insightful

      This runs on the iPhone which Apple won't allow Java code to run on.

      That's a technicality. The only thing holding Java back from running on the iPhone is Apple's corporate politics. Technologically, Java is capable. As such, I'd give the point to Java.

      Qt is another multi-platform technology that predates (and, like Java, betters) what is being described in this article. Contrary to the article, Java and Qt are much better for cross-platform development, and predate this attempt by more than a decade. This article is way late to the party.

    17. Re:Not even close? See: Java. by ThadMan · · Score: 1

      Guy creates functionality I've been using in Java for 8 years; film at 11.

      http://www.omnis.net/ Been doing it for nearly 30 years. Mac, Windows, Linux, Web, WinMo, iPhone/pad Get off my lawn.

    18. Re:Not even close? See: Java. by pjt33 · · Score: 1

      There are existing toolchains which allow you to write in Java and compile for iPhone and Android. I think they use source-to-source translation into Obj-C for the iPhone one, but on my reading of the claimed novelty ("the exact same code base is used to build versions for five different environments" doesn't preclude that code base going through a lot of preprocessing in some of the build paths) that would still qualify.

    19. Re:Not even close? See: Java. by forkazoo · · Score: 1

      Ahh, but this is compile-once, right!? That makes it so much better! ...but Java already had this. Sure, you have to detect the platform and adjust accordingly - but it's been happening for a huge part of Java's existence.

      In all honesty, you pulling it off in C/C++ makes you a "good" programmer, because your code doesn't actively make the codebase harder to maintain or port. If your code retains the possibility of targeting different architectures and devices, you're doing it right - at least for games.

      C++/qt is compile-once-per-platform, but is that really that big of a deal? It honestly only takes me a few seconds to make a change and rebuild my current C++/qt project. It would take more time to rebuild from scratch, but 3/4 of the bject files are already built whenever I need to build my current changes. And, if you really are that compilation averse, why go with a compile-once toolchain anyway, when you can use a compiler-never toolchain like python.

      The world would be a better place if somebody would just stab Adobe in the teeth.

      And, it's kind of sad if I actually count as a good programmer these days. In my last job, I wrote and maintained a suite of in-house tools for doing a variety of tasks. Mostly python and C++. Everything worked on Linux and Windows, and would have been trivial to bring to OS-X if needed. I ran some of it on my phone when I had to do sutff from inside the datacenter.

      My Job was running Network Operations. I wasn't even a developer. Seriously, a little interest in the subject, and a willingness to take a little effort to do things properly and make even a half-assed evaluation of the available tools, and this stuff just isn't hard to do these days. It was strictly a spare-time thing at that job.

    20. Re:Not even close? See: Java. by MacDork · · Score: 2, Interesting

      Apple would like to see Java die and is doing it's best to kill it

      All of their major online properties run on Java. iTMS, Apple store, Mobile Me ... Seems like odd behavior if the company wants to 'see Java die.' Besides, how else are they going to sell 11 million songs a day? Rails? PHP? .Net?

    21. Re:Not even close? See: Java. by Anonymous Coward · · Score: 0

      Being from Adobe, this probably is a Flash application running on Adobe's Flash-to-iPhone app tool.
      A similar tool for Java could easily (i.e: with few technological hurdles) be written.

    22. Re:Not even close? See: Java. by ameoba · · Score: 1

      But... but... iPhone!!! and iPad!!!!!!

      --
      my sig's at the bottom of the page.
    23. Re:Not even close? See: Java. by Anonymous Coward · · Score: 0

      Actually, Apple aren't really preventing Java from running on the iPhone either. There's nothing to stop someone taking the same approach Adobe did with Flash - have a tool that takes a Java application, and spits out a native iPhone application. The entire JVM and class library is free software, so anyone could do it if they wanted to.

      You'll never get Java applets in a web browser without Apple's help, of course.

    24. Re:Not even close? See: Java. by jonadab · · Score: 1

      > Guy creates functionality I've been using in Java for 8 years

      Meh. Eight years? All we're talking about here is basic source-code compatibility across platforms. That's been around since the seventies, as long as you don't need to do anything inherently platform-specific.

      Let me know when somebody gets *binary* compatibility across all the major platforms, without using a vm. THAT would be worth reading an article about.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    25. Re:Not even close? See: Java. by jonadab · · Score: 1

      > The only people who like it are enterprises and developers

      I would have said enterprises and developers' managers, but what's one one word and a small punctuation mark among friends?

      --
      Cut that out, or I will ship you to Norilsk in a box.
    26. Re:Not even close? See: Java. by Anonymous Coward · · Score: 0

      Steve Jobs

      • will never die.
      • has already died and been replaced by Robot Steve Jobs.
      • has already died and been cloned using Apple's forthcoming iClone product.
    27. Re:Not even close? See: Java. by jonadab · · Score: 1

      Java uses a vm. That's basically cheating.

      If you're going to allow running in a vm to count, then clearly the ultimate in portability is the z-machine, which will allow the same program binary, unmodified, to run on (among other things) Linux, BSD, or any other Unix-like OS, any version of Windows since 2.0, any version of Mac since System 6, VMS, DOS, BeOS, RISC-OS, Amiga, the Apple // series, the Commodore 64, the TRS80, the BBC micro, Tenex, TOPS-20, Multics, ITS, PalmOS, Nintendo Gameboy, AS/400, and certain brands of pocket calculators, plus Emacs. Java isn't even playing in the same ballpark.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    28. Re:Not even close? See: Java. by thePowerOfGrayskull · · Score: 1

      What's amazing is that all the platforms use the same code base. ... There's no other platform in the world that can boast this level of flexibility -- not even close.

      Guy creates functionality I've been using in Java for 8 years; film at 11.

      And with J2ME, your reach is even more broad - any of countless phone models can also run it.

      More generally -- it's essentially what any JIT-compiled or interpreted language is capable of. The *only* difference here is that iPad and similar are playing nice with it. That's not a failing of the other languages, it's a failing of Apple platforms.

    29. Re:Not even close? See: Java. by Thing+1 · · Score: 1

      Good luck in life.

      --
      I feel fantastic, and I'm still alive.
    30. Re:Not even close? See: Java. by radtea · · Score: 1

      Guy creates functionality I've been using in Java for 8 years; film at 11.

      I think there was something lost in editing the summary. It should have read:

      There's no other platform in the world that an ignorant newb like me knows about that can boast this level of flexibility -- not even close.

      Besides Java, C++ is a fully portable language when run against any of the many excellent platform-independent toolkits out there. I've used both Qt and wxWidgets extensively and "Thou shalt have no #ifdefs" is part of the coding standard.

      The thing that's AMAZING is not that some newb can write platform-independent code for a pretty trivial game, but that anyone in this day and age is still restricting themselves to platform-specific code. For really high performance stuff I can see the point, but that is tiny fraction of all code that gets written, and developers should be as a matter of course learning languages and platforms that are inherently portable.

      Being tied to a specific OS is stone age thinking.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    31. Re:Not even close? See: Java. by ckaminski · · Score: 1

      That's okay, because from what I'm reading about HTML5, applets are deprecated anyway.

      I just want my Java based order-entry system to work on my iPhone. Is it so much to ask? Now that I actually have a Mac to test on, I'll see about giving your idea a whirl.

    32. Re:Not even close? See: Java. by Lisandro · · Score: 1

      Guy creates functionality I've been using in Java for 8 years; film at 11.

      Good point, even when I still don't get why people think of Java being "cross-platform". It is cross-platform... if you happened to choose the right platform supporting the right version running just the right version of the JVM. It's even worse if you start adding stuff like Swing, JDBCs, Beans or the gazillon frameworks out there.

      I've honestly had less trouble running Perl code between platforms that i did with Java.

    33. Re:Not even close? See: Java. by exomondo · · Score: 1
      From TFA comments:

      Thanks for all the positive feedback, all. I'll get the code out there as soon as I can (just want to add a few more features).

      WRT Java: I'm a big Java fan, and I certainly acknowledge everything that Java has accomplished. In fact, before I worked for Macromedia and then Adobe, I was a Java developer for 4 years. To my knowledge, however, it's not possible to write Java applications for all the devices that I demoed (and more coming). I'm certainly not trying to take anything away from Java -- just showing what's possible right now with the Flash Platform.

      Christian

      Sounds like someone is starting to back-pedal. Really the only thing is that java doesn't run - a non-technical roadblock - on the iFashion devices, so i would say it's far more than 'close' in terms of cross-platform features, in fact if apple disallow AIR on the iFashionables then it'll end up on-par...at best (64bit linux is worse than java).

    34. Re:Not even close? See: Java. by binkzz · · Score: 1

      some /.ers correctly classified this as flashvertisment

      Indeed.

      --
      'For we walk by faith, not by sight.' II Corinthians 5:7
    35. Re:Not even close? See: Java. by Foofoobar · · Score: 1

      You two. I'm sure you have tons of friends who love to be constantly corrected. Not to mention a spouse who gets turned on by constant verbal abuse (pun intended)

      --
      This is my sig. There are many like it but this one is mine.
    36. Re:Not even close? See: Java. by BalkanBoy · · Score: 1

      Microsoft tried to kill UNIX and its many flavors since Windows NT 4.0... that turned out well as you can see.

      Apple suffers from the all natural opiate of self-love ... or in other words, vanity.

      --
      'A lie if repeated often enough, becomes the truth.' - Goebbels
    37. Re:Not even close? See: Java. by Thing+1 · · Score: 1

      Project much? I responded to your "I am a honeypot for grammar Nazis" comment, and you think I'm correcting? No, I'm honestly wishing you luck, because you will need it if you bait people like that, on-line or off. And I'm sorry but I did not understand the pun.

      --
      I feel fantastic, and I'm still alive.
  5. )avascript by ultrabot · · Score: 1

    How about plain old javascript? I heard it's pretty cross platform as well.

    --
    Save your wrists today - switch to Dvorak
    1. Re:)avascript by Dunderflute · · Score: 1

      An open source project already exists that does just that:

      http://sourceforge.net/projects/quickconnect

    2. Re:)avascript by cbreak · · Score: 1

      JavaScript isn't very cross platform. Some of them run in Internet Explorer, others run in Firefox, Safari, Chrome. Many browsers provide a different API. It's slowly getting more uniform, but Microsoft is still fighting.

  6. Qt libs by TyFoN · · Score: 1

    So he used Qt libs? :)
    Well it doesn't run on apple crap except for OS X, but it runs on just about every other phone.

  7. I don't get it... by Anonymous+Cowar · · Score: 1

    I don't get it...

    If you have the right compiler (like gcc ported to every platform imaginable) and created something that would output plain text in c or c++, wouldn't the code be the same? I thought code base was dependent on the compiler and the more complex it got (in terms of graphics, guis, hardware calls, etc) the more likely it was that you began to hit platform differentiation.

    Also, not sure what your definition of app, game and all that is, but zork running on the zmachines (may disqualify this argument right there) customized (and standardized [fonts, colors, window size]) for each platform runs identically on my phone as it does in a linux console as a mac console as in windows.

    1. Re:I don't get it... by sopssa · · Score: 1

      What do you not get? It's not C and the code is interpreted in runtime. The runtime environment separates you from the OS and instead handles the OS specific things like drawing windows, user input and hardware calls itself.

      Also if you're going to demonstrate multi-platform app/game in 2010, it most likely doesn't mean a console application.

    2. Re:I don't get it... by shutdown+-p+now · · Score: 1

      I had the impression that ActionScript uses JIT compiling lately. Furthermore, for iPhone, didn't they have to make it precompile things to avoid Apple restrictions on interpreters?

    3. Re:I don't get it... by Anonymous Coward · · Score: 0

      Apple have worked around this by compling ActionScript to native as far as I know.
      -Kornel

  8. Re:all those platforms are yours... by sopssa · · Score: 0

    except Java.

    meh. another slashvertisement about a shitty adobe product which is 20 years behind java. when will adobe ever catch up ? probably never. after HTML5 obsoletes flash adobe is sunk.

    Java? It's really sluggish and non-elegant compared to AIR. I'm still not sure how the Java interpreter performs so badly on UI elements. While technically probably OK (it's been losing to .NET though), the mere fact that all Java apps feel sluggish creates a bad image for Java. That combined with the fact that .NET has been constantly instructing new features and tens of languages support it (C#, Basic, Object Pascal, ASP..)

    That combined with the fact that you can develop AIR applications with the great Adobe tools using Flash, Flex, HTML and Ajax.

  9. Same codebase... by Zapotek · · Score: 5, Informative

    holding different platform specific implementations: http://blogs.adobe.com/cantrell/images/ireverse/FB_projects.jpg
    That's doesn't seem all that impressive...

    1. Re:Same codebase... by binarylarry · · Score: 1

      I believe whats happening is the Actionscript stuff is being compiled into various platform specific representations (like TFA states). Which is why you don't see source for each implemention in that Eclipse screenshot, only in the Flex project.

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:Same codebase... by MikaelC · · Score: 1

      The actual code is here: http://github.com/cantrell
      The platform specific files are configuration files and icons and such.

    3. Re:Same codebase... by nahdude812 · · Score: 1

      You're seeing different projects on the same source code. Each project has compile and build settings for the target platform. It's no different from having different makefiles for each target platform of a C++ project. In the IDE you can even have all the target platforms do delta compiles or even full compiles at the same time as each other.

      I haven't seen this code, but I know from first hand experience that you're unlikely to need to find a bunch of #IFDEF's all over the code (like you'll find in a x-plat project of almost any other stripe). It's a single runtime that will compile to a variety of platforms without a lot of hoop jumping.

    4. Re:Same codebase... by josath · · Score: 1

      No, it's the same code, just different project files with different build settings. Imagine if you had one set of .C and .H files, but five different Makefiles for compiling your app to different platforms. Same thing is going on here.

      --
      sig? uhh, umm, ok
  10. Adobe? by nurb432 · · Score: 1

    Um, if its one of their toolkits ill pass. They don't have a great track record of secure or efficient code.

    Besides, hasn't he ever heard of python or java ( or a host of other languages with a common runtime )

    --
    ---- Booth was a patriot ----
  11. Marketing by g051051 · · Score: 4, Insightful

    It's not "one codebase for 5 environments", it's "one codebase for the AIR app, and multiple codebases for AIR itself that had to be ported to 5 different environments." There's nothing even remotely special about that, just empty hype.

    1. Re:Marketing by sopssa · · Score: 1

      But it's one codebase for the developer and that's what counts. Adobe takes care of the app working in every environment, you can just write your app once.

    2. Re:Marketing by g051051 · · Score: 2, Insightful

      The point is that it isn't unique or special, it's just another VM architecture, just like Java, .NET, etc.

    3. Re:Marketing by Belial6 · · Score: 1

      If your going to go that route, then every old console and computer emulator out there qualifies. How many platforms does MESS/MAME/Frodo/SNES9x/Stella/UAE/etc... run on?

  12. Slow news day? by loadrunner · · Score: 1

    Where is CmdrTaco when you need him?

    Write once run everywhere is not exactly a new and groundbreaking concept. The Adobe AIR runtime has been out for over two years now. It includes both the Flash player and WebKit and all Adobe has done recently is to tweak their authoring tools to cover the iPhone and (presumably) the iPad.

    This demo is quite obviously part of the orchestrated media push surrounding the pending CS5 release. The demo is hardly newsworthy in itself.

  13. Only half the battle... by Manip · · Score: 2, Interesting

    While interesting it has been done before and to be honest these "portable platforms" all suffer from the same flaw: the applications they produce aren't native to ANY platform. What I mean is that while they run fine in terms of functionality they all look ugly compared to the environment and don't support typical OS features like hotkeys.

    Look at GTK+. The applications work fine on Windows and OS X but you can tell within a second that they aren't native applications, they're badly ported Linux applications.

    1. Re:Only half the battle... by gabebear · · Score: 1

      the applications they produce aren't native to ANY platform.

      Yep, this would be a terrible way of making utility apps, but this is acceptable for some types of apps, like games, that usually have unique interfaces anyway.

    2. Re:Only half the battle... by centuren · · Score: 1

      the applications they produce aren't native to ANY platform.

      Yep, this would be a terrible way of making utility apps, but this is acceptable for some types of apps, like games, that usually have unique interfaces anyway.

      Best of all for applications that are intended to "take over" the interface. An example that comes to mind is Boxee: when running, it's not supposed to mesh well with your system's interface, it's supposed to *be* your system's interface.

      All the same, I am in total agreement with the criticism of cross-platform software that fail to integrate as native applications. I also don't want to see more web technologies being used "beyond their scope" outside the web, or dragging functionality into the browser that can be done better as a desktop application. I've yet to see anything to convince me this is a good thing for users, while I do know it can be cheap and fast from the development side.

    3. Re:Only half the battle... by Tailhook · · Score: 1

      applications they produce aren't native to ANY platform.

      The applications aren't for people that agonize over the appearance and behavior of their desktop window manager and widget toolkit; people like you. The target audience understands two interfaces; touch screen smart phone and web browser. If you confine yourself to that regime and author apps using cross platform tools you get access to the largest possible audience; everybody. Everybody doesn't care if it looks like OS-X or Win7 or Gnome or something else. They just don't care. Read that last sentence again and again till it sinks in.

      Look at GTK+. The applications work fine on Windows and OS X but you can tell within a second

      Perhaps you're reading this using Firefox, in Windows even, as are many of the people that spend time on Slashdot? GTK's widgets haven't doomed Firefox to failure has it? What widgets are used in the myriad flash video players that millions of people seem to have no difficulty with each and every day? What widget toolkit is Gmail based on?

      The minute details of appearance and behavior of desktop widgets don't matter to iPhone/iPad developers, xbox developers, ps3 developers, Android developers and they haven't ever mattered to web developers. What vanishingly small fraction of developers are left to care about you and your keen widget sensitivity?

      Not enough to worry about.

      --
      Maw! Fire up the karma burner!
    4. Re:Only half the battle... by izomiac · · Score: 1

      Everybody doesn't care if it looks like OS-X or Win7 or Gnome or something else. They just don't care. Read that last sentence again and again till it sinks in.

      If it were just appearance then it wouldn't be such a problem. But it also changes behavior, which prevents users from learning patterns since no two applications behave the same way. It also tends to disrupt stuff like copy and paste, drag and drop, and interaction with other applications. It is very difficult to properly integrate an application into multiple OSes, perhaps impossible if the conventions differ. Heck, few applications make proper use of OS conventions even if they're only available on a single OS.

      But you are right, most programmers lack the skill to do this, so users with "keen widget sensitivity" will just have to groan and figure out how to use the broken interface anyway. IMHO, the groaning and complaining is justified though, just like I complain when a maintenance worker can't figure out how to properly mount a sliding door, so it falls on me when I try to use it. A programming analogy might be the use of poor grammar in every language in a multilingual application.

    5. Re:Only half the battle... by benjamindees · · Score: 1

      wxWindows gives you native widgets on all major platforms but it is somewhat of a pain to use.

      --
      "I assumed blithely that there were no elves out there in the darkness"
    6. Re:Only half the battle... by Anonymous Coward · · Score: 0

      Look at WxWindows (at least on Windows and X11, don't know about OSX)...

    7. Re:Only half the battle... by VZ · · Score: 1

      Perhaps you're reading this using Firefox, in Windows even, as are many of
      the people that spend time on Slashdot? GTK's widgets haven't doomed Firefox
      to failure has it?

      No, it hasn't. But this might be explained by the fact that Firefox doesn't
      use GTK+.

      And the rest of your comment is about as accurate...

    8. Re:Only half the battle... by Anonymous Coward · · Score: 0

      No, thats coz GTK looks shit. With AIR, Silverlight, and the new Quartz, there is no native look and feel. I'm using tweet deck on OSX for example and it looks right at home. adobes Ideas app looks cool on my iPad.

      that said I run java on my iPhone and ipad no problem.

  14. iReverse by AndGodSed · · Score: 3, Funny

    Wonder how long it will take Apple to sue because he dared use i as the first letter of his program name...

    1. Re:iReverse by Funnnny · · Score: 1

      Fuck that, why does people have to use that fuck letter

    2. Re:iReverse by Funnnny · · Score: 1

      Sorry to reply myself but I just didn't use any "i"

    3. Re:iReverse by Anonymous+Cowar · · Score: 1

      Apple has recently renamed it's legal department to iSue

    4. Re:iReverse by BikeHelmet · · Score: 1

      Apple doesn't actually own trademarks on i[Everything], and they don't have a right to i[Everything]. Whatever they use first is theirs, but nothing more than that.

      Hell, there's a VOIP software company called iCall. That's a name I'm sure they'd love to have snatched up.

    5. Re:iReverse by Anonymous Coward · · Score: 0

      Wonder how long it will take Apple to sue because he dared use i as the first letter of his program name...

      This being tax season, I'd like to see Apple suing the iRS

  15. Re:all those platforms are yours... by binarylarry · · Score: 4, Insightful

    The current Java runtime makes Flash/AIR/.NET/Whatever look like a retarded snail trying to climb a salt hill. It's much faster than the competition, it even competes with statically compiled native code in terms of execution times. You rarely even use Java's interepter, the runtime compiles bytecode on the fly to native code and executes that.

    Swing has traditionally sucked, which is why SWT was created.

    Now tools for things like this are where Flash beats Java. Java really only has tools for programmers, not psuedo-programmer artist types who typically create cool things in Flash. Sun seems to have never gotten this aspect.

    --
    Mod me down, my New Earth Global Warmingist friends!
  16. Linux...not Ubuntu by shinzawai · · Score: 0, Troll

    I read the article and it says Linux support. At no stage did the page specify flavour. kdawson, Ubuntu does not equate to all of Linux. (It does equate to Linux for the newbie sheep masses).

    1. Re:Linux...not Ubuntu by Voulnet · · Score: 1

      Wow, you guys are now discriminating against other Lin-frakking-ux users? You guys have no friends...

    2. Re:Linux...not Ubuntu by Anonymous Coward · · Score: 0

      But we know AIR runs on lots of Linux flavors, not just ubuntu. There's no reason to think it won't run on other linuxen.

    3. Re:Linux...not Ubuntu by Anonymous Coward · · Score: 0

      What can one say, some Linux users are like the Simpson's Comic Book Guy character. Once one Linux distribution is finally adopted by more than 100 people it's no longer credible, it's for sheep.

    4. Re:Linux...not Ubuntu by shinzawai · · Score: 1

      Actually, I have no friends nor sleep...hence I'm up at 4:30am typing an anti Ubuntu post. I'm just over the rabid pro-Ubuntu agenda.

      They're all the same peoples!

    5. Re:Linux...not Ubuntu by graft · · Score: 1

      If you had bothered to watch the demo video, you'd see that the linux desktop he plays it on is, in fact, recognizably Ubuntu.

      I can't bring myself to adequately ridicule your "newbie sheep masses" comment. It's puerile enough that it ridicules itself, I suppose.

    6. Re:Linux...not Ubuntu by markdavis · · Score: 1

      I know where you are coming from, Voulnet... I am irritated also. Won't stop you from being down-modded, though :( Can't wait to see the next multi-platform announcement about how some new program runs only one of Mandriva, Fedora, SuSe, or Ubuntu, instead of just saying "Linux".

      Regardless, cross-platform development is always a good thing (as long as it is at least the current "biggest three"- MS-Windows, MacOS, and Linux).

    7. Re:Linux...not Ubuntu by Voulnet · · Score: 1

      They want to bring Linux to your grandma!

    8. Re:Linux...not Ubuntu by Lemming+Mark · · Score: 1

      In the video, the developer is demonstrating using Ubuntu and I think he mentions it specifically. Maybe that's where the choice of wording came from.

    9. Re:Linux...not Ubuntu by pigphish · · Score: 1

      You're a dingbat (nuff said)

  17. Flash and HTML5 make Java look efficient. by Anonymous Coward · · Score: 3, Insightful

    When the industry as a whole moved from C and C++ to Java in the late 1990s, one of our main problems was the bloat that Java brought to the table. Memory consumption was a real issue, as was its slow nature. Things have improved somewhat, mainly driven by vast hardware advances. 15 years on, Java is finally usable.

    Now, when we moved from C and C++ to Java, we did get a huge productivity boost, even if our apps themselves were more bloated and ran slower. Apps that would've taken us a year to develop using C++ could be finished in a couple of months using Java. We could also develop much more complex software than we could using C++. So Java did offer some real benefits, and that's why it became popular.

    We can't say the same for Flash and HTML5, however. They both suffer from far worse bloat than Java ever did. For instance, take watching videos on YouTube. I just did that using Firefox on Linux, and the Firefox process is now using 3966 MB of RAM. That's its resident usage, not virtual usage, as well. Its virtual usage is currently 4512 MB.

    HTML5 isn't much better than Flash. I've tried some demos that cause similar memory usage problems, even in Chrome. And they run so fucking slowly, too.

    So not only do Flash and HTML5 it offer a worse runtime experience for the user, but they're much more limited than Java, and much slower to develop with. They're failures all around. Unfortunately, a lot of former PHP developers from the 1990s and early 2000s (ie. idiots) have now become managers, and somehow think that web-based technologies are beneficial for users and developers. Clearly, they're not. They make everyone's lives more miserable.

    1. Re:Flash and HTML5 make Java look efficient. by Anonymous Coward · · Score: 0

      I don't know about you, but Flash and JavaScript + HTML 5 features can both have fairly quick development time. It is true they may not be as fast as Java (that depends on the browser and platform), but resurgent competition in the browser arena is making JS much quicker than it used to be. Now, JS is often JIT'd into native code, just like quite a few languages, without the slowish startup speed of the JRE. As browsers add hardware acceleration to HTML5 stuff, things will only get faster. Both the IE9 preview and Minefield support this in some way or another, and it makes a big difference on more complicated graphics related pages.

      As far as Java goes, Java is not as massively slow as it used to be. It has gained a far amount of speed, and there are cases where it (along with other languages with runtimes) can meet or even exceed C or C++. Do not underestimate the power of being able to produce products faster. Developer time is money, and if your application doesn't need you to use every last bit efficiently to run decently, the overhead of Java (or C#, or Python, Ruby, etc.) makes little difference. If you had mentioned that Java GUIs can look unnatural, then maybe you would have a point.

    2. Re:Flash and HTML5 make Java look efficient. by Jahava · · Score: 5, Informative

      When the industry as a whole moved from C and C++ to Java in the late 1990s, one of our main problems was the bloat that Java brought to the table. Memory consumption was a real issue, as was its slow nature. Things have improved somewhat, mainly driven by vast hardware advances.

      Interesting take - unfortunately incorrect. Java's performance issues were almost entirely due to the interpreted nature of its code. When it was originally released, all Java code was interpreted by the JVM. The result is similar to running code through an emulator ... often usable, but certainly not competitive with native applications. The introduction of Just-in-time compilation to Java (via HotSpot and similar runtime engines) made all the difference in the world. By Java 1.2 (1998), the JRE came equipped with HotSpot and basic performance became an (often inappropriately cited) non-issue. Hardware advances played as much a role in speeding up Java as it did any other language.

      Now, when we moved from C and C++ to Java, we did get a huge productivity boost, even if our apps themselves were more bloated and ran slower. Apps that would've taken us a year to develop using C++ could be finished in a couple of months using Java. We could also develop much more complex software than we could using C++. So Java did offer some real benefits, and that's why it became popular.

      More info can be found with Google.

      Most of the benefits offered by Java are those bestowed upon an application by virtue of running in the Java Runtime Environment (JRE), including automatic memory management (garbage collection), strong exception handling, cross-platform portability, sandboxed code execution, security controls, dynamic class generation, to name a few. Java's syntax is also familiar and effective, and caters to many newer programming models and paradigms. Nothing about Java allows applications to be more complex than they were before... I dare you to find something as complex as the Linux Kernel, or something whose complexity is handled better in Java than via a C++ toolkit like QT. Java's advantages have always been related to its abilities to simplify coding challenges, allowing more effective, secure, and functional code to be produced faster (and with a lower learning curve).

      We can't say the same for Flash and HTML5, however. They both suffer from far worse bloat than Java ever did. For instance, take watching videos on YouTube. I just did that using Firefox on Linux, and the Firefox process is now using 3966 MB of RAM. That's its resident usage, not virtual usage, as well. Its virtual usage is currently 4512 MB.

      This is certainly a bit subjective. For example, my Firefox running on Linux watching YouTube is only using 80MB of memory, with Flash's "npviewer.bin" adding another 10MB. However, RAM usage is not a bad thing. Traditionally, when RAM came in far smaller quantities than it did now, developers frequently traded extra CPU cycles and disk I/O to conserve memory. Now, it's almost the opposite. A good application, especially a foreground application like a web browser, will use RAM liberally to conserve bottleneck resources like CPU, bandwidth, and I/O. Most of the time, the application profiles the environment that it is running in and chooses how much RAM it will use for optimization based on that profile. A system with 1GB of RAM will likely have big applications like Firefox use significantly less memory than one with 8

    3. Re:Flash and HTML5 make Java look efficient. by BemoanAndMoan · · Score: 1

      ...somehow think that web-based technologies are beneficial for users and developers. Clearly, they're not. They make everyone's lives more miserable.

      How did you go from A to R to 7 and get marked "insightful?" Having to read a vapid and unrelated conclusion based upon a fractional slice of pseudo-logic (flash sucks = web-based technology sucks) is much more likely to make people miserable than anything you seem to have concluded. Is your argument that desktop-based applications never do this? Is your example put forth as "all web technology is bloat, for example Flash ... "

      Most web-based technologies run the bulk of their processing server-side, with only the rendering on the client side. For that reason alone non-client side web applications (i.e. non-Flash/Java based) are going to be *way* more resource friendly for the client.

      You want a multi-platform app ... your friggin' looking at one!!!! You want a rich application experience? Learn jQuery, YUI/etc. and (on the latest browsers) you'll have minimal bloat.

      Get with the program, Grandpa (< an inference, not a logical deduction).

    4. Re:Flash and HTML5 make Java look efficient. by Anonymous Coward · · Score: 0

      3966 MB of RAM? Do you have 1000 tabs open? The most I've seen Firefox run at is about 350 MB...

    5. Re:Flash and HTML5 make Java look efficient. by IamTheRealMike · · Score: 1
      That's a pretty bizarre take on performance.

      However, RAM usage is not a bad thing. Traditionally, when RAM came in far smaller quantities than it did now, developers frequently traded extra CPU cycles and disk I/O to conserve memory. Now, it's almost the opposite. A good application, especially a foreground application like a web browser, will use RAM liberally to conserve bottleneck resources like CPU, bandwidth, and I/O.

      You realize that blowing the physical RAM limit on a desktop will trigger swapping and potentially fatal thrashing, blowing the RAM limit on a swapless device like a phone or many servers will result in the death of the process?

      The fact that people still hate running desktop Java apps even after all these years of optimizations in the JVM can largely be attributed to this problem. The Sun guys chose to optimize for CPU time over memory usage, often to an insane degree. For instance the String class represents all strings using UCS2 internally - if that isn't bloat I don't know what is!

      Why are programs like Chrome written in C++ anyway? It's because everyone knows you can't make responsive apps in Java, and the reason you can't has nothing to do with fancy runtime compiler optimizations and everything to do with inability to carefully control working set size.

    6. Re:Flash and HTML5 make Java look efficient. by moonbender · · Score: 1

      Swing usually doesn't look native to the platform, but Flash/HTML GUIs sure don't either. That said, since it's running in a browser, it's somehow a bit less jarring.

      --
      Switch back to Slashdot's D1 system.
    7. Re:Flash and HTML5 make Java look efficient. by moonbender · · Score: 2, Informative

      The GP didn't defend wasting memory, he said that on devices that do have ample memory, it's only smart to use it. Hard to find a fault with that.

      For instance the String class represents all strings using UCS2 internally - if that isn't bloat I don't know what is!

      Seems a fairly widespread practice: "UTF-16 is the native internal representation of text in the Microsoft Windows 2000/XP/2003/Vista/CE; Qualcomm BREW operating systems; the Java and .NET bytecode environments; Mac OS X's Cocoa and Core Foundation frameworks; and the Qt cross-platform graphical widget toolkit." (Wikipedia with citation needed, so beware.) I guess for C programs the "internal representation" is just relevant for interacting with the OS API?

      Why are programs like Chrome written in C++ anyway? It's because everyone knows you can't make responsive apps in Java, and the reason you can't has nothing to do with fancy runtime compiler optimizations and everything to do with inability to carefully control working set size.

      Not saying you're wrong, but for what it's worth that's not a very good example. Chrome is C++ because WebKit is. WebKit is C++ because KDE is. Java's responsiveness has nothing to do with why KDE is C++.

      --
      Switch back to Slashdot's D1 system.
    8. Re:Flash and HTML5 make Java look efficient. by Anonymous Coward · · Score: 0

      "For instance, take watching videos on YouTube... the Firefox process is now using 3966 MB of RAM"

      Something is critically wrong with your machine, friend. On the other hand, every Java app I've ever run on my machine has performed terribly. Notably Synchro SVN; just bringing the app to the front cripples my machine.

      "So not only do Flash and HTML5 it offer a worse runtime experience for the user"

      The typical experience I've had with Java is worse than the worst experience I've had with Flash or HTML.

      "...but they're much more limited than Java, and much slower to develop with."

      Have you ever developed a Flash app? I can tell you haven't; it's pretty quick.

      "They're failures all around... They make everyone's lives more miserable."

      Sounds like you have an itch to scratch. But know this: your perception of Java and Flash are completely incongruous to mine, and probably most other people's as well. There's a reason why there aren't any Java game portals or video sites.

    9. Re:Flash and HTML5 make Java look efficient. by Anonymous Coward · · Score: 0

      When the industry as a whole moved from C and C++ to Java in the late 1990s

      Interesting ... which industry is that?

    10. Re:Flash and HTML5 make Java look efficient. by 0xdeadbeef · · Score: 2, Insightful

      > For instance the String class represents all strings using UCS2 internally - if that isn't bloat I don't know what is!

      Because if 7-bit ASCII is good enough for America, it ought to be good enough for everybody!

    11. Re:Flash and HTML5 make Java look efficient. by Anonymous Coward · · Score: 0

      When the industry as a whole moved from C and C++ to Java in the late 1990s
      Interesting ... which industry is that?

      i suspect it's from the 'failed my software engineering degree' industy
      we use 100s on M9000s at work (the typical Slashdot Java 'pro' won't know what that is, try googling for it),
      and talking to Sun even their engineers laugh about Java performance. it's C, C++ and assembler for
      performance, baby. get used to it,

    12. Re:Flash and HTML5 make Java look efficient. by CAIMLAS · · Score: 1

      A big part of the problem for Java was that it came out too soon: at the time, it was ahead of the pack by quite a bit. It was, for all intents and purposes, the first mainstream CLR, giving it performance issues that its immediate competitors (mainly C++ and VB) didn't have.

      Combine that with the fact that they really did release it "too soon" (the development tools were seemingly pretty glitchy, from what I recall) and that general stability was likewise poor (whether it was due to the platforms it ran on or the Java platform itself, I don't know).

      I'd argue that the other major part of Java's problem is that Java was largely targeted (though not exclusively) at browser-borne applications. Having non-native windowing elements likely didn't help either. Combined with the previous issues, this all led to a very significant "poor user experience": programmers and users alike had written off Java by the time .NET rolled around, and people didn't look back or realize it's a comparable language.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    13. Re:Flash and HTML5 make Java look efficient. by introspekt.i · · Score: 1

      I use ISO-8859-1, you insensitive clod!

    14. Re:Flash and HTML5 make Java look efficient. by mswhippingboy · · Score: 1
      Wow, I've seen some arrogant and pompous posts on ./ but this one strikes such a tone of condescension that it demanded at least as much scrutiny as apparently you applied to the parent.

      Most of the benefits offered by Java are those bestowed upon an application by virtue of running in the Java Runtime Environment (JRE), including automatic memory management (garbage collection), strong exception handling

      Umm, no. While the JRE provides the aforementioned facilities, I hardly think they are "bestowed upon an application by virtue of running in the Java Runtime Environment (JRE)". Garbage collection has been available for years in add on libraries for C++ - guess what? - No JRE!

      Strong exception handling? - C++ has had that for years - again with no JRE!

      Granted, the (sandboxed code execution) could only be provided through a JRE of some sort, but security controls ?. What the hell is that? If you are referring to bytecode verification, then why not say so.

      And what about dynamic class generation? This is a language feature. While most languages that support introspection or dynamic binding (which is what I believe you are referring to here - again you weren't clear) are implemented on top of a runtime of some sort, it's certainly possible to implement this without a runtime environment (ever heard of SOM?).

      I'm a long time Java advocate and I almost have to hold my nose when I have to develop in other languages (although I find C# close enough to be somewhat tolerable), so my intent is not to argue what I believe was the main point of your post, but personally attacking those that are misinformed does nothing to further the case for Java; rather it make Java advocates come across as rude and arrogant.

      --
      Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
    15. Re:Flash and HTML5 make Java look efficient. by Anonymous Coward · · Score: 0

      Sorry, but Java can't make God Of War 3.

    16. Re:Flash and HTML5 make Java look efficient. by jonadab · · Score: 1

      > Because if 7-bit ASCII is good enough for America, it ought to be good enough for everybody!

      In a language with high-level data types, a string can be automagically promoted to and stored in UTF-4096 (or whatever the heck size we're up to these days) if and when it contains any super-large ginormous characters from the Additional Supplementary Auxiliary Superfluous Multi-Para-Meta-Lingual Plane where they put the encodings for all three hundred and eighty-seven trillion ancient Iconian glyphs, or whatever it is you're using.

      Meanwhile, back here on Earth, strings that happen to only have reasonably short characters in them can be stored in something a trifle more compact. This can and should happen automatically, with no change in the program code. It's no harder for the language developers than setting things up so that numbers like 2^4984987 can be represented in a data type that can hold them while numbers like 13 are still represented in a normal-sized integer. Or making arrays and strings automatically resize themselves as needed. Or any of the other data-type magic that high-level languages do behind the scenes.

      In practice an eight-bit charset is generally used as the default internal representation rather than ASCII, because the advantages of byte-alignment outweigh the one bit that could otherwise be saved per character. (I do know of one ultra-memory-conscious platform that actually uses a 6-bit encoding for most text, with a trigger character to switch "alphabets" to get at any other characters that are needed occasionally, but that's a truly extreme case, and it wouldn't be practical for most purposes.)

      --
      Cut that out, or I will ship you to Norilsk in a box.
    17. Re:Flash and HTML5 make Java look efficient. by Jahava · · Score: 1

      Granted, the (sandboxed code execution) could only be provided through a JRE of some sort, but security controls ?. What the hell is that? If you are referring to bytecode verification, then why not say so.

      Because that was a sentence in a long post, and it was off-topic enough already :)

      To answer your questions: plenty of the things you said are true, but they are not part of the language. Libraries that add them are a poor and spotty replacement for native language / runtime support. They work, and they can work well, but Java has them integrated deeply into the language, runtime, and semantics, and used by default.

      And by "security controls" I was brain-farting over the name of the SecurityManager classes and their fundamental integration into the sandboxed environment model.

      Really, it was a bear of a post I was pretty sure would be modded Offtopic anyway. Responding to an AC over a tangentially-relevant topic often is. Rereading it, I don't think I got very condescending until the end. I have to admit I was put off a bit by the OP's usage of phrases like "failure", "idiots", and "clearly". That, being almost 100% incorrect, and drumming up Java 1.1 grievances are just a short-circuit to my bad side.

    18. Re:Flash and HTML5 make Java look efficient. by thePowerOfGrayskull · · Score: 1

      hings have improved somewhat, mainly driven by vast hardware advances. 15 years on, Java is finally usable.

      That's a bit disingenuous. Aside from the changes brought to the table w/ JIT compiling, keep in mind that Java has been running on hardware far less capable than a desktop for many years now. Blackberry has been running a pure java platform, back when their devices had 8MB of memory available (5810) and (by today's standards) ridiculously slow processors. Low-end phones and embedded devices are running Java today, as constrained or even more so than that.

      So not only do Flash and HTML5 it offer a worse runtime experience for the user, but they're much more limited than Java, and much slower to develop with. They're failures all around. U

      Depends how you define "failure", especially for Flash. If you consider nearly universal market penetration of a cross-platform runtime as failure, then you're right -- Flash is a total flop. Love it or hate it, it's not a failure in any practical sense of the word.

    19. Re:Flash and HTML5 make Java look efficient. by Anonymous Coward · · Score: 0

      No one wrote Java off, it's the most widely used programming language in the world.

    20. Re:Flash and HTML5 make Java look efficient. by IamTheRealMike · · Score: 1

      Because strings that are ASCII or UTF-8 only are remarkably common in programs. Think URLs, XML tag names, symbol names, any kind of non-user facing string.

    21. Re:Flash and HTML5 make Java look efficient. by pjt33 · · Score: 1

      Sure, you can use UTF-8 rather than UTF-16, but that's not such a great choice for a general-purpose string class. It's convenient for all characters to have the same width because then get-character-at-index and substring use simple pointer/array-index arithmetic rather than starting at the start of the string and working forward, decoding as you go.

    22. Re:Flash and HTML5 make Java look efficient. by jgrahn · · Score: 1

      When the industry as a whole moved from C and C++ to Java in the late 1990s

      Uh, speak for yourself, or define "the industry". I've used C, C++, Perl, Python, Tcl (yuck) and shell script over the years, but only once, briefly, have I had to touch Java code.

      Apps that would've taken us a year to develop using C++ could be finished in a couple of months using Java. We could also develop much more complex software than we could using C++.

      I find that hard to believe (unless of course all of you know Java well and C++ badly).

    23. Re:Flash and HTML5 make Java look efficient. by ckaminski · · Score: 2, Insightful

      The biggest failure of Java was the whole "applet" integration mess with the browser. Slow to download, mixed-bag JREs that were usually mutually exclusive (Java evolved fast back then). and 80% of the time the applet just didn't load or start.

      Left the whole industry with a sour taste in it's mouth. Could be why I've heard HTML5 is dropping applet support.

    24. Re:Flash and HTML5 make Java look efficient. by thebjorn · · Score: 1
      You are obviously confused and living in the US. Ascii and utf-8 are only similar if you limit yourself to 7-bits, which isn't true except for the small minority of people living in only English speaking countries (with users from the same area).

      URLs are most definitely user facing and it is very important that they can handle local data. Just imagine if you couldn't use e.g. the letter "c" in urls. You could hack together work-arounds like mikrosoft.kom and see-nn.kom, which is what the entire world was/is doing. Much better to not have such artificial limitations, so you can use (/. is an excellent example of why this is/should be important for USians also) http://www.datakortet.no/kandidater/kjøp-tester/ and http://b/åtførerregisteret.no/

  18. No other Platform? by Cyberllama · · Score: 1

    What about HTML5? Of course, then you're more forced to be open-sourced, but still -- it achieves the multi-platform goal very easily.

    1. Re:No other Platform? by crunzh · · Score: 1

      While I don't like flash and AIR, you cant compare them to HTML5, its just a markup language. HTML5 + javascript comes closer but they can't still do all that AIR can do.

      --
      Visit http://www.crunzh.com/ for free software. Mac/Lin/Win
  19. Anyone else old enough to remember CP/M? by DadLeopard · · Score: 1

    This reminds me of both the benefits and shortcomings of CP/M! A CP/M program would run on multiple different machine and processors without modification, but it limited you to the lowest common denominator as far as utilizing the hardware of each different machine was concerned, This is like CP/M for different OSes instead of different processors, so you are limited to the lowest common denominator as far as special OS dependent features are concerned!

  20. Layout stuff more significant than cross platform? by Lemming+Mark · · Score: 1

    Part of the cleverness here seems to be that the app is (somehow) doing dynamic changes of layout, not just scaling or flowing widgets into a given area, so that you end up with a GUI that looks reasonably sane on different screen sizes, aspect ratios and orientations. That's quite a nifty trick although I don't see any reason why it shouldn't be available in other cross-platform development environments - maybe it already is. Still, I had heard that Flash is good for UI stuff even though we all hate having to run it to access web content.

  21. It's called Java (J2ME)! Look it up! by Hurricane78 · · Score: 1

    Seriously. Been there, done that.* Years ago.
    All phones. Plus PCs (Linux,BSD,Mac,Windows,etc). Plus many PDAs. Plus settop devices. Plus a microwave. Plus some cars.
    Without a single change in the code base. And for most of them not even a recompilation.

    Java works as advertised... if you do it properly.

    (Yes, of course compatibility goes out the window, as soon as you start depending on proprietary libraries which are only available for some phones. But if you want it to run everywhere: Don’t do that!! Simple. And if you really want the features, just do a check, and only load those parts, if the feature is actually available. Also simple.)

    * Except for the iPhone of course, because it’s the only phone without Java, because Jobs is an arrogant totalitarian dick.

    --
    Any sufficiently advanced intelligence is indistinguishable from stupidity.
    1. Re:It's called Java (J2ME)! Look it up! by DLG · · Score: 1

      Funny. You call someone totalitarian because they choose to do something different than all the other phone makers. I would think requiring everyone to support Java would be totalitarian.

      Maybe you don't really use the word properly. Maybe what you mean is, independent and competitive. Is that bad too?

      For years Sun did nothing to get Java to work well on the Mac. Do you wonder that Apple doesn't really feel like relying on either them or Adobe to provide a user experience for their phones or tablets?

    2. Re:It's called Java (J2ME)! Look it up! by shutdown+-p+now · · Score: 1

      Android doesn't do J2ME, either. Nor do most WinMo phones.

      Yes, it can be added as an app - but you cannot rely on users having it installed.

    3. Re:It's called Java (J2ME)! Look it up! by BikeHelmet · · Score: 1

      Maybe you don't really use the word properly. Maybe what you mean is, independent and competitive. Is that bad too?

      No no - their stance on Java is really messed up.

      They've made promises, but never get around to porting/updating/creating up to date JRE's.

      Older versions of OSX that were promised Java 1.6 are still on Java 1.5 or earlier.

      For years Sun did nothing to get Java to work well on the Mac.

      Back in the PPC days? Sun wanted to port it as soon as x86 was an option. They ported it to Linux - an arguably smaller marketshare - and they did a good job. If Apple had let them, we'd have a better Java situation on OSX than we do today.

      I love coding in Java - it's fast enough that I usually don't have to go deeper. I don't have an iPhone, because I'm not too fond of Objective C. :P

    4. Re:It's called Java (J2ME)! Look it up! by theurge14 · · Score: 1

      For years I've heard this from the Java camp.

      I remember back in the late 90s when Lotus put together that Java-based office suite that was supposed to change the desktop. Write once run everywhere was promised, OS/2 users would be saved and there was even talk of Microsoft's stranglehold on the office suite would be broken. What we got instead was an office suite that took near 5 minutes to open a document with no OS hotkeys, no OS interaction with other apps and an overall terrible interface.

      Since those days we've heard about Java's improvements and how it's "just as good if not better than C", etc. But every time anyone downloads a desktop app for Java they find it still takes long to load, run sluggishly, doesn't match the native OS UI at all and generally has a terrible interface.

      I'm well aware that Java works great for server, I'm sure it works great on phones, but for the last 15 years on the desktop it's never been good enough.

  22. Ring Ring by Anonymous Coward · · Score: 0

    The 90s are calling.

  23. Re:all those platforms are yours... by markov_chain · · Score: 1

    psuedo-programmer artist types who typically create cool things in Flash

    Best. Comment. Ever. :)

    --
    Tsunami -- You can't bring a good wave down!
  24. Two points by Blakey+Rat · · Score: 4, Interesting

    First of all, Air is broken for GUI apps (on Windows and OS X at least.) It gets many, many basic details of how widgets are supposed to work completely wrong. And, shock and amazement, most of the wrongness is the exact same wrongness that Flash widgets have-- gee! You'd almost think it's just a crummy Flash runtime!

    Secondly, RealBasic can target three platforms from a single codebase (Mac, Linux, Windows) and gets two of them completely right. (Linux may be right, but I don't know enough about it to really verify it.) So this is nothing new-- that capability has been in RealBasic for at least 4 years now.

    I love these breathless excited summaries. The only real point to take from this is Christian Cantrell is completely ignorant of Flash's competitors in this space. (And kdawson loves hype, the hype-ier the better.)

    1. Re:Two points by Anonymous Coward · · Score: 0

      AIR broken for GUI apps? What on earth are you talking about? Do you have an example?

      I'm guessing you're talking about using the Flex framework, but I'm not even certain of that.

      And as for RealBasic: the last time I saw a RealBasic app, it was 2003 and an idiot wrote it. You should pour through the PerversionTracker review archive ( http://www.perversiontracker.com/oldarchives/index.html ), which mostly focuses on RealBasic-based software.

      Here's a hint: it stinks.

    2. Re:Two points by v1 · · Score: 1

      I was rather wondering why RB wasn't listed in the tags below the story. Sort of a "hey guy I think you forgot something?" moment.

      That being said, I was big into RB in version 1-4 (I worked with Andrew on debugging) but back then the windows support was shakey. A lot of features didn't work, many didn't work the same, and you had to do a lot of #IF's with separate code in places for mac and windows. Linux support wasn't there at all really.

      Looking at 08-09 recently, the windows support is surprisingly good. Back in version 4 day, you were required to debug both environments from the very start of the development process, because trying to track down oddities in how one platform differed from another was a complete nightmare if you suddenly decided 4 months in that you wanted to see how it ran on windows and ticked the box. But with 09 I was indeed able to tick the box and it basically ran correctly. Some minor tweaks, mostly to the GUI elements, but definitely useable.

      The greatest weakness of RB nowadays seems to be the idiots trying to develop professional software with it. Not that RB can't handle it... I've seen and done things with RB that would bury anyone trying to implement them in most other languages in anywhere near the same timeframe. (afaik RB is king of the mountain for RAD) The problem is that now that anyone can produce powerful apps, even coding retards can try to sell their wares. Our POS system is made with RB (NOT something they advertise! tho I recognized the binaries immediately) and little stupid things like not setting focus on a window after opening it, problems like that which persist after a year of development... makes me want to stomp down there, rip the source out of their hands, spend a single day with it, and get rid of all the annoying bugs they seem incapable of fixing.

      Anyway I stray a bit. The basic thing to keep in mind is just because a language can cross-compile, doesn't mean you just tick the box and you're good. It rarely works out that way. Good languages will give you only a minimal headache, and won't require you to start from Day One with the second target in mind. I take a "I'll believe it when I see it" attitude here, lets see how some people fair in real-world examples before passing judgement on just how good this "universal target" language really is.

      --
      I work for the Department of Redundancy Department.
    3. Re:Two points by abhi_beckert · · Score: 1

      [RealBasic] gets [Mac] completely right.

      Woah!!! Stop right there. I love RealBasic, I wrote my first real app in it, and thousands of people told me they loved it. But there's no way it's "completely right".

      It's good enough for simple apps, and better than flash. But vastly inferior to Cocoa.

    4. Re:Two points by abhi_beckert · · Score: 1

      I work with PHP every day, and feel exactly the same way.

      There's nothing wrong with PHP, it's great! My colleagues and I write wonderful code with it whenever our client's give us enough budget. But I have almost never seen any third party PHP software or sample code which I would call "good". It's all riddled with bugs and security holes.

      I think it's a barrier-to-entry problem.

    5. Re:Two points by kronosopher · · Score: 1

      I agree completely. The entry level of PHP is so low it effectively encourages bad practice, allowing programmers to get away with things that no sane environment would allow. That said, in the hands of a professional, those same "shortcuts" can be immensely powerful and greatly increase productivity. PHP runs about 30% of the web because it has that power and is relatively simple to learn.

  25. Bollocks by SpinyNorman · · Score: 2, Informative

    There's no other platform in the world that can boast this level of flexibility -- not even close

    Qt will let you run a single code base on OS/X, Windows 7/etc, Linux and any platform that Qt/Embedded has been ported to. Not just trivial apps like Reversi, but also ones using multithreading, networking, etc. There's also a fair degree of cross-platform multimedia support too, although that's a work in progress. Personally I choose to use PortAudio for cross-platform audio aupport together with Qt.

    1. Re:Bollocks by centuren · · Score: 1

      There's no other platform in the world that can boast this level of flexibility -- not even close

      Qt will let you run a single code base on OS/X, Windows 7/etc, Linux and any platform that Qt/Embedded has been ported to. Not just trivial apps like Reversi, but also ones using multithreading, networking, etc. There's also a fair degree of cross-platform multimedia support too, although that's a work in progress. Personally I choose to use PortAudio for cross-platform audio aupport together with Qt.

      Are you talking specifically about this, or is that just Nokia's implementation of it?

    2. Re:Bollocks by mirix · · Score: 1

      Qt was originally owned by a (Norwegian? IIRC) firm called trolltech, that had it dual licensed - proprietary & LGPL, If I'm not mistaken.

      A couple years back, Nokia bought it out, and recently GPL'd it. (but a prop. lic. is still available for outfits that don't want to meet (L)GPL restrictions, and want to pay instead - support is available for prop. licensed versions too, iirc).

      I haven't played with Qt too much, but I made a couple simple apps that worked great on win32 and linux, no headache. Didn't have an OSX box handy, but it's supposed to be equally painless.

      KDE is entirely Qt, from what I remember, for an example of a big project. Qt is pretty neat, you should give it a shot sometime.

      --
      Sent from my PDP-11
    3. Re:Bollocks by mirix · · Score: 1

      Ahh bugger. Trolltech had it under commercial & GPL. Nokia added an LGPL option. /need coffee.

      --
      Sent from my PDP-11
    4. Re:Bollocks by centuren · · Score: 1

      I'm familiar with Qt and Trolltech, as well as it's role in KDE, specifically KDE4. I wasn't aware of the extent the cross-platform efforts have reached, though, so I was wondering if that was a separate effort. It seems to be much more comprehensive than my perception of just the KDE folk working to port their office suite to Windows. I'll definitely take a closer look at Qt with this new information.

    5. Re:Bollocks by VisceralLogic · · Score: 1

      I'm currently developing a Qt application in Windows, with the intent to have it be source-compatible with a Linux version.

      Last time I used a Qt application on OS X it looked like crap, but on Windows and Linux it looks fine.

      --
      Stop! Dremel time!
  26. You could do this in just a browser by Anonymous Coward · · Score: 0

    This is something you could hack together and have run multiplatform with some javascript, css, a bit of html, and some images.

    If you're trying to prove the usefulness of AIR for cross platform development, you might pick an example that's not already pretty easy to do without using AIR.

  27. Not even close? Ha! by Adrian+Lopez · · Score: 1

    In other words, the exact same code base is used to build versions for five different environments. There's no other platform in the world that can boast this level of flexibility -- not even close.

    Unity3D can produce binaries Windows, MacOS X, iPhone, iPod Touch, iPad and Wii. Upcoming version will also support Xbox 360, Playstation 3 and Android.

    --
    "In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
    1. Re:Not even close? Ha! by tepples · · Score: 1

      But then how do you actually run something on a Wii, Xbox 360, or PS3?

    2. Re:Not even close? Ha! by Adrian+Lopez · · Score: 1

      But then how do you actually run something on a Wii, Xbox 360, or PS3?

      You need to be a licensed developer. The point is that the same exact code and project layout may be used to produce binaries for all those platforms.

      --
      "In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
    3. Re:Not even close? Ha! by tepples · · Score: 1

      Say I develop a video game using Unity, but it's in a genre that's likely to appeal to console gamers more than to PC gamers. Even though PCs can be connected to an HDTV and four gamepads, most PC gamers just tend not to do that for some unknown reason. And as I understand it, I can't become a licensed console developer without a prior PC title. So for which platform do I market this game?

    4. Re:Not even close? Ha! by Adrian+Lopez · · Score: 1

      If the game will only work well as a console title then don't develop it until after you've become a licensed console developer. Otherwise just make it a PC and Mac game and make a build for consoles if and when you become a licensed developer.

      --
      "In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
  28. Mono/.Net or Java by Anonymous Coward · · Score: 0

    Seriously it's not that hard to pull off, so long as you're willing to forego the native "lipstick" of each OS..

    The mono with gtk# apps I've done work pretty flawlessly across systems.

  29. Great news by Orion+Blastar · · Score: 1

    if it can work outside of a web browser. If not then I ought to stick with C++, Python, Java, and others as I want to make open source cross platform stand alone applications. Some people don't want to run their business code in a web browser for privacy reasons.

    --
    Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
    1. Re:Great news by bieber · · Score: 1

      I don't think privacy is the only reason not to run your business code in a browser...

  30. Um..RB anyone by Anonymous Coward · · Score: 0

    www.realsoftware.com has been doing this for years and years.

  31. Not news by Anonymous Coward · · Score: 0

    Only incompetent developers write non-portable code, since the advent of good cross platform development libraries.
    Qt can be used for nice portable GUIs, except on the horrible apple mobile platforms - but apple is the most proprietary/evil company ever, and their license is so deranged, that I can't see anyone with serious business interest investing any real effort. Android is also pretty nasty for cross platform GUIs, but who cares? it is never going to compete with good devices, with the current SLOOOOOOOOOOOOW java VM.

  32. Re:all those platforms are yours... by forkazoo · · Score: 2, Interesting

    Java? It's really sluggish and non-elegant compared to AIR. I'm still not sure how the Java interpreter performs so badly on UI elements. While technically probably OK (it's been losing to .NET though), the mere fact that all Java apps feel sluggish creates a bad image for Java. That combined with the fact that .NET has been constantly instructing new features and tens of languages support it (C#, Basic, Object Pascal, ASP..)

    Java does bad on GUI's. It's true. OTOH, it doesn't actually do that badly on graphics. It has OpenGL bindings, so for things like making games, it actually does just fine. I'm not personally a big fan of Java, but normal "businessy" GUI apps are really the only are where Java really falls down on performance. And, even then, it's nowhere near as bad as the Java reputation would suggest.

  33. fuck adobe!! by perryizgr8 · · Score: 0, Troll

    i installed adobe rreader on my new system and it tried to push AIR alongwith it. Just that made AIR reepulsive enough for me to not install it. why can't you just use cpp? It will work on all linuxes withoutt much modification. And who gives a fuck about windows. And especially since AIR is horrendously inefficient.

    --
    Wealth is the gift that keeps on giving.
    1. Re:fuck adobe!! by fluffy99 · · Score: 1

      why can't you just use cpp? It will work on all linuxes without much modification. And who gives a fuck about windows.

      The approx 90% of computers that run Windows would care. Catering to an OS with only 1% of the market share like Linux is suicide. http://marketshare.hitslink.com/operating-system-market-share.aspx?qprid=8 http://www.statowl.com/operating_system_market_share_trend.php

  34. Re:Layout stuff more significant than cross platfo by shutdown+-p+now · · Score: 1

    There is nothing innovative in dynamic layouts. They have been available in UI frameworks and widely used for years on Windows, and for decades on Unix.

  35. Same code base for multiple platforms eh? by mrjb · · Score: 1

    More detail please. Looks like the guy is running Eclipse. Is his app written in Java? If so, no big deal; wasn't Java supposed to be write once, run anywhere?

    If it's something compiled to native rather than to bytecode, it's still pretty mich the same story. My C++ open source app runs on Mac PPC, Mac Intel, Windows and Linux. I suppose I could consider that 4 platforms. They all share the same source code, but once compiled they are different binaries. Yes, there is some use of #ifdef in there. Thing is, my application is written in C++, a language which is supposed to be portable. So, I've actually used STL rather than MFC and cross-platform libraries for the fancier stuff such as GUI, audio etc. As a result, it actually is portable.

    I guess my question is, exactly what is it that makes writing cross-platform applications in a cross-platform language newsworthy?

    --
    Visit http://ringbreak.dnd.utwente.nl/~mrjb/growingbettersoftware to download your free copy of the book
    1. Re:Same code base for multiple platforms eh? by Tailhook · · Score: 1

      Looks like the guy is running Eclipse. Is his app written in Java?

      http://en.wikipedia.org/wiki/Adobe_Flex_Builder

      Adobe Flex/Flash Builder is an Eclipsed based IDE for developing Flex/Flash applications. Yes, Adobe is using Eclipse for this. The compiler is written in Java. Try to keep up please.

      --
      Maw! Fire up the karma burner!
  36. Hello world by mwvdlee · · Score: 1

    "Hello world" works on pretty much every platform too.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  37. Re:all those platforms are yours... by perryizgr8 · · Score: 1

    i really don't think anything can be 'really sluggish and non-elegant compared to AIR'. Cause AIR is the fucking definition of sluggishness and inelegance.

    --
    Wealth is the gift that keeps on giving.
  38. C anyone? by SpaghettiPattern · · Score: 1

    I have very vivid remembrances at compiling pretty complex C programs for various platforms and all using the same code base. Perl for instance.

    Sure, the code base is infested with cpp macros and complex configuration mechanisms, making it something for the advanced programmer to grasp but this surely isn't something new. Also, not all libraries may be available on each platform. But I take most projects on a budget which are led by intelligent people, where human resource usage must be optimised will use a single code base.

    It's when money creeps in that problems start. Suddenly some cretin is appointed as responsible for a specific platform -as opposed to have one group managing porting generally- and his targets will have "keeping single code base" as a last priority and that's where Babylon starts.

    Sure, having a GUI toolkit performing identically or highly similar on multiple platforms is a challenge but single code base is the essence of any half decent project or product.

    --

    I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
  39. Re:all those platforms are yours... by wzzzzrd · · Score: 1

    Now tools for things like this are where Flash beats Java.

    Well, there is http://processing.org/

    --
    On second thought, let's not go to Camelot. It is a silly place.
  40. Re:Layout stuff more significant than cross platfo by Lemming+Mark · · Score: 1

    How flexible is it in other environments, though? The AIR app pictured is reconfiguring the UI in various ways depending on orientation, moving UI elements from a side-by-side configuration to a vertical configuration depending on orientation, etc. Whether that's clever or not probably depends on how much work the developer had to put in - if differently structured interfaces were coded up manually then that's not so impressive.

    If the runtime can reconfigure a set of declared elements in sensible ways, that would be quite cool. Although the app demonstrated is relatively uncomplicated in terms of UI, it'd be interesting to see how this applied to a more complicated example. I did get the impression, from the video, that it was the ability to run flexibly on different screen configurations that they were trying to promote, not so much the fact that the code could run on different devices.

    I think the video mentioned open sourcing the code in the future, at which point we'll all be able to see exactly how convenient to program they have managed to make this...

  41. This is a joke. by Anonymous Coward · · Score: 1, Informative

    Java has had this technology for eleven years, and as of today does it better than any other framework or virtual machine.

  42. Re:all those platforms are yours... by zzyzyx · · Score: 1

    Java really only has tools for programmers, not psuedo-programmer artist types who typically create cool things in Flash.

    It seem you've never heard of Processing. It adds a layer over Java with a few simple abstractions over images, sounds, shapes, etc ... This allows artists (who are not programmers, but it's perfectly fine) to make computer graphics art relatively easily. Can be handy also for "real" programmers who want to sketch something graphic quickly.

  43. Re:all those platforms are yours... by KingMotley · · Score: 2, Insightful

    Off topic, but I couldn't help but read your sig. Apparently you and/or the person that wrote that list never spent more than 2 minutes in .NET because the majority of the reasons given are just plain false, and another large portion are poorly hidden marketing gimmicks.

  44. Trivial in Javascript by barkholt · · Score: 1

    A Reversi game would be quite trivial to implement in HTML/Javascript, and would run very nicely on all of the mentioned platforms. If you want Flashy effects, use HTML5 which is supported on all non IE browsers, including the ones included on the mentioned mobile devices.

    --
    - barkholt
  45. Re:all those platforms are yours... by Anonymous Coward · · Score: 0

    Exactly, Larry. Cantrell's demonstration is 80% about tooling, and only 20% about performance. Adobe's tools are what makes multiple publishing targets available to quasi-programmers.

    My two cents: HTML5 will only gain serious momentum once Adobe's tools can spit out HTML5-flavored AJAX– which is something they technically could do immediately through the Flash authoring workflow. The only reason why content producers moved away from Director/Shockwave long ago was because Flash Pro was a powerful enough tool; it had nothing to do with performance or flexibility.

    Who else can seriously do today what Cantrell has done with this little app? How much effort would it take to create the workflow for you? And would it make any sense to anyone you showed it to? This is primarily why Adobe exists, and how it makes money: it gives power to its customers.

    Sidenote, can Unity do this already?

  46. Re:all those platforms are yours... by centuren · · Score: 5, Insightful

    Java? It's really sluggish and non-elegant compared to AIR. I'm still not sure how the Java interpreter performs so badly on UI elements. While technically probably OK (it's been losing to .NET though), the mere fact that all Java apps feel sluggish creates a bad image for Java. That combined with the fact that .NET has been constantly instructing new features and tens of languages support it (C#, Basic, Object Pascal, ASP..)

    Java does bad on GUI's. It's true. OTOH, it doesn't actually do that badly on graphics. It has OpenGL bindings, so for things like making games, it actually does just fine. I'm not personally a big fan of Java, but normal "businessy" GUI apps are really the only are where Java really falls down on performance. And, even then, it's nowhere near as bad as the Java reputation would suggest.

    It's worth pointing out somewhere that the iReversi program in the article doesn't actually seem to touch the GUI at all. I see no menus, search boxes, scrollbars, etc, just whatever window decoration the OS has to offer. The game itself is only graphics, which you point out can make things a lot easier. Basically, this game seems at least on par with the least impressive demonstration of cross-platform code I can imagine. It might as well just be "Hello, World!". How about an office suite like OO.o, an image editor like GIMP, a chat client like Pidgin, or anything that requires actual use of a GUI that so complicates the cross-platform approach?

    Don't show me something simple and tell me it's a demonstration of overcoming a complex and longstanding issue. I can write a web page that renders the same in Firefox 3.6 as it does in IE 5, but that doesn't mean I've created anything special; I just wrote something basic enough that avoids the big issues.

  47. Paying one's dues by tepples · · Score: 1

    So as I understand it, someone who who wants to develop an arcade-style multiplayer game has to "pay his dues" by finishing a strategy-oriented single-player game first, even if he doesn't even like to play strategy-oriented single-player games. A multi-platform toolkit won't help much in this respect. Or what am I missing?

    1. Re:Paying one's dues by Adrian+Lopez · · Score: 1

      Anybody who wants to make games for closed platforms will have to meet whatever requirements the platform owner chooses to impose. That means you won't be able to take advantage of a multi-platform tool's ability to target those particular platforms unless and until you become a licensed developer, but the point of such a tool is not to solve your licensing problems but rather to make development easier by allowing you to produce binaries for multiple platforms without changing the code.

      --
      "In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
  48. I wish Java won by Billly+Gates · · Score: 2

    But not in its current form.

    Sun never made native executables or a way to point and click on a java file and have it run without having to type java x. As a result desktop apps tended to ignore java. Sun gave away the JDK but had no tools for animation like Adobe. As a result JavaFX was too little too late. Netbeans is nice but I need to drag and drop to create animations and visual effects ... not type lines of code in with an ide.

    Flash loads instantaneously while java applets have to launch a whole java runtime environment which annoys users loads.

    I was thinking of creating some out of spare time but I do not have the mathmatical skills of learning graphical algorithms.

    Sun has an addon for Adobe flash to create javafx applets but if yo uhave adobe flash then why bother making a javafx applet? Ugh

    Since Java is now open sourced as Iced Tea I hope this will change. Java now has a very very bad rap as a 21st century Cobol for server apps and all verbose, dull, and boring with memorizing many layers.of.different,javax,apis.

    So we need a free opensource animation tool and support for point and click java applications. After this Java may or may not take off. I really dispise Adobe. They are a threat to anyone who wants to do web development. Without adobe you can not get a job as a web developer anymore as its the defacto standard. Even html 5 is being undermined by it and silverlight.

    1. Re:I wish Java won by ThiagoHP · · Score: 1

      Sun never made native executables

      This goes against the very idea of Java: write once, run everywhere. And there is at least one compiler to native code: gcj

      way to point and click on a java file and have it run without having to type java x

      If vact, there is: executable JAR.. There's also Java Web Start, that allows running a Java window application in a single click from a webpage, using the sandbox security. For this two options, you need the Java runtime installed

      As a result JavaFX was too little too late.

      Sun didn't care for desktop Java for a long time, unfortunately.

    2. Re:I wish Java won by blueworm · · Score: 1

      Java on the desktop is really fast now. I can generate a JAR file and my application launches from that when I double-click it in about two seconds. Java applets do take some time to launch, though.

      Anyway, for web graphics it seems like IDE plugins using Javascript/ECMAscript, HTML5, and WebGL will eventually make Flash obsolete, but it's still a bit early for that.

    3. Re:I wish Java won by BobPaul · · Score: 1

      Flash loads instantaneously while java applets have to launch a whole java runtime environment which annoys users loads.

      This is really a Windows issue. Java programs seem to launch pretty quickly on linux, and I've checked to make sure no java binary is already running before trying. On Windows I remember waiting for the Java icon to load in the system tray before I ever even saw the program splash screen.

      I'm not sure how Java is on OSX, but it seems something could probably be done on the other platforms to match the behavior on Linux.

    4. Re:I wish Java won by thsths · · Score: 1

      > Java programs seem to launch pretty quickly on linux

      I don't know - my browser always freezes for 3 to 4 seconds when a Java applet is launched - and MATLAB takes ages (15 seconds) to start, too, if you use the Java GUI. Given that good GUI feedback is instantaneous (up to the reaction time of 0.2 seconds), this means you can never write a good GUI in Java. Native apps take just a second or two - which is still a bit long, but ok.

    5. Re:I wish Java won by binarylarry · · Score: 1

      That used to be the case, they rewrote the plugin system recently (it was just added to the public release a month or so ago).

      Now the plugin runs in a separate process so it no longer freezes your browser and if for some reason the applet crashes hard (i.e. native crash) it won't take your browser with it.

      Plugin2 is very nice and fixes all the horrible issues like the ones you mention. :)

      --
      Mod me down, my New Earth Global Warmingist friends!
  49. "There's no other platform in the world" by Anonymous Coward · · Score: 0

    I can make a DHTML app working in HTML 4.01 that would work across all of these platforms. OH, and every HTML-enabled browser going back to 2001.

    Sure it might suck, but if the point is quantity over quality (which he seems to emphasize), then I'm afraid legacy platforms have you beat.

  50. Only 5 platforms? by Anonymous Coward · · Score: 0

    If I count correctly, Qt supports 7.

  51. Re:sopssa, it's obvious you've never used UNIX. by sopssa · · Score: 1

    Regardless of your name calling, aren't you kind of agreeing with me? Look at what the GP said - that you can just recompile programs designed for Unix systems. I said it doesn't work like that, just like you.

  52. Here's why this is worthless... by tp_xyzzy · · Score: 1

    it was never any problem to write the same code for multiple platforms. Even the good old c/c++ works just fine for that. The real trouble is that it's very difficult to get it compiled on all platforms and environments, given that you only have access to one of the platforms.

    If you just avoid frameworks tied to specific platform, and only use libraries that are portable, using the same codebase for all platforms is very simple. Most developers do not do that simply because they do not have access to all the platforms necessary. It needs group effort to compile it to other platforms, so it only gets done with enough interest to your project and availability of the source code.

    free software is full of portable libraries. And we have portable languages like C and C++. And then you just need access to each platform compilers... java tries to solve that by making so dragonian restrictions that binaries are portable. It fails because you cannot use any existing C/C++ libraries with it. They end up with just yet another fragmented platform which is completely incompatible with rest of the world.

    The real solution to portability must come from the programmers themselves, not from random platforms and frameworks. The programmers need to learn to isolate existing libraries and dependencies so that they're replaceable, in case the platform dies or the lib gets replaced by a better alternative. And then it just takes some effort to compile the code to each platform.

    the problem with portable platforms and frameworks is that next year someone invents new platform that doesn't follow the rules of your portable stuff. And the new shiny thing breaks your portability if you only relied existing portable platform or framework's portability. for example, java is not being ported to any of the new platforms(think .net & c#) that are coming out because it's lots of work to port it with enough quality that java applications actually look good with the new environments. And who wants a platform that is only good because it runs existing java apps poorly.

    Truly portable really needs programmers to think about what they're doing. Avoiding relying on stuff that is known to be nonportable. Even with that, it's difficult to know what to rely on.

    In general, the new stuff is always portable at the beginning. this is because it's developers had access to the existing platforms. But once it gets older, new platforms and frameworks will break it's portability. And in the end people start to think the new platforms are more portable because it works better with the new shiny platforms. So in the end we need to change our target. Yesturday it was c/c++ providing portability. Now all that work is wasted because java supposedly provides better portability. then C# broke java's portability by not implementing java on that platform(==java cannot use the new shiny .net libraries). So all work done for java is wasted because people are moving to C#. And C# is tied to windows. So we never really had any portability. Just frameworks and platforms that try to compete with each other.

    It's a bad sign when your code starts using someone elses conventions and not your own. It's a sign of a platform frameworks which will transform your app tied to that specific platform. Java is just another platform. It never provided any portability. Same with javascript (it ties to web).

    Languages are the newest way to tie programmers to single platform. Implementing a language takes so much effort that owning one is very large control point for the companies that build those languages. Programmers are heavily tied to those languages because it takes large amount of time to learn one. And if it's not available on all platforms, all that effort benefits only that one platform.

    Truly portable doesnt exists. There are just old and new platforms and frameworks. The more dependencies it has, and the more it uses external stuff, the more likely it'll break when the next platform comes. It

  53. Re:Layout stuff more significant than cross platfo by centuren · · Score: 1

    How flexible is it in other environments, though? The AIR app pictured is reconfiguring the UI in various ways depending on orientation, moving UI elements from a side-by-side configuration to a vertical configuration depending on orientation, etc. Whether that's clever or not probably depends on how much work the developer had to put in - if differently structured interfaces were coded up manually then that's not so impressive.

    If the runtime can reconfigure a set of declared elements in sensible ways, that would be quite cool. Although the app demonstrated is relatively uncomplicated in terms of UI, it'd be interesting to see how this applied to a more complicated example. I did get the impression, from the video, that it was the ability to run flexibly on different screen configurations that they were trying to promote, not so much the fact that the code could run on different devices.

    I think the video mentioned open sourcing the code in the future, at which point we'll all be able to see exactly how convenient to program they have managed to make this...

    It reminds me of making a web site. You can detect the screen size and rendering engine, and move your html elements around whatever is best. I'd never call this multi-platform, though, even if the web site is as fully functional on the iPhone as it is under Windows 7, etc. The web site is written for the "browser platform", and relies on having browser implementations known to support it's functionality in order for it to work on any OS. There's nothing at all clever about it, in those terms. A single-window game that doesn't appear to rely on anything outside of what the Adobe Air implementations offer seems to be the same thing.

    Show me a single codebase that you can use that produces native (or close enough) GUI elements for something a little more complex and I'll be interested.

  54. Nothing new here by woboyle · · Score: 1

    This is not new, though it is hard to do. I've been designing and implementing cross-platform systems for almost 30 years. A major application framework and transaction processing manufacturing execution system I was a principal architect and engineer on (initial deployment in 1995) runs with the exact same C++ code base on every known Unix variant as well as Windows with no changes in code between any of them. This is not simple to do - the design of the framework was the key in the abstractions it presents to the developer. The Qt framework is something akin to this, in that you can write code for one platform in C++ and simply do a recompile to run on another, including Windows, Linux, Unix, etc.

    --
    Sometimes, real fast is almost as good as real-time.
  55. Re:all those platforms are yours... by dominious · · Score: 1

    Java does bad on GUI's.

    why don't you take a look at SWT first?

  56. Re:all those platforms are yours... by howardd21 · · Score: 1

    I saw that also. Is that list current? It seems to be published in 2004? Has it been updated?

    --
    no comment
  57. Re:all those platforms are yours... by binarylarry · · Score: 1

    Yes it's current and the items are still completely valid.

    --
    Mod me down, my New Earth Global Warmingist friends!
  58. Abstraction by JBrandonS · · Score: 1

    can be used to get the same results. And I (not the best programmer) have been getting these results with abstraction for years.

  59. Build settings by ClosedSource · · Score: 1

    You mean where the symbols are defined that decide which platform-specific lines of the slushball will be executed at run time.

    This is the worst case scenario for code coupling - a dozen projects spread throughout a common set of files.

    1. Re:Build settings by Adrian+Lopez · · Score: 1

      You mean where the symbols are defined that decide which platform-specific lines of the slushball will be executed at run time.

      No, I mean the part of the project that says "compile this for X platform" for a project where there's no platform-specific code at all as far as the programmer is concerned.

      --
      "In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
  60. Re:all those platforms are yours... by geekpowa · · Score: 1
    I've been working on a desktop app system for past 12 months.

    I started on SWT. Then switched back to swing.

    Contrary to popular wisdom, I found that SWT was actually slower than swing. On instantiation anyway. Once instantiated, SWT may outperform Swing (probably does) - but your typical user will not notice. It is the waiting for the window to open that is the obvious cost.

    I also discovered alot of functional limitations with SWT. Key one that affected the switch back was dealing with overlaying/overlapping controls. Swing worked the way you would expect, SWT did not.

    The programming model for Swing certainly sucks though.

  61. Re:all those platforms are yours... by Dragonslicer · · Score: 5, Funny

    look like a retarded snail trying to climb a salt hill.

    Best. Comment. Ever. :)

    Fixed that for you.

  62. Re:all those platforms are yours... by Liquidrage · · Score: 3, Informative

    Really? Reason #4 is enterpise adoption rate. That's changed as .NET is growing. #6 is an opinion with no factual basis backing it up. Having done both Java and .NET web development, I strongly disagree with it. But still, it was nothing more then an unproven assertion.
    #7 is false.
    #8 is another unproven assertion.
    #11 is another unproven assertion.
    #14 is false.
    #16 is complete garbage. Collections and true generics are superior in .NET
    #17 is unproven assertion.
    #20 neglects .NET development work in government Federal and State and local.
    #21 unproven assertion.
    #22 is crap. O/R mappers are huge in .NET land. Your claim that Java's are better is, shockingly, an unproven assertion.
    #23 is an unproven assertion. And you're going against one of the best IDE's ever that many love in this one.
    OK, I got bored and stopped. And most of the other ones on the list I think are crap to. You're talking about programming languages, why even tout such a superficial list that amounts of nothing but sticking out your tongue and going "na-na na-na"?

  63. I predict that by Anonymous Coward · · Score: 0

    It doesn't integrate with the global menu bar on Ubuntu or Mac, nor RGBa translucency on Ubuntu or Vista/7, nor, notifications on Ubuntu/Mac nor....

    Jack of all platforms, master of none. Just because it runs doesn't mean it's worth using. A reversi game that caters to a given platform is nearly guaranteed to be a better reversi game for that platform.

  64. games are easy by pydev · · Score: 1

    It's easy to write multi-platform games because games don't have to conform to platform conventions and can get away with just about anything.

    Regular applications are hard, applications where people expect standard menus, standard dialogs, and full desktop integration. And those features generally do require changes to the application logic and source code for each platform; nobody has figured out how to fully abstract them away in libraries.

    1. Re:games are easy by Anonymous Coward · · Score: 0

      I think all these problems were figured out: Just doesn't work anymore! The main thing is that it can be sold in an app-store.

  65. Java fail by pydev · · Score: 1

    Java has been trying to do this for 11 years, and it has failed, just like Flash/AIR is going to fail to deliver this. Without per-platform customization, Java applications don't respect key bindings, menu structure, and many other conventions. And it's the same with Flash/AIR.

    The only way to do something cross-platform is if you come up with a sexy-enough interface that violates platform conventions with a vengeance but is so compelling that people want to use it anyway. That works for games and some media apps (music players, real-time social network), as long as they aren't too complex. It doesn't work for "boring" regular desktop apps.

  66. Derp by Anonymous Coward · · Score: 0

    Qt does this in C++, you can also use JavaScript or Flash to do this with web applications.
    Hey, Slashdot, maybe when somebody makes an operating system that uses virtual memory, you can post an article on that one, too.

  67. The Big Accomplishment by RAMMS+EIN · · Score: 1

    To me, the big accomplishment here isn't that someone has managed to make the same source code run on different platforms.

    The big accomplishment is that this is something newsworthy.

    Ideally, your code should only describe the functionality of your application. What these platforms do is basically the same stuff in any case. There isn't really a good reason why code that does something as non-exotic as this program would _not_ work on every platform that supported the right features.

    Somehow, the corporations bringing us all this fine technology have made it so that you pretty much _can't_ write a program that will run on both their device and their competitors'. And not only that, but they've also gotten most of us to accept this as normal.

    --
    Please correct me if I got my facts wrong.
  68. Harrumph. by sjinsjca · · Score: 2, Funny

    "There's no other platform in the world that can boast this level of flexibility — not even close" Harrumph. LabVIEW.

  69. "Completely unchanged?" by dpbsmith · · Score: 1

    That's not hard. What's hard is for the application to be a good citizen of each platform. That is, to run properly and follow the UI customs, idiomatic usages, and meet user expectations on each platform.

    If the application is completely self-contained and basically implements its own UI, then, sure, it can appropriately "run unchanged" on multiple platforms.

    But for the application to select files properly, with, for example, Mac OS's idiosyncratic world view (with "/Volumes/abc" and "/Volumes/def", all appearing at the same level as /), or Windows' view (with "Desktop" at the top)... or to open files properly across a network... or make "help" respond to the "help" key on a Mac and F1 on Windows... or respond to a USB device... etc... is not so easy.

  70. There's no other platform in the world that can bo by Anonymous Coward · · Score: 0

    #include

    int main(int argc, char *av[])
    {
          return printf("Hello, World\n");
    }

    There!

  71. Re:all those platforms are yours... by jasmusic · · Score: 1

    WPF is a game-changer, although more could be done to make it easy. And a professional 3-D game can be written with better performance in .NET than Java.

  72. Erm, Java? by Anonymous Coward · · Score: 0

    Amazing... except that I've been doing pretty much this for the last 10 years with Java.

    Adobe Air is a *massive* resource hog.

  73. Cross platform without changing code? by bogess · · Score: 1

    What about this http://wiki.freepascal.org/MSEide_&_MSEgui which uses free pascal, is lightning fast, and compiles on each platform.

    --
    If a little knowledge is dangerous , I am probably lethal on a GLOBAL scale :D
  74. Wow, an Adobe mananger has created an application! by GodWasAnAlien · · Score: 1

    And in doing so, "discovered" how to write portable code.

    I guess that pretty good, for a manager.

  75. Sure, Apple allows Java by Dan+East · · Score: 1

    Sure Apple allows Java. You just include the JRE built into your app, which loads your static java bytecodes. As long as you don't retrieve any additional java or bytecodes dynamically then you're fine.

    The question is how small can a JRE be made, and is it possible to strip down the java libraries to only what is needed by the application to make them as small as possible?

    Has anyone done this? I don't know, but technically it is allowed. My game engine includes the lua scripting engine, and although it is technically possible for us to dynamically retrieve new lua sources from the net (like we do images, data and audio), we don't in order to adhere to Apple's requirements (in fact, there's no way they can even test for that, because we could simply not distribute lua code from our server until AFTER the app goes live).

    Many other iPhone apps and games include various scripting languages, in all flavors imaginable (JIT, precompiled bytecodes, true scripting), so technically Java is no different.

    --
    Better known as 318230.
  76. Re:all those platforms are yours... by elliott_keith · · Score: 1
    It appears all of the source links are broken. I would like read them because Liquidrage is correct based upon just the statements claimed in that list.

    Our apologies... The item you requested does not exist on this server or cannot be served. Please double check the web address or use the search function on this page to find what you are looking for. If you know you have the correct web address but are encountering an error, please send a mail to the administrator of this site.

  77. JavaScript? by abhi_beckert · · Score: 1

    It would be trivial to write that app in JavaScript, with no need for commercial/proprietary tools, and it would run just as well if not better, and on more platforms than adobe air.

  78. OT: sig has bad links by thePowerOfGrayskull · · Score: 1

    Interesting list in your sig, but unfortunately all of the links to detailed info that it contains seem to be broken.

  79. oops by Anonymous Coward · · Score: 0

    wxWidgets rather

  80. Re:sopssa, it's obvious you've never used UNIX. by Anonymous Coward · · Score: 0

    Is that ballmer cock delicious sopssa?

  81. Re:all those platforms are yours... by Liquidrage · · Score: 3, Insightful

    I think LINQ is a biggest game changer out there right now. It's the biggest thing I've seen in a while. Querying your own object collection is extremely powerful.

  82. Re:Jews for Nerds! by martas · · Score: 1

    lol, how do you even come up with this stuff? you should write scripts for stoner movies, or something...

  83. Hard to take seriously by Anonymous Coward · · Score: 0

    This particular problem domain has been around since there was more than one computer. A vague declaration of this accomplishment associated with the words, "not even close", causes me to be immediately skeptical. I have tried more frameworks than I have fingers and toes, and the more generic the framework, the less impressive the look and feel.. I can hardly believe this item made it past Cmdr Taco. The more glorious the declaration, the less likely anyone is the take it seriously and even check it out. I have begun blithering and my posting may have less value than TFA.

  84. Re:all those platforms are yours... by gadzook33 · · Score: 1

    Yeah, don't even get me started on #20. The number of incompetent java developers I have to put up with. Meanwhile we have a superb C# shop that puts out ten fold the product and quality. This list is worse than a strict religious ideology. Someone that feels this strongly about any technology has no place being an engineer. Engineering and programing are about balance - the right tool for the the right problem.

  85. Re:all those platforms are yours... by gadzook33 · · Score: 1

    I agree...I'm no expert but I feel like linq is doing for C# what the STL did for C++. Minus the horrendous compiler errors :).

  86. Appcellerator Titanium by gazita123 · · Score: 1

    I'm surprised that no one mentioned Titanium, which is an Open Source alternative to AIR that lets you package up native apps for all of the mentioned platforms.

    http://www.appcelerator.com/

    The UI is CSS based, and you can combine several scripting languages (Python, Ruby, PHP) along with compiled modules to handle most general application development.

  87. Re:all those platforms are yours... by DeionXxX · · Score: 3, Interesting

    There are no GUI widgets in Flash / AS3. Everything is actually drawn on screen using vector or bitmap graphics. There are components that you can use that emulate widgets (drop downs, date pickers, etc) but those are not native. This means that they will work consistently across all platforms.

    This demo is perfect because it shows a Flash / AS3 developer what they need to do to make sure their app works well across devices.

    1. Figure out how your app elements might reposition themselves depending on screen dimensions.
    2. Figure out how to scale your application and elements so things are usable.
    3. Use interactions that work on press and not on MouseOver.

    The rest doesn't matter. As long as the framework can draw graphics to the system consistently across devices, nothing else really matters. Flash is become the ultimate platform for GUI development.

  88. smalltalk does it by Anonymous Coward · · Score: 0

    Smalltalk systems like http://www.squeak.org run on *lots* of different platforms, even the iphone. Without changing a line of code. Also no #ifdefs...

  89. Re:all those platforms are yours... by fatbuttlarry · · Score: 1

    > Java really only has tools for programmers, not psuedo-programmer artist types who typically create cool things in Flash. Sun seems to have never gotten this aspect.


    They actually have, and it's called Java FX.

  90. Re:all those platforms are yours... by Nadaka · · Score: 1

    I noticed quite a few of those as well. Many items on that list are false and completely unsubstantiated. Java is very good, it is still my preferred language, but c# .NET is also fairly good.

  91. Re:all those platforms are yours... by centuren · · Score: 1

    You sound spot on with your list on what the demo shows and why those are important points.

    The rest doesn't matter. As long as the framework can draw graphics to the system consistently across devices, nothing else really matters. Flash is become the ultimate platform for GUI development.

    The rest matters. Enough that I find your last assertion horrible depressing. I could go on trying to explain the reasons why I think so, but your initial point is more valid for this story. Regardless of what is being done to the user experience, the implementation behind the demo seems like it could help Flash / AS3 developers make money. Besides, if someone writes a great iPhone app, I won't complain if it doesn't require any additional work for there to be an Android release as well.

  92. Re:all those platforms are yours... by GigaplexNZ · · Score: 1

    after HTML5 obsoletes flash adobe is sunk

    They still have Photoshop and a bunch of other products.

  93. Games company has been doing this for years by Anonymous Coward · · Score: 0

    SLAM Productions (www.slam-productions.co.uk) has had this technology for years - the same code base for games on the Playstation 2, Playstation 3, Playstation Portable, Nintendo DS, Nintendo Wii, Xbox 360, PC, Mac, iPhone, Linux...

  94. Re:all those platforms are yours... by Anonymous Coward · · Score: 0

    I haven't tried it on all the platforms they mentioned, but AFAIK the following source code will compile and execute just fine on all those OS's with no modifications needed on an OS specific basis:

    #include
    using namespace std;
    void main()
    {
        cout

    but hey I could be wrong, like I said I haven't tried it on all of them.

  95. don't judge a book by its cover by rexguo · · Score: 1

    Saying Java sucks or Java is slow is like saying Lord of the Rings is a lousy story because it had lousy bookcover illustration.

    From the years of reading Slashdot and more than a decade on the web reading about how people bash Java, it is pretty clear how many people can't tell the difference between a platform and an API. It is worrying how much of these people make up the world's pool of software professionals.

    While it is true that Sun dropped the ball on Java marketing and the Swing API, it is also true that Microsoft wielded its evil muscle trying to kill it (how many can claim to have survived such attacks?) in the 90's (anyone remember the 9-year lawsuit that Sun eventually won?) and Java as a platform and ecosystem stalled because of that. As a 20-year software veteran who used to write in C/C++ and assembly, I'm happily making a good living writing real-time graphics apps with Java that runs on Mac, Windows and Linux. Those who bash Java just don't know what they are missing and I'm happy to keep it that way: less competition for me.

    Lastly, Adobe Flexbuilder, the IDE that this iReversi game was written in, is based on Eclipse. And Eclipse is written in Java using the SWT API. Eclipse is also one of the world's most complex piece of software that runs on Mac, Windows and Linux. Adobe's marketing should eat its own smelly socks.

    --
    www.rexguo.com - Technologist + Designer
  96. See Lazarus -"Write Once. Compile Anywere." by Bleek+II · · Score: 1

    Lazarus is a fun IDE/RAD if you don't mind using Object Pascal, which I don't mind. http://www.lazarus.freepascal.org/

  97. not even close? right. by XO · · Score: 1

    "There's no other platform in the world that can boast this level of flexibility — not even close."?

    Let's see.. Javascript, Java .. is Python available on the iDevices?

    how many other platforms can ya'all think of that could do this? Excluding the iDevice requirement, hundreds?

    --
    "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
  98. Re:all those platforms are yours... by blahplusplus · · Score: 1

    "I just wrote something basic enough that avoids the big issues."

    Have you considered that this _not considering_ the design properly from the outset is the problem? I think that's the real issue is knowing what to avoid doing when you make a cross platform app.

  99. Wow... by mandelbr0t · · Score: 1

    Perl::Gtk, tcl/tk, need I say more? I was writing "multiplatform apps" from a single codebase a decade ago, and I'm sure many out there beat me to it by at least that much more.

    --
    "Please describe the scientific nature of the 'whammy'" - Agent Scully
  100. Re:all those platforms are yours... by Anonymous Coward · · Score: 0

    Many applications that I use in my workplace are developed in Java and they are so slow to start up and to refresh after a long idle time that it always make me cry.

    The amount of RAM that Java use is huge and unjustified. It does also have a level of complexity with a ton of layers that make the task of programming seems like a bureaucratic task.

    The only reason Java is so popular in the enterprise environment is because it does allow to develop quickly complicate applications by using an army of mediocre programmers.

    I'm really happy that Java is going to die.

  101. Funny, I've written a Java rendering engine that.. by Assmasher · · Score: 1

    ...runs entirely in software on everything from the dreaded MSJVM through modern implementations, does non-linear and blended animations, overbright lighting, has speaking and animating characters, and runs on every platform we've tried including Solaris, OSX, Win-whatever you want, Linux, et cetera. No different code bases, no platform specific anything.

              What is it with people claiming "I've built the first rocket to go to the moon" while standing in Huntsville Alabama?

    --
    Loading...
  102. LibSDL by stonewolf · · Score: 1

    If you look around at the huge number of completely cross platform apps and tools out there you will find that many of them are sitting on top of SDL (www.libsdl.org). SDL has been providing a cross platform multimedia development platform for so long that an on going maintenance issue is deciding when a platform is really truly dead so that support can be removed. :-)

    I thought I'd throw that out as my current favorite example of yet another cross platform tool. I've seen so many of these that I lost count about 20 years ago. The original article (if you can call it that considering how little information it contained) is about as news worthy as "Man Misses Public Urinal".

    Stonewolf

  103. not really new by SuperDre · · Score: 0

    it all depends on the runtime-enviroment that is created for each platform. If you only stick to the API which is provided by your own created runtime which you have written specifically for each platform it won't be a problem. The only problem with this approach is that your application won't make the best use of the hardware for any specific platform. But apperantly these days nobody cares anymore as (web)programmers seem to think people have supercomputers anyway, and otherwise they'll buy a new computer anyway. (just like this slashdot site which is hindered by it's scripts and is sluggish as hell sadly on my XP IE8 Intel P4 3..2Ghz 3GB mem).

  104. Re:all those platforms are yours... by dave87656 · · Score: 1

    Java? It's really sluggish and non-elegant

    Have you looked at Java in, say, the last 5 years? Java is very quick and responsive now.

  105. Everybody else is doing it, why can't I? by Minwee · · Score: 1

    There's no other platform in the world that can boast this level of flexibility -- not even close.

    Commodore 64 emulators run on a dizzying variety of platforms, everything from Androids and iPhones up to room sized mainframes and including every single target that AIR supports. I think that means that "Archon" and "Seven Cities of Gold" boast a good deal more flexibility than "ifdefreversi" does.

    Still, it's a nice try. Maybe if Adobe is still interested in multi-platform apps they can try writing a nice little 'Hello World' in Perl or learning some FORTRAN and COBOL.

  106. Troll. by wed128 · · Score: 1

    Not that i agree with the article, but LabVIEW sucks.

    1. Re:Troll. by sjinsjca · · Score: 1

      Troll? Harrumph to that too, and to your opinion that LabVIEW sucks. I've done stuff with that language that would spin your head around. I wouldn't want to write a word processor in it, but for its intended class of instrumentation-centric, parallelism-leveraging, often cross-platform industrial and research applications, it's freaking awesome. So watch who you call trolls. Some of us know what we're talking about.

  107. Re:all those platforms are yours... by BitZtream · · Score: 1

    This means that they will work consistently across all platforms.

    Yes, this also means its likely that the widget will work wrong across all platforms as the only right way is the native way.

    Flash is become the ultimate platform for GUI development.

    Considering it more or less requires you to create an app that breaks native OS look and feel, I'd say you are certainly wrong in almost every single possible case.

    If you're making flash apps I'm sorry but the reality of it is that its highly unlikely you know how to make a GUI better than the OS designers. Even just copying the native widget is practically impossible from a end developer perspective due to the shear number of variations you have to deal with.

    Flash is not intended to be aware of platform issues, it simply ignores them. Anyone worth there salt as a developer can tell you how ignoring the platform specific makes your app asstastic rather rapidly.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  108. Re:all those platforms are yours... by inline_four · · Score: 1

    There are no GUI widgets in Flash / AS3. Everything is actually drawn on screen using vector or bitmap graphics. There are components that you can use that emulate widgets (drop downs, date pickers, etc) but those are not native. This means that they will work consistently across all platforms.

    That's what lightweight widgets are (a la Swing) -- control presentation across platforms and don't rely on native libraries and threads for creating and destroying native UI elements (peers). This is not a new idea. One of the first implementations of this for performance reasons that I'm aware of was in Swing's grid widget (JTable), where a single lightweight component is reused for drawing each cell that uses the same rendering logic. This is in contrast to how it might have been done using a native widget, which would have to be instantiated for each visible cell separately.

    There's nothing magical about native widgets -- at some point it all comes down to drawing stuff on the screen. It just depends on which library does it and how efficiently (threads, memory, hardware acceleration, etc.).

    --
    Alexey
  109. Re:all those platforms are yours... by karbonKid · · Score: 1

    Speaking as a self-confessed 'psuedo-programmer artist type', I can say that those tools definitely are available in the form of Processing.

  110. Squeak by aldeveron · · Score: 1

    If you really want cross platform and variable display resolution, look at Squeak Smalltalk, an open source implementation of Smalltalk that is the balm and can, in fact, run cross platform on any device for which a c compilier is available. There are several forks, one of which, Pharo, is targeted at commercial developers.

    http://www.squeak.org/About/

    "Major computing platforms supported include most versions of Windows including CE/PocketPC, MacOS, Linux/Unix, OS/2 Warp, Acorn RiscOS, and even a bare chip (the Mitsubishi M32R/D)."

    http://www.pharo-project.org/home

  111. reversi by mzs · · Score: 1

    People this is reversi, it can be done in a js file, two gifs, and some divs in one evening, and more portably too. This is some marketing hack doing what he does.

  112. Re:all those platforms are yours... by binarylarry · · Score: 1

    I bet you're running old apps on the horrible Microsoft JVM.

    Java will be around for a long, long time considering how widely it's used across platforms and the fact that it's the most popular programming language in the world.

    --
    Mod me down, my New Earth Global Warmingist friends!
  113. Slashvertisement by Anonymous Coward · · Score: 0

    Slashvertisement for AIR... nothing to see here...

  114. Free Pascal with Lazarus IDE by Anonymous Coward · · Score: 0

    One can use Lazarus IDE (Free pascal Compiler) and compile native apps for Windows (32/64bit), Windows CE, MacOS, Linux (GTK1&2, QT), web services and other things using same single source base.
    It's not an inovation. It's just an PR thing :)

  115. Re:all those platforms are yours... by Anonymous Coward · · Score: 0

    without widgets, its moot.
    qt or swing will utterly blow flash out of the water in real world programs
    each program having it's own drawing style is a boondoggle that hinders internationalization (forget accessing any market except the English speaking world), performance (say goodbye to the embedded market or real-time systems), and accessibility (say goodbye to having program be used in government, military, education, or any business receiving government money)

  116. Re:all those platforms are yours... by KingMotley · · Score: 1

    I would add:
    2) The majority of the framework is now openly viewable.
    3) Hype, you can do many many projects in 100% .NET. In fact the ones that you simply can't do in 100% .NET, you outright can't do in java AT ALL. How is that better?
    4) Internet statistics and quite contrary to what I see.
    6) An opinion, one that I disagree with very strongly.
    9) False.
    10) False.
    11) Again, how is java's inability to call native things, a plus?
    12) More languages? Really? ROFL! Java VS VB, C#, Cobol, Python, F#, and many others? How is java "More languages"?
    15) False.
    19) Unproven.
    24) ?
    25) False.
    27) False. Try LINQ which is built-in and you don't even need a .zip file.
    28) False, has always been false.
    29) Unproven.
    30) Eclipse.
    31) False.
    33) Casini, littleweb.
    34) Mono.
    35) False.
    36) Absolutely False.
    37) False.
    38) False. Linq.
    39) ISO.
    40) False, and .NET had hardware acceleration through DirectX long before Java ever did.
    43) False.
    46) False.
    47) False, all of them, and native managed drivers as well.

    And on and on and on.

  117. Re:all those platforms are yours... by centuren · · Score: 1

    Considering it more or less requires you to create an app that breaks native OS look and feel, I'd say you are certainly wrong in almost every single possible case.

    Thank you, well put. That was exactly my reaction that I wasn't able to put into words in my response.

  118. Native code? by BRSloth · · Score: 1

    Unless she shows it being compiled as native code, I call it bullshit.

    Hey, guess what: my little Python Twitter Client also runs unmodified on Linux, OS X, Windows and Maemo. All that due the nature of a VM running under those machines.

    "Oh, but what about the iPad and the iPhone?" Adobe probably have an iPad/iPhone version of their VM running around and he installed it using the ad-hoc feature.

    Honestly: bullshit. Big steaming pile of bullshit.