From asr at ufl.edu  Mon Oct 24 16:43:59 2011
From: asr at ufl.edu (Allen S. Rout)
Date: Mon, 24 Oct 2011 10:43:59 -0400
Subject: [Rd] RFC: 'igraph' package update and backward compatibility
In-Reply-To: <CABdHhvE6Db9-j9q5Or3Na3-KU+h1wNkFaH57rhDeBiXm5ritaw@mail.gmail.com>
References: <CABtg=KkMw9Yxk+pQWYkw9A1LLuCYqztAw027XSiteZmTCfpHJw@mail.gmail.com>	<CABdHhvEUeXmsQRQx4fax6WaVu31r4=-AkVmrzkqTKgOnFk+HoQ@mail.gmail.com>	<4EA04122.50707@gmail.com>
	<CABdHhvE6Db9-j9q5Or3Na3-KU+h1wNkFaH57rhDeBiXm5ritaw@mail.gmail.com>
Message-ID: <j83tjg$3v6$1@dough.gmane.org>

On 10/20/2011 11:57 AM, Hadley Wickham wrote:

> Generally, the absence of versioned dependencies makes it extremely
> difficult to aggressively improve the design of a package.

I think that aggressively varying a given packages' API would be
confusing to most users, and damage acceptance of the package.

No matter how implemented, the semantic work remains: if ggplot2 V0.89
has features I desire, I must re-examine all of my code in light of
all the changes between V0.80 and current.  Ugh.

I think that many folks desire to upgrade because of some process like
"Oh!  I see on the list that Hadley fixed [irritating inconvenience] I
was wrestling with.  I can now use [recent happy thing] on my code I
wrote last January.

Making that a difficult, thought-intensive process would, IMO, hurt more 
people than it would help.  By a lot.

> I can not easily remedy them without breaking large amounts of
> existing code or starting work on ggplot3.

My sense is that your position is unusual: you are doing original
research all up and down the stack of visualization, representation,
analysis...  This means that you have bona-fide new structures, which
would simply demand new APIs, with much greater frequency than many
coders.

Maybe the answer is to lower your internal resistance to revising the
package name?  This would accomplish your multiple-versioning cleanly,
and clearly communicate the immiscibility of the Old Code with the New
to your customer base.  You clearly see a large hump of work to be
done before you move to the new version, but you could give yourself
permission to rev it every.. what; year?  Two?

ggplot2012?   :)

- Allen S. Rout



[Rd] RFC: 'igraph' package update and backward compatibility
Allen S. Rout