Hi jamdr,
I'm new to Cocoa and it continually surprises me how horrible the interface building tools are.
And that's probably because you're new to Cocoa. I'm constantly amazed by what I can accomplish with IB. It's really supremely elegant. Throw in Cocoa Bindings and I'm the happiest clam in the sea.
Apple uses a lot of custom controls apparently (that admittedly look good) and expects developers to reinvent the wheel every time they want a similiar look
First off, consider that the look and feel of many Apple applications are very deliberately branded. Of course they wouldn't want you to instantly create apps that could be confused for their own.
As for reinventing the wheel, the easiest solution is to get off the Apple-GUI bandwagon. Take what you get for free (which is quite a bit), use available third-party frameworks that provide the GUI functionality you can't live without, and only spend the additional dev time on those special bits that are truly important to the design of your app. Unless you're getting the new bits for free, don't assume you need to implement every new Apple GUI widget.
which they should becuase consistency is a GOOD thing!
Perhaps this was a concern ten or more years ago when many people didn't get enough time on a computer to recognize some standard conventions, but nowadays, I don't buy it anymore. In fact, there are so many different apps in common use (sometimes all open simultaneously) that I'm grateful for applications that provide a bit of visual context. I instantly respond appropriate to each app exactly
because it looks different. I don't have to think twice about "what app is this and what was I doing?"
Interface Builder also really needs to support toolbar creation because it requires a whole lot of annoying and tedious code to do it manually.
Toolbars are super fast if you keep a template file, then copy and paste it into your new app. However, there are third-parties that have provided toolbar creation solutions.
And they should make available...I don't really want to touch the Obj-C issue...but Apple WILL lose developers if...programming for OS X is a lot more annoying than it is on Windows. I feel like Microsoft has done A LOT for developers and Apple really couldn't care less.
Kudos on having strong opinions. I stand diametrically opposed to these statements. Cocoa developers are some of the most productive and joyful programmers I've ever met (with the exception of anyone rolling Ruby on Rails... cover your eyes 'cause their smiles are so bright!)
I have a hunch that you're mixing up the frustration you feel learning lots of new stuff, with the tools you're using. Hang in there, dig around the WWW or your local scene to find other Cocoa programmers that can provide help in the areas that interest you, and hunker down to learn it. It'll take a while, but go ahead and take on Cocoa + Obj-C + Cocoa Bindings + XCode/IB ( + CoreData if you're feeling really sparky). As you grok the pile you'll find yourself swimming in a wonderfully elegant toolset to develop with.
FWIW, this is all my personal opinion and YMMV.
Best,
Logicat