Slashdot Mirror


Modern Mac Development?

CDarklock asks: "I'm getting seriously interested in setting a new Mac next to my Windows box (to replace the Mac SE, which should tell you about how long it's been). But on Linux and Windows, I'm accustomed to writing lots of custom apps in C++ to fill the gaps around the system, but I haven't written anything on a Mac for something like fifteen years. As a professional Windows developer, what sort of expense am I facing to outfit a new Mac with development tools comparable to Microsoft's Visual Studio .NET, and what sort of learning curve should I expect?"

5 of 210 comments (clear)

  1. Apple Development by Laplace · · Score: 5, Informative

    Apple ships OS X with a developer tools CD. That's where you will want to start. It will give you most of your basic gnu development tools, along with Xcode (a decent IDE which is getting better with every revision) and some mac-specific profiling tools.

    The next step is to sign up for the Apple Developer Connection. It has many membership levels ranging from free (so you can download developer tool updates) to very expensive. Update your compiler and tools to the latest version using this service.

    If you like Java, downloading Eclipse might be a good way to go. I haven't used Eclipse much, but have enjoyed all of my experiences with it on OS X.

    You will also want to install either Darwin Ports or Fink. These are package management systems that are based on BSD Ports and apt (respectively). I'm partial to Darwin Ports, but both systems have their strengths and weaknesses.

    If you want dead-tree documentation, the two books to start off with are "Cocoa Programming for Mac OS X" by Aaron Hillegass and "Core Mac OS X and Unix Programming" by Mark Dalrymple and Aaron Hillegass. These guides are thorough, and the authors have been part of the Objective-C/Cocoa community since the Next days, and give good tutorials on what is the Mac philosophy of software development.

    Another option for an IDE, which has decent but dated interfaces to the OS X world is CodeWarrior. I know a bunch of developers who swear by the CodeWarrior development platform. I really couldn't get into it myself, but it seems to have a nice toolkit for cross-platform development.

    Have fun!

    --
    The middle mind speaks!
  2. Other than the obvious by amichalo · · Score: 5, Informative

    Everyone has (and will continue) to discuss Xcode.

    I can give some insight into the question of learning curve.

    I develop .NET web apps at work on XP but have a Mac at home. there are a good many differences:

    - The mac is like Linux. Get used to the Linux command line. If you don't know basic commands like LS instead of DIR then the curve will be steap. If you have used a *nix system or are a quick study, I would pickup an O'reilly book and get up to speed with things like user permissions (CHMOD) and GREP and the Pipe "|" for automation. Also know than things like Chron jobs replace Windows Scheduler. Get a book adn take the few hours to skim it. It will be a great reference if nothing else.

    - Perpare yourself for more text editor usage and less sophisticated Integrated Developer Environment (IDE). Okay, let the Apple Xcoders begin their flame. I really feel that MS got some things very very right with Visual Studio .Net and it is way different developing .Net apps with the IDE in Visual Studio. I have developed php apps on the Mac and used TextEdit and BBedit (a great OS X only editor). IMHO, seasoned coders who really know their stuff will do well transitioning from VS.net, beginers will have a few less crutches to use.

    - You're gonna need an office suite. MS Office.X is great, but for the money, I kinda like OO.o and use NeoOffice/J myself. A Mac alternative to Visio is OmniGraffle and is better IMHO.

    - Get used to few, but higher quality choices. Okay, this one is touchy too but there are few fewer choices for software and websites to Google for a problem but the ones you do find for whatever the task might be are of better quality I think. Apple does a great many things right the first time so even if an article is written for Jaguar, it may very well work under Tiger, etc. I have found this very frustrating as I try to install something under IIS 6 with a document written for IIS 5 for example.

    - Don't underestimate the hardware. Okay, your budget, your choice, but I would be more inclined to recommend to a serious developer buying a Power Mac (watch out, rumors of new updates in May so careful with the timing) over a Mac mini. The Mac mini is great for a home user wanting to check email, but if you are going to develop, compile, and potentially deploy Web Objects and such, don't underestimate the G5's supperiority to it's 32-bit father. At a minimum, follow all the recommendations and get 512mb ram (I have a Gig and use it).

    Lastly, "Welcome".

    --
    I only came here to do two things; kick some ass, and drink some beer...looks like we're almost out of beer.
  3. Xcode + a good book or two by anactofgod · · Score: 5, Informative

    Is all you need to write the sort of apps that you were talking about.

    Xcode, as every other post has said, is free.

    Wrt books, I'd recommend "Cocoa Programming for Mac OS X, 2nd ed", by Aaron Hillegass. Aaron has a lot of experience teaching NextStep, WebObjects and OS X development, and his book reflect that experience. It is excellent - much better than the O'Reilly offerings I've seen. Big Nerd Ranch also has a book about programming the underpinnings of OS X called "Core Mac OS X and Unix Programming." Haven't seen this version book yet, but apparently it's the spiffed up, published version of BNR's student guide, so I'd bet it's pretty well done. You can get both together for $96.20 from Amazon.

    There are other good references, tutorials, as well, some free on-line, and some for purchase. Do some Googling and mining on Amazon or B&N to find one that suits your purposes.

    BTW, OS X has some very strong scripting capabilities built in that you might find useful for the kinds of apps you typically develop. And, as someone else noted, Ruby and other cool hacking languages come shipped with OS X and work well with XCode. Also, Eclipse, with all its goodness, runs nicely on OS X.

    Lastly, if you want to put the limitations of "modern" programming languages behind you and get back to the future of software development, OS X has some of the best OSS Lisp implementations. SBCL or OpenMCL (if you want to do Cocoa apps), plus SLIME and Emacs is all a real programmer needs, and it's all free. *grynn*

    --

    ---anactofgod---

    "Equal opportunity swindling - *that* is the true test of a sustainable democracy."
  4. Re:Defend your position!? by alanQuatermain · · Score: 5, Interesting

    I've been using Xcode for things for years now, and the only thing that takes any real time for me is the precompilation step.

    If you build a Cocoa/Carbon application with only a couple source files, it may take a while to build the whole thing, but that's more than likely just the precompilation step (which is likely precompiling a large percentage of the header files installed on your system, and only happens on first build or after a 'clean' or 'clean all').

    That said, I rarely have any problem with such applications. In fact, I quite often build one-source-file testing applications with Xcode just to try things out - for example, to see what error codes are returned by FSMountServerVolumeSync() under different situations (already mounted by same user, already mounted by other user, invalid volume, invalid server, invalid user/pass, etc.). I rarely have a problem with it.

    Perhaps the tradeoff between long precompilation time and size of other source code seems wrong to you - but in that case you can always turn it off in the target settings. Internally it just calls through to gcc, and there doesn't seem to be any significant overhead that I can see...

    -Q

  5. Good Intro to Objective-C by EccentricAnomaly · · Score: 5, Informative

    Apple has a free mini-book that intros Objective-C and gives a good feel for its capabilities:

    ObjC.pdf

    I highly recommend it to anyone coming from a C++ or Java background who is wondering what the big deal about Cocoa is.

    And if this little PDF catches your Fancy, Aaron Hillegass has an excellant book: "Cocoa Programming for Mac OS X". Another good book is "Building Cocoa Applications" by Garfinkel and Mahoney.

    --
    There are 10 types of people in this world, those who can count in binary and those who can't.