A while back, I bought my first Apple Macintosh - a Mac Mini. If you've been following my blog, I'm sure you've read some of my articles about what I like about the Mac and my occaisional comments about what I *don't* like about Microsoft. Since I am a programmer by trade, naturally, once I got the Mac I was curious to learn how to write programs for it. While studying this, I came across Cocoa. Cocoa is the Mac's implementation of Objective-C. Objective C is a variant of the regular C language that many programmers are familiar with. It basically takes existing C, and adds a thin layer of object oriented features to it. It appears, that Cocoa is the way to go when it comes to writing Mac apps. There are MANY Cocoa classes provided by Apple to make writing Mac apps easier. C#, on the other hand, is a relatively new language, invented my Microsoft. It is a variant of C++ (notice how the '#' sign looks like two '+' signs stuck together?). I always thought that C# (pronounced "C-Sharp" was a very clever name for a C++ variant. Over the last few years, Microsoft has been moving more and more of their development over to C#. C# has rapidly evolved into a very capable language for developing Windows and web applications.
I wanted to write this blog as a way of expressing my thoughts on the pros/cons of each of these languages and which I think is better , from a programming point of view. I expect this will be a long entry, so it could take several blogs to complete. (Yes, Rick is writing another 'book'.)
To give you an idea of where I am coming from in this article, a little background is in order. I have been programming in C++, mostly on Windows, as my day to day job for the last 12 years. I have a bachelor's degree in Computer Science from Florida State. Most of those last 12 years have been using 'plain-vanilla' C++ on Windows, although I did spend a year doing C++ on Linux, about 6 months doing Java, and about 1.5 years doing C# on Windows. My experience in Cocoa has been admittingly brief - only about 1 month of playing around with it in my spare time, but despite that, based on my past experience with object oriented languages, I can easily 'project' Cocoa's features onto my C++ experience and be easily able to see how these things would apply in day-to-day situations.
Now that we've got that out of the way, on to the fun!