@Kevin Walzer: One aspect of Cocoa that I've never been able to get my head around is the requirement of putting all the connections and actions and outlets and so on *in the nib file.*
As Jeff LaMarche said, Interface Builder is just a convenience. Anything you can do in IB you can do in code. In fact, IB can only set attributes on an object that are exposed by the object's class, and some properties can only be set in code.
Mac programmers use IB and NIB files because they save tons of time and reduce boilerplate code. Some also find it helpful for visualization. The main point of Cocoa is to get you away from spending time on tedious tasks and on to things that are unique about your app.
Many web developers don't like such tools because the HTML generated by such tools is more bloated than they would write themselves
IB actually doesn't generate code. It just sets properties on objects using the same methods you'd use if you were doing it by hand.
For what it's worth, IB could be used to generate classes in earlier versions, but it would only really generate the headers, not the implementation. In any case, I don't think that functionality is available anymore.
by Scott Stevenson — May 30
As Jeff LaMarche said, Interface Builder is just a convenience. Anything you can do in IB you can do in code. In fact, IB can only set attributes on an object that are exposed by the object's class, and some properties can only be set in code.
Mac programmers use IB and NIB files because they save tons of time and reduce boilerplate code. Some also find it helpful for visualization. The main point of Cocoa is to get you away from spending time on tedious tasks and on to things that are unique about your app.
Many web developers don't like such tools because the HTML generated by such tools is more bloated than they would write themselves
IB actually doesn't generate code. It just sets properties on objects using the same methods you'd use if you were doing it by hand.
For what it's worth, IB could be used to generate classes in earlier versions, but it would only really generate the headers, not the implementation. In any case, I don't think that functionality is available anymore.