Forgot your password?
typodupeerror
Android Iphone Programming Games Linux Technology

Multi-Platform App Created Using Single Code Base 296

Posted by kdawson
from the earth-water-fire dept.
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.
This discussion has been archived. No new comments can be posted.

Multi-Platform App Created Using Single Code Base

Comments Filter:
  • by DarthBart (640519) on Sunday April 04, 2010 @02:39PM (#31725886)

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

    • Re: (Score:3, Interesting)

      by Jurily (900488)

      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.

      • by ciroknight (601098) on Sunday April 04, 2010 @03:08PM (#31726134)
        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???"
      • Re: (Score:3, Informative)

        These guys obviously never heard of Unix before.

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

    • by Skreems (598317)

      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.

      • 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.

        • 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.

          • 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.

  • by fahrbot-bot (874524) on Sunday April 04, 2010 @02:43PM (#31725914)

    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.

    • by Foofoobar (318279) on Sunday April 04, 2010 @02:59PM (#31726058)
      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.
      • Re: (Score:2, Funny)

        by IsaacD (1376213)

        ...eventually Steve Job's will die.

        deities don't die.

      • by dominious (1077089) on Sunday April 04, 2010 @04:40PM (#31726796)

        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

      • by StormReaver (59959) on Sunday April 04, 2010 @04:44PM (#31726826)

        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.

      • by pjt33 (739471)

        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.

      • Re: (Score:2, Interesting)

        by MacDork (560499)

        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?

    • True, mod parent up

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

    • by Jurily (900488)

      Posted by kdawson

      'Nuff said.

    • by Nerdfest (867930)
      ... except that Java runs just fine in 64 bit Linux on an AMD. Adobe Air ... no so much.
    • by Anonymous Coward

      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

      • by Jahava (946858) on Sunday April 04, 2010 @04:15PM (#31726604)

        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 [wikipedia.org] to Java (via HotSpot [wikipedia.org] 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 [drdobbs.com] info [scribblethink.org] can [zi.fi] be found [wikipedia.org] with Google [google.com].

        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 [kernel.org], or something whose complexity is handled better in Java than via a C++ toolkit like QT [nokia.com]. 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

        • 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

          • Re: (Score:3, Informative)

            by moonbender (547943)

            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

    • 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 simil
    • by forkazoo (138186)

      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 medioc

      • 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.

        • by forkazoo (138186)

          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++/

    • 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).

    • 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.

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

  • 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 thi
  • Same codebase... (Score:5, Informative)

    by Zapotek (1032314) <tasos.laskos@nospAm.gmail.com> on Sunday April 04, 2010 @02:53PM (#31725990) Homepage
    holding different platform specific implementations: http://blogs.adobe.com/cantrell/images/ireverse/FB_projects.jpg [adobe.com]
    That's doesn't seem all that impressive...
    • 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.

  • 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 )

  • Marketing (Score:4, Insightful)

    by g051051 (71145) * on Sunday April 04, 2010 @02:55PM (#31726002)

    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.

  • by Manip (656104) on Sunday April 04, 2010 @02:58PM (#31726030)

    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.

    • by Tailhook (98486)

      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 senten

  • iReverse (Score:4, Funny)

    by AndGodSed (968378) on Sunday April 04, 2010 @02:59PM (#31726052) Homepage Journal

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

    • Apple has recently renamed it's legal department to iSue
    • 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. [icall.com] That's a name I'm sure they'd love to have snatched up.

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

  • 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 havi

    • 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.

      • 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, th

        • by centuren (106470)

          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-wind

  • 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!!

    • by DLG (14172)

      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?

      • 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 us

    • 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.

    • by theurge14 (820596)

      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

  • Two points (Score:5, Interesting)

    by Blakey Rat (99501) on Sunday April 04, 2010 @03:14PM (#31726180)

    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.)

    • by v1 (525388)

      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 go

  • Bollocks (Score:3, Informative)

    by SpinyNorman (33776) on Sunday April 04, 2010 @03:18PM (#31726204)

    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.

    • by centuren (106470)

      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 [nokia.com], or is that just Nokia's implementation of it?

      • by mirix (1649853)

        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

        • by mirix (1649853)

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

  • 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.

    • by tepples (727027)
      But then how do you actually run something on a Wii, Xbox 360, or PS3?
      • 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.

        • by tepples (727027)
          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?
          • 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.

            • 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?
              • 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.

  • 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.

  • 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,
    • by Tailhook (98486)

      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.

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

  • 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 us

"How do I love thee? My accumulator overflows."

Working...