Welcome to the MacNN Forums.

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

You are here: MacNN Forums > Software - Troubleshooting and Discussion > Developer Center > So, you want to be a Developer...

So, you want to be a Developer...
Thread Tools
Addicted to MacNN
Join Date: Dec 2000
Location: Guidance Counselor's Office
Status: Offline
Reply With Quote
Jun 4, 2001, 09:10 AM
 
I am just beginning the learning process for programming for the Mac OS (Classic and X). I am at point zero, at the moment. What development platforms are suggested as best for learning the basic concepts? CodeWarrior? RealBasic? Standard Dev tools from Apple? What are my best resources (in book print or .pdf or html or whatever). Best place to "learn the language" as in terms and definitions (as opposed to the programming language itself)? Best advice for someone who is just starting out? Thanks in advance.

[ 06-04-2001: Message edited by: maxelson ]

I'm going to pull your head off because I don't like your head.
     
Moderator
Join Date: Sep 2000
Location: Irvine, CA
Status: Offline
Reply With Quote
Jun 5, 2001, 02:01 AM
 
Originally posted by maxelson:
<STRONG>I am just beginning the learning process for programming for the Mac OS (Classic and X). I am at point zero, at the moment. What development platforms are suggested as best for learning the basic concepts? CodeWarrior? RealBasic? Standard Dev tools from Apple? What are my best resources (in book print or .pdf or html or whatever). Best place to "learn the language" as in terms and definitions (as opposed to the programming language itself)? Best advice for someone who is just starting out? Thanks in advance.
</STRONG>
I would suggest starting out in C first then maybe a little C++. You need a solid foundation in C to do any programming in the Classic Mac OS or X. I would also suggest getting CodeWarrior (the one for 50 dollars) and trying that out and see if you like it or not. The nest book on C is aptly named "A Book on C" by Al Kelley and Ira Pohl. A good C++ book is called "Using C++" by Robert McGregor. A good website is www.codewarrioru.com. The best way "to learn the language" is not any place at all. You have to write the actual code to get a "feel" of the language. Good luck!

[ 06-05-2001: Message edited by: mindwaves ]
{{{ mindwaves }}}
     
Junior Member
Join Date: May 2001
Status: Offline
Reply With Quote
Jun 5, 2001, 03:00 AM
 
once you've got some basic programming skills down in C or C++ or objective C, you'll want to get Learning Cocoa by O'Reilly.

You can also check out some of the PDF refs and tutorials that Apple includes with the Developer Tools.
     
Dedicated MacNNer
Join Date: Apr 2001
Location: San Francisco, USA
Status: Offline
Reply With Quote
Jun 5, 2001, 04:01 AM
 
Classic is dead. If you are just starting to program you shouldn't dirty your mind with old Classic APIs that smell like rotting Pascal. Start with a clean slate. The $129 investment in Mac OS X (with its bundled Developer CD) is a much better value than Code Warrior. And as a programmer you'll want to get comfortable with UNIX and all its freely available tools.

To start you might consider Python, which is available on all platforms. It is a simple, elegant, interactive scripting language. There are good books out there that use Python to teach beginning programming skills. Next you could do Java. Java is a controversial language, but IMO it is a great way to learn object oriented programming. However you might want to skip it if you are planning on learning Objective-C.

Once you've gotten up to speed on the general concepts, get a book like "Practical C Programming" to dive into the gritty details of pointers and memory allocation. Write lots of your own code. More importantly, debug other people's code. Having a good foundation in C is important for the serious programmer.

Of course, having fun is the goal. That's where Cocoa comes in. You can jump straight to Cocoa from Java, or you can go the long way by learning C and then Objective-C (my recommendation). Cocoa is a powerful environment and very rewarding. If you go the C route you can also access Carbon and Core Foundation, the other major libraries in Mac OS X.

To summarize.

Python -&gt; Java -&gt; Cocoa using Java, or
Python -&gt; C -&gt; Objective-C -&gt; Cocoa using Objective-C


This is how my learning experience went:

BASIC -&gt; LOGO! -&gt; Hypercard/Lingo -&gt; C -&gt; Java -&gt; Lisp -&gt; C++ -&gt; Objective-C

I probably missed a few, but you get the point. IMO you can gain the lessons of BASIC, Logo, Hypercard/Lingo and Lisp using Python. C is ugly but necessary. C++ adds object oriented concepts but gets even uglier in the process. I much prefer Java for OO stuff. Finally there is Objective-C, the top of the "food chain".

Good luck!
     
Dedicated MacNNer
Join Date: Nov 1999
Location: Georgetown, Demerara, Guyana
Status: Offline
Reply With Quote
Jul 27, 2001, 08:06 AM
 
Hi all,

Just wanted to add a very belated note that there are also some earlier related Forum threads which might be of some use, e.g.:-
Oh, and I also wanted to add a few more of my infamous ramblings:-

As you travel along on your programming journey, try hard not to get too caught up in the various wars over the "best" language / IDE / compiler / platform / runtime-model / &lt;whatever&gt;, or the endless, tedious debates over procedural programming vs. object-oriented programming (OOP). For instance, poor Pascal (of which I have rather fond memories from my student days) is largely treated as an outcast these days, even though it's still one of the best languages around for learning the discipline of structured procedural programming. [Heck, there are even OOP flavours of Pascal available as well.] Indeed, pick virtually *any* language, IDE, etc., and you'll find rabid defenders and fervent critics battling it out somewhere, expending lots of energy & time that could probably be better spent on actually writing a killer application or something. :-)

