BANGALORE, INDIA:
Macs have long been popular with graphic designers and in the entertainment industry. Since the release of the original Mac OS X, and with every subsequent release, more and more developers are discovering that a Mac isn't just something that sits in the corner and looks pretty. Let's take a look at what Macs have to offer to the developer community.
Mac applications
If you want to develop applications for the Mac, needless to say, you've gotta do it on a Mac! The de-facto language of Mac developers is Objective C, an object oriented extension of C with Smalltalk like syntax. Objective C adds concepts like messaging and automatic memory management (with Objective C 2.0) to C. In other words, Objective C code is like pure C code with object oriented constructs. This makes the code readable for anyone with background in C.
If you are looking to write Mac applications, it's looking increasingly like Cocoa is your only remaining friend - not that there's anything wrong with it! For a long time Mac developers have had two options for developing native applications - Cocoa and Carbon.
Carbon is the older options of the two, allowing users to write their applications in pure C/ C++. Many popular Mac applications like Microsoft Office and Adboe Photoshop are written in Carbon though with the release of Leaopard Apple seems to be signalling that Carbon's time is up (no 64 bit support for Carbon in Leopard). Thus, if you are starting off developing a Mac application in today's world, you are well advised to stick to Cocoa.
Cocoa is a collection of modern frameworks and APIs that allow you to build "Mac like" applications. As mentioned above, Objective C is the most popular (and Apple's recommended) option for Cocoa developers, though one can also use languages like Python and Ruby (via bridges).
Apple complements these modern frameworks with ultra-modern developer tools. Xcode (the IDE) and Interface Builder are playgrounds that any developer would love to play in and are supplemented by nifty tools like Instruments that allow you to monitor your application performance in real time. All this, of course, comes with tons of documentation and sample code - think of it as MSDN without the pain!
Web Developers
Web developers have the advantage of developing in an environment that comes with a pre-installed industry standard web server (Apache) and a modern web browser (Safari). You can supplement your experience with popular cross platform tools like Dreamweaver or mac native stunners like Coda, that offer single-window web development experiences. You can test your web apps on a wide variety of browsers like Opera and Firefox (or it's Mac only cousin Camino) that have their Mac native versions and even on Internet Explorer without going anywhere near a Windows machine via VMware Fusion/ Parallels or Boot Camp. Think small is beautiful? Take a look at Apple's Dashcode, a tool dedicated for development of nifty web widgets.
The Ruby on Rails (RoR) community has taken to Macs in a big way - infact all "core" Rails team members use Macs! This is down to the relative ease of installing (and running) a wide variety of databases (MySQL, PostgreSQL, SQLite etc) and web servers (e.g. LightTPD) on a Mac as well as the emergence of a text editor called TextMate that has RoR specific "bundles" which make development a breeze. Ruby on Rails comes pre-installed on all Macs.