What is the best crossplatform Dev tool?

Discussion in 'General Mac Discussion' started by Flynnstone, May 20, 2003.

  1. Flynnstone macrumors 65816

    Flynnstone

    Joined:
    Feb 25, 2003
    Location:
    Cold beer land
    #1
    What is the best crossplatform development tools for developing for OS X and Windows?
    I really like the idea of Project builder and Cocoa. But how do I move a Cocoa App to run on Windows?
    The only tool that I know of is RealBasic. It targets OS X, OS 9 and Windows. This is good, but Basic sucks !
    I would like a good C, C++ and Pascal RAD tool. It seems like every thing is 2/3 of the solution. Borland Delphi/Kylix supports Linux and Windows, but not OS X. There are others, but they don't appear to be RAD tools.
    What I think Apple needs to do is to have a way of porting Project Builder and Objective C to Windows. Even if it was heavily thunked, thats OK. There appears to be no good tool to support OS X and Windows.
    Anyone have any pointers? Ideas? Agreement ?
     
  2. janey macrumors 603

    janey

    Joined:
    Dec 20, 2002
    Location:
    sunny los angeles
    #2
    Re: What is the best crossplatform Dev tool?

    First of all if you were a developer in the first place you'd know that Cocoa is a framework only found in OS X so you can't have any cocoa apps in windows.
    Microsoft has their whole entire Visual Studio package which is somewhat similar to Project Builder, however it's a Windows only thing (obviously and it's also $$$) and Microsoft prefers C++, C#, Java and god knows what else to write apps for Windows so there's no way that a programming lang like objective c would get its own little Mac-like compiler and stuff for windows.
    If you're looking to write apps that work on both platforms, it's a good idea to write them in Java since it kinda works on both platforms.
     
  3. szark macrumors 68030

    szark

    Joined:
    May 14, 2002
    Location:
    Arid-Zone-A
    #3
    You might look into CodeWarrior. I've never used it but it's supposed to be good for cross-platform development.

    Also, there are many good Java development environments.
     
  4. zmarc macrumors newbie

    Joined:
    May 20, 2003
    Location:
    Northern California
    #4
    Re: What is the best crossplatform Dev tool?

    If you think BASIC sucks, you obviously haven't actually tried REALbasic. It's a fully object-oriented, modern language with almost all the features of C++ without the headaches (i.e., memory management). REALbasic uses some of the same syntax as BASIC of old, but that's about it. You really should give it a try. It's not perfect, but it gets better with every release, and it's by far the fastest development environment I know. And unlike Java, the interface you build for each platform is truly native to that platform.

    Of course I am biased: I'm the publisher of REALbasic Developer magazine! I also write the REALbasic University tutorial column on Applelinks. Both are good places to go if you'd like to learn more about REALbasic.

    -- Marc

    http://www.rbdeveloper.com
    http://www.applelinks.com/rbu/
     
  5. maradong macrumors 65816

    maradong

    Joined:
    Mar 7, 2003
    Location:
    Luxembourg
    #5
    why aren t you using java ?
    if you already know c , the synax is easy to learn....
     
  6. X-Baz macrumors member

    Joined:
    Dec 11, 2002
    Location:
    Leeds, England
    #6
    Re: Re: What is the best crossplatform Dev tool?

    Actually Cocoa is just the latest version of the NextStep/OpenStep libraries, which have been available for Windows for years. Next/Apple pulled them when development started on OSX though, but there's no reason why they couldn't release them again. There is a copy, called GNUStep, which is open-source - it's for Unix/Linux but I heard about a project to port it to Windows as well - apparently it's "reasonably" source code compliant with Cocoa.
    However, for "proper" applications, your best bet is Java, which is finally hitting the point where it produce decent cross-platform apps. For little utilities and so on, I've just discovered Runtime Revolution, which is a scripting/hypercard type thing, which looks great for small stuff (but a nightmare for anything big).
     
  7. Taft macrumors 65816

    Taft

    Joined:
    Jan 31, 2002
    Location:
    Chicago
    #7
    Re: Re: What is the best crossplatform Dev tool?

    Thats a great little discussion (*ahem* condescending? First of all, are YOU a developer?), but its completely irrelevant to the topic on hand. Of course Cocoa is available only on OS X and MFC was only available on Windose...that doesn't matter. There are still great crossplatform tools out there.

    For instance QT. (http://www.trolltech.com) Trolltech basically created a C++ API layer that resides just under native windowing API's on the different platforms (Win32, Mac OS X, Linux, etc.). You write your program to talk to the QT standard library and the library knows how to talk to the different windowing APIs. That means you can write your code once and just recompile it in order to run it natively on the different platforms...no rewrite necessary.

    There are others--like the open source GTK which isn't available, to my knowledge, for native OS X though you can still get it for X11 under OS X--or REALbasic--but QT is one of the best known.

    The real downside to QT is that it costs money. Check out their website for pricing.

    Taft

    [edit]
    Oh, and to further debunk the post I'm responding to...

    There are Objective-C compilers available for Windoze. None of them are Microsoft "sponsored" to my knowledge, but they work. As a matter of fact you can get Objective-C compilers through the *nix compatibility package for Windoze called Cygwin. Sure, you don't get the Cocoa framework library, but you can create and compile code in Obj-C on Windoze.

    So theoretically, you could write the core code base as a library in Obj-C, then write a single C++ GUI application that acts as a bridge between QT and the library you wrote in Obj-C. (I *think* that the compilers for Windoze compile Obj-C and C++ simultaneously...I could check it out today at work if anyone is interested.) And this would still be cross platform.
    [/edit]
     
  8. Taft macrumors 65816

    Taft

    Joined:
    Jan 31, 2002
    Location:
    Chicago
    #8
    To all that have recommended Java...

    Cross platform support isn't free with Java. ESPECIALLY on OS X. Sure, you can write a native Java app to run on all platforms, but a Mac OS X user will not be able to run it easily. This pretty much rules out a huge percentage of Mac users from using your program.

    The problem is that you have to write OS X specific code in order to get it to launch/look/feel like a native OS X application. Its not a huge problem, but there is some overhead to accomplising that task.

    I love Java. Big time. It is my language and platform of choice. But there's no denying that a platform like QT is easier to code truely cross platform programs in.

    Taft
     
  9. X-Baz macrumors member

    Joined:
    Dec 11, 2002
    Location:
    Leeds, England
    #9
    If you're in C then GTK has been ported pretty much everywhere, in C++ there's wxWindows. There was also a whole framework (called ACE if I remember rightly) for developing cross-platform in C++.

    There is about ten minutes work to do - set some runtime properties, if on a mac register an object with the system, and then make sure that your buttons appear in the right place (one reusable class sorts that for you). I've never used QT but if it's easier than that then I'm amazed.

    As for Realbasic, it's way ahead of the BASIC from the old days, way ahead of VB6, but behind C++, Java and VB.net. But it's certainly worth considering.
     
  10. Taft macrumors 65816

    Taft

    Joined:
    Jan 31, 2002
    Location:
    Chicago
    #10
    Its not 10 minutes of work the first time you do it. Sure AFTER you write the class, you can use it in future programs, but it ain't free.

    But your ponit is taken, converting a Java program to a pseudo-native OS X program is really easy. But QT is easier. The downside there is that you have to learn a new GUI API. That being said, I learned QT far quicker than Swing and the layout mangers for Java.

    Taft
     
  11. X-Baz macrumors member

    Joined:
    Dec 11, 2002
    Location:
    Leeds, England
    #11
    And use C++ :(
     
  12. Taft macrumors 65816

    Taft

    Joined:
    Jan 31, 2002
    Location:
    Chicago
    #12
    Another very good point.

    Once you go Java, its hard to go back. :)

    Taft
     
  13. ibookin' macrumors 65816

    ibookin'

    Joined:
    Jul 7, 2002
    Location:
    Los Angeles, CA
    #13
    Unless, of course, you want halfway decent performance in OS X and are willing to make some concessions in terms of cross-platform compatibility.

    Personally, I don't like Java too much. I've found that the performance in OS X leaves MUCH to be desired. For quick and dirty applications, REALbasic is great. The applications are actually compiled, whereas in Java they are just run through a Virtual Machine. REALbasic is also even easier to learn and use then Java. I haven't played around with VB, but I have a friend who says that the ease of use of VB.net is incredible.

    For those of you complaining about how long it takes to write something in C/C++/Java/what-have-you, I have to do assembly language (for x86 processors, sigh :() for a programming class now and it's such a beeyatch to code. A simple "if...then" statement that would take 2 lines of code in Java takes an entire subroutine to complete in assembly. An else or else if statement? You need another sub.

    Us kids today have it so good with our "object oriented development" and our "same programming language for different kinds of processors". :D

    EDIT: Just noticed that this thread has a TOPIC. IMO, the best crossplatform dev tool is Java. Pretty much everything can run Java code once the JVM is installed, and as much as I hate the performance, being able to take the EXACT SAME CODE written on my Mac and go use it at the PCs at school with no problems (as long as you don't use any of the OS X Java libraries) is pretty nice.
     
  14. Taft macrumors 65816

    Taft

    Joined:
    Jan 31, 2002
    Location:
    Chicago
    #14
    I find the GUI layer to be relatively slow on OS X, but not the underlying VM. Swing has always been relatively slow on the platforms I've used it on, but that slowness seems accentuated on OS X. The situation seems to have improved with 1.4.1 and Jaguar, but its still not great.

    I do find the VM to perform acceptably, however. Command-line programs do their job quickly.

    Taft
     
  15. X-Baz macrumors member

    Joined:
    Dec 11, 2002
    Location:
    Leeds, England
    #15
    After noticing an article on Javalobby, I've just been playing with the Java bindings for wxWindows (wx4j.org) and the speed's incredible - much faster than Swing and much faster than SWT (Eclipse is unusable on my lowly G3 500). Unfortunately, it looks like the code is a straight port from the C++, so is pretty ugly, and there's some native code to deploy with your app (a jnilib/so/dll file). But, after half an hour of reading the docs and playing with the demos, I'd say that this is probably your best bet for cross-platform development!
     
  16. Taft macrumors 65816

    Taft

    Joined:
    Jan 31, 2002
    Location:
    Chicago
    #16
    wxWindows looks great...like a free QT. The Java Binding looks a bit hokey, though. No docs for it, either.

    In response to the original poster, I'd give wxWindows a try.

    Taft
     
  17. Flynnstone thread starter macrumors 65816

    Flynnstone

    Joined:
    Feb 25, 2003
    Location:
    Cold beer land
    #17
    Thanks for the excellent replies :)

    The closest appears to be RealBasic. I do have a license for it. Had a few crashing problems with the development environment. I am looking for a RAD tool. My favorite is Borland Delphi.
    So the ones I am looking at are the ones that support Rapid Application Developement (RAD). The ones I see that fit in this catagory are :
    - Borland Delphi, Builder
    - Apple Project Builder/Interface Builder
    - RealBasic
    - Borland JBuilder

    I see RealBasic as idea, the silver bullet (except for the Basic part :) )
    I like the idea of Java, but I've heard and seen the speed issue. I don't have a grasp of the porting issues.
    My primary target is OS X for applications. Secondarily, Linux with no GUI (exception html). And third Window, to give marketting demos.
    I'm not interested in free and/or unsupported tools. It needs a future.
    I really like Cocoa, but Apple needs to support Windows. As a developer, looking at Windows with their market share, I would like a tool (like Cocoa/Project Builder ...) that can support Windows cross development. Perhaps something like a subset of VirtualPC in reverse. Give OS X the primary focus, ( with the speed advantage) and Windows second (slower is OK).

    Can RealBasic "call" Objective C, C++ and C code.
     
  18. X-Baz macrumors member

    Joined:
    Dec 11, 2002
    Location:
    Leeds, England
    #18
    I'm a Delphi coder by day - and yes, that's what I really want as well! I'm pretty sure that Realbasic can call C++ modules (I think they call them plugins), but the bloke above, with the column at Applelinks is the one to ask - I remember when I was looking at Realbasic, I found his writing very useful.
     
  19. Flynnstone thread starter macrumors 65816

    Flynnstone

    Joined:
    Feb 25, 2003
    Location:
    Cold beer land
    #19
    I just read in another thread that Apple is ( rumored) to port Safari to Windows. Apple (I believe) has said that it will port iTunes to Windows.
    Going on the assumption that Apple is intelligent, and that there is presently no Cocoa for Windows. Perhaps Apple will come out with a Cocoa port of sorts for Windows. That way they can keep essentially one code base for iTunes or Safari ( or what ever)
    I think it would be a brilliant move. :)

    ( Also it is something I could use. ):)
    Hopefully this isn't wishful thinking taking advantage on me :D
     

Share This Page