Which reminds me... If you don't already have a good textbook on general programming-language design and/or computer architecture, it would be nice to keep at least one nearby, to give you a better understanding of the various tradeoffs involved in *any* computer language, and the broad classification categories that are related to those tradeoffs, such as Compiler/Linker Model (e.g., interpreted vs. just-in-time vs. compiled); Structural/Semantic Model (e.g., procedural vs. OOP vs. messaging); Data/Runtime Model (e.g., strongly-typed vs. dynamic-binding vs. lazy-evaluation); and so on. You'll also gain a firm grasp of fundamental, portable concepts such as stacks, heaps, arrays, queues / linked-lists, recursion, file i/o, etc. [For a wide selection of CS textbooks, see the usual suspects such as Amazon (especially for reader reviews), or Barnes & Noble's College Textbooks section, or BookPool's Programming Language Topics subsection.]

Of course, it's also true that most of us developers are subject to the dictates of our supervisors & managers (or lecturers & professors, if we're students), and typically have little choice regarding which computer languages & platforms we end up with. [E.g., I became proficient in C/C++ under duress, not by choice. I also learned much more about non-Mac platforms such as MS Windows & IBM Mainframe/MVS than I ever wanted to know. At least nowadays I do have more time to spend developing private projects on my trusty Mac, and I'm now plunging into the brave newish/oldish world of Mac OS X as well. :-)] However, if you're lucky enough to work as an independent developer, or are in a more flexible school or corporation (and, most importantly, have lots & lots of spare time), then I would urge you to try at least one language from each of the broad categories, not just to keep your creativity intact but also to be able to recognise when a particular language might be better suited to a given task.

Regards,

--Paul
     
Dedicated MacNNer
Join Date: Jan 2001
Location: Computer Error: Unknown
Status: Offline
Reply With Quote
Jul 27, 2001, 05:39 PM
 
I'm surprised that nobody has reccomended REALbasic yet. REALbasic is the best development enviornment out there for Mac and Windows.

With REALbasic, you can literally develop an application that runs on Mac OS 9.x, Mac OS X (In carbon, not Classic), and Windows in minutes. And it works well for large projects as well.

The language is intuitive and easy to learn, and even allows you to call Toolbox Calls for the things that don't have a REALbasic native implementation. REALbasic is also completely object-oriented. The documentation is also some of the best documentation in the world--it comes with a Language Reference, a Developer's Guide, and a Step-by-Step tutorial that takes you through the process of making a simple word processor. (Another plus is that the books are spiral-bound, making it easy to keep open on a desk or table)

The community of REALbasic developers is very knowledgable and can help you out with just about anything. Many of the prominent figures in the REALbasic community (including Matt Neuburg, author of REALbasic: The Definitive Guide and the employees at REALsoftware) subscribe the the mailing lists. And there are hundreds of helpful web sites about REALbasic.

The pricing is quite reasonable, and if you're a student, you can get some good discounts from REAL Software. They are fairly flexable as well (I got my 1.0 registration when I was in Junior High).

REAL Software also releases the alpha and beta versions of the IDE during the development cycle, some only a few days apart.

Again, the URL is http://www.realsoftware.com/realbasic/

You know, I should really get a job writing the marketing materials for REALsoftware

[ 07-27-2001: Message edited by: graphiteman ]
"...Because the people who are crazy enough to think they can change the world,
are the ones who do."
-To the Crazy Ones

     
Addicted to MacNN
Join Date: Mar 2001
Location: The Rockies
Status: Offline
Reply With Quote
Jul 28, 2001, 10:07 AM
 
Hey maxelson.

I may come at this from a slightly different perspective, because I'm not a "pro," but I do programming on the Mac as a peripheral part of my job. They are smallish strictly in-house apps for research that don't need to be optimized for speed, memory management, etc. I'm guessing that, from what I know about you from the lounge, this may fit you, too. If I'm wrong, please ignore.

I think you have two choices:

1. RealBASIC, or

2. Cocoa

Are you going to be focusing on OS X? Go with Cocoa.

Do you want to develop for OS 9 and/or Windows? Go RealBASIC.

Are you going to want to do professional-quality programming? Go Cocoa.

How fast do you want to get up and running? If fast, then go RealBASIC.

Some of the others have suggested a particular path. If you're going to do amateur programming, I recommend just diving right in, rather than spending 6 weeks with C, then 6 weeks with C++, etc. Start with simple apps and build a repertoire. You'll go back and learn what you need in order to solve a specific problem.

Of course, if you are changing careers, or you'll want to do more professional work in the future, then I'd take a more structured approach to learning.

I've used RealBASIC for most of my apps in recent years, but my research lab will be changing to OS X over the next year or two, and so I've been playing with Cocoa. But I don't know if I'll actually make the switch. If I were starting now, I think I may just start out clean with Cocoa.

Just realized this is a couple months old now. What did you end up doing, maxelson?
     
   
Thread Tools
Forum Links
Forum Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Top
Privacy Policy
All times are GMT -5. The time now is 11:06 PM.
All contents of these forums © 1995-2011 MacNN. All rights reserved.
Branding + Design: www.gesamtbild.com
vBulletin v.3.8.7 © 2000-2011, Jelsoft Enterprises Ltd., Content Relevant URLs by vBSEO 3.3.2