Re: A new draw on XP refactoring


Subject: Re: A new draw on XP refactoring
From: Paul Rohr (paul@abisource.com)
Date: Fri Feb 01 2002 - 10:48:35 CST


At 10:31 AM 2/1/02 -0500, Dom Lachowicz wrote:
>> IMHO, a new project for the AbiDraw/AbiPaint/AbiWhatever would be
better...
>> I'm not all that interested in Yet Another graphics app.
>
>That's what we are proposing. Some history:
>
>AbiSource was initially interested in building a framework on which
>applications could build upon. This framework was fairly ambitious - it
>was to be both cross-platform and cross-application, much like the
>mozilla framework intends to be.

Exactly. When we started heavy development in mid-1998, the Mozilla
framework was:

  - incomplete,
  - fairly heavyweight, and
  - used the wrong licence,

or else we would have given much more serious consideration to using it
instead of rolling our own. However, that wasn't an option at the time, so
we (mostly Jeff) wrote our own lightweight framework from scratch, with the
goal of making future XP products much easier to start.

We assumed that there'd be places where we wouldn't get the API boundaries
between XAP and AP quite right, but given our pragmatic focus, that never
bothered us. Any time you design APIs in a vacuum, you can only get so far.
You need real-world implementation experience to sand off the rough edges,
so we decided to just do the best we could, while making sure the framework
worked really well for one full-bore application: AbiWord.

We always assumed that there'd be refactoring changes needed once we had
teams ready to dive in and do serious work on a second product. I'm
thrilled to see that it seems like we're finally getting to that point!

>What we are discussing here is a refactoring of our codebase so that we
>can:
>
>1) Make development of our existing app (AbiWord) easier
>2) Improve upon the design of our existing app and its framework
>3) More easily identify and address bugs in our existing app
>4) Remove lots of duplicated code and duplicated bugs
>5) Make ports to other platforms easier (eg: Cocoa, Carbon)
>6) Make development of new apps based on our framework possible and easy
>7) Make points 1-6 applicable for point #6
>
>This topic and its content is entirely appropriate for our list. It's
>not like we're discussing pouring hot grits down Natilie Portman's pants
>or something...

Bingo. In order to properly test any refactoring of the AP/XAP boundaries
you need at least *two* serious, full-scale AP implementations. However, if
any proposed refactoring doesn't simultaneously offer significant benefits
to the quality and maintainability of AbiWord, then that refactoring is, by
definition, wrong.

But there's no chance we'd let that happen. :-)

Paul,
de-facto historian

PS: For a nice perspective on the benefits of refactoring instead of
rewriting, see:

  http://www.joelonsoftware.com/articles/fog0000000348.html

Joel's a very sharp, very pragmatic guy.



This archive was generated by hypermail 2b25 : Fri Feb 01 2002 - 10:48:50 CST