Multi-Platform App Created Using Single Code Base 296
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.
Not even close? See: Java. (Score:5, Insightful)
Guy creates functionality I've been using in Java for 8 years; film at 11.
Marketing (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.
Re:Not even close? See: Java. (Score:5, Insightful)
Re:all those platforms are yours... (Score:5, 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.
Flash and HTML5 make Java look efficient. (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.
Re:Probably 500 lines of actual game play code (Score:4, Insightful)
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.
Re:all those platforms are yours... (Score:3, 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.
Re:all those platforms are yours... (Score:5, Insightful)
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.
Re:Not even close? See: Java. (Score:4, 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?
some /.ers correctly classified this as slashvertisment
Re:Not even close? See: Java. (Score:5, 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.
Re:Marketing (Score:2, Insightful)
The point is that it isn't unique or special, it's just another VM architecture, just like Java, .NET, etc.
Re:Flash and HTML5 make Java look efficient. (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!
Re:all those platforms are yours... (Score:4, Insightful)
Re:Flash and HTML5 make Java look efficient. (Score:3, Insightful)
Left the whole industry with a sour taste in it's mouth. Could be why I've heard HTML5 is dropping applet support.