Windows Programmers Shifting to the Mac?

Vista to Core AnimationThe tide is turning or so it seems. Well, maybe it’s not quite so monumentous as a tide shift, but there is certainly a buzz in the air that I think is indicative of at least a gradual shift. I can’t speak for all Windows developers of course, but I’ve talked to enough of my friends to know that the Macintosh is no longer in their eyes some obscure computer made by some obscure computer company that makes computers for artists. It’s got some amazing tech that would appeal to any geek especially programmers who have the initiative to take advantage of it.

I made the switch to the Mac along with a job change back in June of 2007 and I have to say that I am glad I did. It’s not to say that there aren’t good tools for programmers on Windows, but there is most definitely a different approach to everything from the kinds of applications that you build to the way you build them on the Macintosh. These differences in some areas are subtle, but in others they are monumentous.

Core Animation, for instance, a technology that enables programmers to use animation to provide users with visual feedback of many different sorts (e.g. change window frame dimensions and watch the window change in steps rather than having the frame update instantly), is really groundbreaking. It’s not something that you see in Windows programming. There are many other technologies that have a similar appeal. Some frameworks that I’ve used such as WebKit–a framework for building web applications, or QTKit–a framework for building multimedia applications based around QuickTime, are exciting and interesting to work with.

I have made predictions in the past that haven’t come true, so when I make a prediction, you ought to take it lightly. However, on this one I feel pretty confident. Apple just gets doing technology elegantly and they’ve made their tools and libraries available to everyone so that anyone who takes the initiative can build elegant software themselves. This fact, I think, will soon have a snowball effect that will start brining programmers from the Windows world in droves. Considering the disappointment that Vista is and the fact that Microsoft doesn’t even seem to like it, Windows programmers are going to start looking for ways to deepen and broaden their toolsets and even consider new platforms such as the Mac.

So what are the hurdles to entry? I think the following list pretty well summarizes it:

  • The cost of a Mac. I’ll put this one out there even though I don’t agree with it. To get a decent professional laptop, you’ll pay at least as much if not more to get similarly equipped systems to the MacBook Pro line. The MBPs were just recently upgraded and the price is actually excellent for the specs you’re getting
  • The cost of the development environment. Oh wait… XCode is free and comes with every new Macintosh. Scratch that!
  • Objective-C uses square braces. Well, you will need to learn a new language. Just take it by the horns and go for it. It’s not that hard and once you become proficient with it, you’ll prefer it. It’s very powerful and often intuitive.
  • No real hurdles. There really aren’t any major hurdles to entry. Just get a Mac and start coding. It’s that easy. And if you need some pointers, take a look at my XCode 3.0 article to get your started. When you’re done with that, head on over to Cocoa Dev Central for some great tutorials or your can check out Cocoa is My Girlfriend a new site that Marcus and I put together.

If you are planning to switch or have just recently switched to the Mac, you should know that you are far more likely to find work building applications for consumers. Most of the work I’ve done over the years on Windows has been business software. This is one of the main differences. I think this will also shift over time, however, for right now, expect to build applications your mother might use rather than software your company might use. And if you have any questions as to what other benefits there are, talk to any successful independent Macintosh software vendor out there. There are lots of them and they do very well.

Core Animation Tutorial: Window Shake Effect

Marcus and I have started to have NSCoder Nights on Monday’s at Panera Bread on Powers near S. Carefree. We’ve been working to try to learn how to do certain OS X Leopard animation effects using Core Animation. The first challenge we took on was figuring out how to shake a window back and forth to indicate that the user has entered the wrong password in the login window. OS X does this when you try to login and enter your password incorrectly. If you’ve never seen it before, you either don’t have manual login enabled, or you’ve never entered your password incorrectly.

Anyhow, the article is short, but it has an XCode project that you can download and use. Take a look at the post, Core Animation Tutorial: Window Shake Effect and let me know what you think.

NSOperation Example

I just finished writing a new article for Cocoa Is My Girlfriend. I am building on the work Marcus did on his first article called Cocoa Tutorial: NSOperation and NSOperationQueue. In my article I’m taking a slightly more practical approach where I provide a flicker free method for grabbing images from a currently playing QuickTime movie. The NSOperation grabs the image data from the movie and saves it out to a folder in the filesystem specified by the user.

I think it is pretty cool. I hope it will help others see the power and flexibility of NSOperation and NSOperationQueue.

Read the new article, NSOpeartion Example, here.

Cocoa Tutorial: NSOperation and NSOperationQueue

I just finished helping Marcus post an article on our new site Cocoa Is My Girlfriend, a site dedicated to providing blog posts and tutorials on how to develop applications using Objective-C and Cocoa on the Macintosh.

This first post is on how to use the new threading objects found in Mac OS X Leopard (10.5) called NSOperation and NSOperationQueue. They provide a really simple and robust way to do multi-threaded programming. Take a look at the post and let us know what you think.