Skip navigation.
 
mlRe: Why initialize the menubar without Interface Builder
FROM : Chris Hanson
DATE : Sun Nov 04 02:45:45 2007

On Nov 3, 2007, at 6:10 PM, Erik Buck wrote:

> If you have more than three developers who need to
> edit a single nib file, you have a serious problem.


This is not always the case.  Perhaps two developers want to make non-
overlapping changes to the same user interface.  This is perfectly 
well accommodated by either writing the code for the user interface 
directly (instead of using Interface Builder), or by using a format 
that has been designed to be diff-able and merge-able from the ground 
up like XAML.  You don't even need layout managers or anything like 
that, just a way of representing the object graph

This is one of those cases where there really is no trade-off: 
Interface Builder *could* support textual nib files that *do* handle 
diff and merge straight from SCM tools reasonably well.  It just 
*doesn't*.  No capabilities of the current system would be lost, and 
there would be straightforward developer benefit for what are becoming 
increasingly common cases.

> Of the ten concurrent developers, the
> usual number of GUI developers is exactly one.


This has almost never been my experience working on applications in 
teams; typically, everyone in the team will work on different aspects 
of its human interface.  Even modularizing the system into many nib 
files doesn't always prevent people from having to make simultaneous 
but non-overlapping changes to them.

> I don't think these problems with IB and nibs raise to
> the level where I would prefer to hard code all
> aspects of a GUI.


I don't think they do either.  However, that it's possible to hard-
code everything specified in a nib, and that the hard-coded version is 
diff-able and merge-able via textual SCM tools, is a proof that nibs 
themselves could be diff-able and merge-able via textual SCM tools.

  -- Chris

Related mailsAuthorDate
mlWhy initialize the menubar without Interface Builder Erik Buck Nov 3, 20:39
mlRe: Why initialize the menubar without Interface Builder Uli Kusterer Nov 3, 22:06
mlRe: Why initialize the menubar without Interface Builder Fritz Anderson Nov 3, 22:44
mlRe: Why initialize the menubar without Interface Builder Uli Kusterer Nov 4, 00:15
mlRe: Why initialize the menubar without Interface Builder Robert Nikander Nov 4, 00:26
mlRe: Why initialize the menubar without Interface Builder Sherm Pendley Nov 4, 00:49
mlRe: Why initialize the menubar without Interface Builder Erik Buck Nov 4, 01:55
mlRe: Why initialize the menubar without Interface Builder Erik Buck Nov 4, 02:10
mlRe: Why initialize the menubar without Interface Builder Jon Hess Nov 4, 02:18
mlRe: Why initialize the menubar without Interface Builder Chris Hanson Nov 4, 02:38
mlRe: Why initialize the menubar without Interface Builder Chris Hanson Nov 4, 02:45
mlRe: Why initialize the menubar without Interface Builder Robert Nikander Nov 4, 03:06
mlRe: Why initialize the menubar without Interface Builder Erik Buck Nov 4, 03:15
mlRe: Why initialize the menubar without Interface Builder Rob Keniger Nov 4, 04:29
mlRe: Why initialize the menubar without Interface Builder Uli Kusterer Nov 4, 12:33
mlRe: Why initialize the menubar without Interface Builder Uli Kusterer Nov 4, 13:06
mlRe: Why initialize the menubar without Interface Builder Jon Hess Nov 5, 19:55
mlRe: Why initialize the menubar without Interface Builder John Labovitz Nov 5, 20:11
mlRe: Why initialize the menubar without Interface Builder Jon Hess Nov 5, 20:15