Another Cocoa developer
I have been doing software development, mainly custom in-house industrial or scientific projects, for a little while now and have worked in many languages: BASIC, Pascal, C, C++, Java, Scheme, PHP, etc. I now do almost all of my coding, for this company or for my day job, in the Objective-C language using the Cocoa frameworks. Aside from the GNUStep project, Objective C and Cocoa are only used on Apple's products: the Macintosh computers and (soon) the iPhone and iPod Touch. Why would I limit myself to such a small subset of all computing hardware?
Cocoa is worth it. As I said, I've been exposed to a large number of languages on quite a few platforms. I came to Mac OS X from Linux, specifically the Gentoo distribution, an operating system designed by programmers, for programmers. I've always had an interest in cross-platform development and making sure that I could adapt my code to compile and run on everything short of a toaster. However, the more I started reading about Cocoa and watching some of the excellent CocoaCast screencasts, the more I saw how easy it was to create powerful applications.
I won't get into the specifics of Objective C as a language or what is in the Cocoa frameworks, for that I direct you to resources such as Scott Stevenson's Learn Cocoa tutorial series. These are just my general impressions of Cocoa as a whole.
There is a rational architecture behind Cocoa, built off of its NeXTSTEP foundations. Powerful objects like NSString, NSBezierPath, and NSError are available to all developers and are used throughout Cocoa's core. Concepts are logically organized within the Cocoa frameworks, and presented with some of the best API documentation I've seen. Not only that, but the coding style put forth in the Cocoa frameworks and adopted by independent Cocoa developers leads to elegant code that comes very close to documenting itself. This makes Cocoa the first development environment that I feel I can understand, almost from top to bottom. When doing programming with other toolkits, such as the excellent cross-platform wxWidgets, I relied heavily on example programs and tried not to stray too far from them, lest I break something. In Cocoa, I am much more confident that I can start from scratch, write out what I want the code to do, and have it work, without constantly referring to routines others have written.
The power and ease of development using Cocoa has allowed tiny independent programming shops to produce competitive alternatives to software from massive companies. Examples include the Omni Group's OmniPlan and OmniGraffle, which are superior in many ways (including price) to Microsoft's Project and Visio, respectively.
I've heard a lot of complaints lately in discussions about the iPhone SDK and its reliance on Objective C and Cocoa. They tend to go something like "Apple is crazy for basing the SDK on a language that no one uses and ignoring the hordes of C++ and Java developers out there". All I can say is, give it a try. If you have a Mac, the Xcode IDE, the Interface Builder GUI designer, and all the other tools you need for development either come for free on your Mac OS X install disc or can be downloaded from developer.apple.com after creation of a free user account. I think you'll see the elegance that has drawn me to the platform.
Comments
How would I get in touch with you? I asked an iOS question on SO and I was wondering if you could help me please.
http://stackoverflow.com/questions/4988731/how-can-i-retain-modal-views-...
Thanks.
You can reach me via the email at the bottom of the page here: contact@sunsetlakesoftware.com.
Unfortunately, I can't think of an easy solution to your problem, short of dismissing the modal alert, then re-displaying it upon the appearance of your new view. Typically, I don't replace views on rotation, I simply resize them to adjust to the new screen dimensions within the split views that I normally use.