OS X Software Development

Posted:
in Mac Software edited January 2014
Q. I am looking forward to developing some simple OS X applications, the kind where one person can do. I am a technologist that is very rusty at programming. The question:



If you were going to develop new applications for OS X only, would you choose:



a). Apple OS X Interface Builder, Project Builder, AppleScript Studio (and Java/Objective C) (Cocoa)



OR



b) REALBasic 3.5, a drag&drop cross

platform RAD tool that creates windoz, carbon apps for classic and OS X using OO Basic language. The benefit here is ease, speed

and cross platform. Minus, exec speed, OO Basic(?).



Seeking advice from OS X developers for someone new getting into OS X development.



Thanks a lot and have a happy new year.

Comments

  • Reply 1 of 8
    I would choose Cocoa and Applescript Studio(since it really is just an easy front end for Cocoa apps). Realbasic is nice but I hear it can be difficult to create apps that don't require more memory than usual. Plus programming for Windoze is not my cup of tea.
  • Reply 2 of 8
    Use PB and IB. ASS is just a frontend to hooks in other apps and can't be used for truly "original" software, IMO.



    IMHO, RealBasic has been so-so with OSX development. The apps I've seen made with RB have had interface problems and a fair bit of code-bloat. Of course, some of that could easily be the fault of the programmer.



    Now, don't completely abandon Carbon just because people think Cocoa is so much better. Use the right tool for the right job. Cocoa is best for OO whereas Carbon is best for procedural. Many things can be written better and easier in Carbon rather than Cocoa. Carbon just gets a bad wrap because there are so many shabby Carbon ports... *cough* Finder *cough* QuickTime *cough* PlayerPRO *cough* MS Media Player.



    [ 01-01-2002: Message edited by: starfleetX ]</p>
  • Reply 3 of 8
    Use Cocoa in Project Builder-get Aaron Hillegass's book Cocoa Programming for Mac OSX.By the way,I'm prejudiced,I prefer OO languages.As a sidenote,I'd like to mention that AppleScript is an OO language,a not very well known fact.
  • Reply 4 of 8
    eat@meeat@me Posts: 321member
    Thanks you all for your suggestions. It helps getting your advice to start out on the right foot. I will use PB, IB and lean towards Cocoa.
  • Reply 5 of 8
    xoolxool Posts: 2,460member
    I am a developer and have used most major development environments, including: CodeWarrior, ProjectBuilder, and Real Basic.



    I like CodeWarrior when I was using 9, but once I switched to X I tried to keep up with ProjectBuilder. My Cocoa experience is limited, but with Carbon (specifically OpenGL) ProjectBuilder was great. In fact I migrated my projects from CW to PB and don't regret it one bit.



    Now about Real Basic. Its a great tool for prototyping interfaces and one can write incredibly powerful applications with it. However it is non-standard and I've found that while I can save time with it, I spend more time fighting with the Basic language than getting work done. Now don't get me wrong, I've quickly written usefull and fully functional applications in Real Basic, but if I was planning on releasing a real application I would not write it in RB.



    So there.
  • Reply 6 of 8
    eat@meeat@me Posts: 321member
    [quote]Originally posted by Xool:

    <strong>I am a developer and have used most major development environments, including: CodeWarrior, ProjectBuilder, and Real Basic.



    I like CodeWarrior when I was using 9, but once I switched to X I tried to keep up with ProjectBuilder. My Cocoa experience is limited, but with Carbon (specifically OpenGL) ProjectBuilder was great. In fact I migrated my projects from CW to PB and don't regret it one bit.



    Now about Real Basic. Its a great tool for prototyping interfaces and one can write incredibly powerful applications with it. However it is non-standard and I've found that while I can save time with it, I spend more time fighting with the Basic language than getting work done. Now don't get me wrong, I've quickly written usefull and fully functional applications in Real Basic, but if I was planning on releasing a real application I would not write it in RB.



    So there.</strong><hr></blockquote>



    Thanks XTool. I spent some time checking out the X Development architecture and have decided that I will focus new application development with Cocoa and implementing methods in Java (even though the App and Foundation kits, the Cocoa/NextStep kits, are implemented in Obj C). I don't want to learn a new language or superset variant of C so will work with Java in methods and use IB/PB for Cocoa development, UI, etc.



    It seems that Carbon is the bridge to both worlds but I want to focus on the new direction and NeXT was renowned for its development and Model View Controller paradigm (and smalltalk).



    I think you are right about RealBasic. It was pretty incredible to do that much prototyping with complilation but OO Basic was a non-standard lang. I have also heard that it creates very large application sizes.



    After reviewing, is there any reason *not* to implement methods in Java versus Objective C???



    Thanks alot
  • Reply 7 of 8
    skipjackskipjack Posts: 263member
    You might not have to choose.



    MacOS X Developer's Guide, c2002 (Jesse Fieler):



    "Cocoa is written in Objective-C. a mechanism called the Java bridge exists to let you call Objective-C code from Jave (and vice versa). The bridge is so effective that you may not really notice it at all ..."



    "The second occasion when you need to worry about the Java bridge is when you need to call a Cocoa framework method or use a Cocoa class and you do not have documentation for it in Java. Most of the Cocoa documentation is provided both in Java and Objective-C, but there are some lacunae."



    That said, the book seems to be mostly an overview and I didn't find it to be very instructive (probably because that isn't its purpose).



    [ 01-03-2002: Message edited by: Skipjack ]</p>
  • Reply 8 of 8
    eat@meeat@me Posts: 321member
    [quote]Originally posted by Skipjack:

    <strong>You might not have to choose.



    MacOS X Developer's Guide, c2002 (Jesse Fieler):



    "Cocoa is written in Objective-C. a mechanism called the Java bridge exists to let you call Objective-C code from Jave (and vice versa). The bridge is so effective that you may not really notice it at all ..."



    "The second occasion when you need to worry about the Java bridge is when you need to call a Cocoa framework method or use a Cocoa class and you do not have documentation for it in Java. Most of the Cocoa documentation is provided both in Java and Objective-C, but there are some lacunae."



    That said, the book seems to be mostly an overview and I didn't find it to be very instructive (probably because that isn't its purpose).



    [ 01-03-2002: Message edited by: Skipjack ]</strong><hr></blockquote>



    Here is something from a person on Cocoa Developer List at Apple: (I found it highly useful)



    Read On:



    I was myself in a very similar position one year ago. Unfortunately, I was

    not so smart as you are, and didn't take advice. So I made the wrong

    decision, and learned Java. Six months later I just gave up and now I

    really enjoy programming Cocoa with Obj-C.



    Let me give you some details:

    1/ Java is a great language, with wonderful features, in particular when

    related to Internet applications. But it is not intended to build

    non-internet applications, and makes life difficult to programmers when

    doing so. That's particularly clear when doing GUI-based apps. Swing, the

    Java GUI, is far from being as good as Java itself. Cocoa with Java is

    even worse. So if you intend to make great apps on Mac OS X, with a slick

    user interface, use Cocoa the way is has been intended to be used: from

    Obj-C.



    2/ Obj-C has a strange syntax (a little bit disgusting for a C, C++ or

    Pascal programmer), but when you get used to it, it is really a pleasure

    to use it (in combination to Cocoa classes). It helps a lot, and never get

    on your way (something Java does frequently). Also it is much faster and

    easier to learn than Java, even taking into account the retain/release

    trick (which has its own advantages, and I don't find it difficult at all)

    .



    3/ You can't learn Java in isolation. You will have to learn at least some

    part of the standard Java Frameworks. Then you have to learn Cocoa

    frameworks. Both have different logics, different usages. You will get

    confused. (The picture is different if you already know Java, obviously).



    4/ If you already know C++ (or some parts of it), you can use it

    (partially or not) in complete interaction with Obj-C: that's named Obj-C+

    +. It is just C + the syntax extensions of Objective C + the syntax

    extensions of C++ (which are orthogonal, fortunately).



    I would like to add that you are completely wrong when stating that Obj-C

    is fading away. First the Obj-C language get a strong support from

    Obj-C++, because C++ is widely used, and you can learn the former from the

    latter in three hours. (Java requires much more study.) Second Java is in

    a difficult position because, as you certainly know, it is challenged by a

    large company whose name begin with Mi and ends with soft (though it is

    hard). It is somehow in the position of Netscape six years ago. Hmm. Do

    you remember Netscape? Third Obj-C is deeply nested inside Mac OS X, and

    there is absolutely no reason for Apple to remove it (would be a lot of

    efforts for gaining what?). So it will probably continue to exist as long

    as Mac OS X itself. We all hope that will be a long time, don't we?



    Someone else here told you that most student courses are given in Java.

    This is completely right. Ten years ago, the same courses were given in

    Pascal. Pascal was a great language, but who is using it now? I myself

    wouldn't certainly use Obj-C as a teaching language (would be quite a

    short course ;-), but I recommend it to real developers on Mac OS X.
Sign In or Register to comment.