Subject Re: Fwd from ANN HARRISON: Delivering sources
Author Randal Carpenter
On Fri, 28 Jan 2000, Helen Borrie wrote:

> From: Helen Borrie <helebor@...>
>
>
> >
> >Date: Thu, 27 Jan 2000 15:16:59 -0500
> >From: Ann Harrison <harrison@...>
> >
> >Subject: Delivering sources
> >
> >
> >As the opening of the source gets closer, I find myself
> >wondering more and more about the details.
> >
> >Specifically, where to make the tradeoff
> >between clean code and code now?

Clean Code, its going to be hard enough for the outside developer to catch
up ,without overly cluttered code adding into the mix.

> >
> >At the moment, there's a single source for InterBase
> >with magic in the source control tool to deal with
> >differences between the various environments. The
> >most significant of those is the use of $ in names.
> >

Well that may not be that bad...depends...but if it sucks, well you know
what to do with it.

> >Should NewCo make a pass through the code once to
> >so that the engine is actually, rather than almost,
> >one code base? Should they go a step further and
> >use GCC for all platforms?

Not necessarily, but you could. One code base does not need to mean it
needs one compiler, it just needs the important code base (heart of it)
that works across compilers, and where there is no common ground, use
platform/compiler defines to steer it into other subdirectories for
non-common code...you know the usual way. See current apache source for
an example (http://www.apache.org)...for example

www:/src/apache_1.3.11/src# ls
Apache.dsp Configuration.tmpl ap
Apache.mak Configure buildmark.c
ApacheCore.def INSTALL helpers
ApacheCore.dsp Makefile.nt include
ApacheCore.mak Makefile.tmpl lib
ApacheCoreOS2.def Makefile_win32.txt main
ApacheNW.mcp.gz Makefile_win32_debug.txt modules
BUILD.NOTES PORTING os
CHANGES README regex
Configuration README.EBCDIC support

and in main is the core
www:/src/apache_1.3.11/src# ls main
Makefile.tmpl gen_uri_delims.c http_main.c util_date.c
alloc.c gen_uri_delims.dsp http_protocol.c util_md5.c
buff.c gen_uri_delims.mak http_request.c util_script.c
gen_test_char.c http_config.c http_vhost.c util_uri.c
gen_test_char.dsp http_core.c rfc1413.c
gen_test_char.mak http_log.c util.c
www:/src/apache_1.3.11/src#

and in os is the os specific code
www:/src/apache_1.3.11/src# ls os
bs2000 mpeix netware os2 os390 tpf unix win32


It may not be the best example, but it supports netware, mpeix, unix
win32...basically a lot of what ib supports that is...though I think it
requires MS VC++5.0 for win32 (I figure since it supports alpha and such).
I don't develop it, so I don't know how their cvs works or what they use,
but I can find my way around and can and have made changes and submitted
bug fixes in the past to their developers...the code is simple to read.
And configure script is a plus...a monkey can build Apache due to that
feature, unix covered a lot of platforms...so Configure sets
platform specifics and creates makefiles for all the platforms in unix as
well as all the others.

> >
> >At one point, some of the compilers used to build
> >InterBase did not accept ANSI prototypes. As a
> >result, every routine has conditionalized prototypes.
> >They're really ugly and completely useless. Should
> >NewCo remove them before releasing the code?

If its useless, remove it, we will have enough to do without having to
figure out why something is there, when actually it being there is just
for the sheer enjoyment of figuring out we don't need it later and
removing it then. I vote if its known to be crap, purge now.

> >
> >At various times, InterBase has been ported to
> >platforms that are no longer strategic - like
> >HP MPE/XL. Should NewCo remove the conditional
> >code for those platforms? Just the really ugly
> >ones?

One question, is that platform still viable? If it is
can we fairly kill it? I say leave it a while, if no
one develops it, then quietly kill it as it is then
obviously dead.

> >
> >High level internals documentation is almost
> >non-existent. Complete documentation would
> >be (much) larger than the code, so that's not
> >likely to appear. Should NewCo take the time
> >to write module by module documentation? A
> >~30 page overview?

Yes

> >
> >As you think about these questions, please remember
> >that you (the knowledgeable InterBase developer) are
> >not the only user of the source. It's important
> >that the code that's released be buildable by humans
> >on all the platforms it runs on.
> >
> >Appreciate your thoughts,
> >
> >Ann
>
>
> --------------------------- ONElist Sponsor ----------------------------
>
> Get what you deserve with NextCard Visa. Rates as low as 2.9 percent
> Intro or 9.9 percent Fixed APR, online balance transfers, Rewards
> Points, no hidden fees, and much more! Get NextCard today and get the
> credit you deserve! Apply now! Get your NextCard Visa at
> <a href=" http://clickme.onelist.com/ad/NextcardCreative2CI ">Click Here</a>
>
> ------------------------------------------------------------------------
>
> Community email addresses:
> Post message: IBDI@onelist.com
> Subscribe: IBDI-subscribe@onelist.com
> Unsubscribe: IBDI-unsubscribe@onelist.com
> List owner: IBDI-owner@onelist.com
>
> Shortcut URL to this page:
> http://www.onelist.com/community/IBDI
>