Complete.Org: Mailing Lists: Archives: freeciv-dev: December 2001:
[Freeciv-Dev] Re: freeciv 2.0 spec
Home

[Freeciv-Dev] Re: freeciv 2.0 spec

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: rf13@xxxxxxxxxxxxxxxxxxxxxx, Raimar Falke <hawk@xxxxxxxxxxxxxxxxxxxxxxx>
Cc: freeciv development list <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: freeciv 2.0 spec
From: Andrew Sutton <ansutton@xxxxxxx>
Date: Mon, 3 Dec 2001 16:13:57 -0500

On Monday 03 December 2001 03:38 pm, Raimar Falke wrote:

> > fixing all code that needs to be updated.
>
> This will always be required.

no. this is called "replaceability". it's one of the fundamental driving 
forces behind modular development - specifically component models like COM 
and the OMG CORBA framework. define an interface, replace the implementation, 
don't change any client code.

> Do we?

indirectly. saying that you want to emulate some other set of games implies 
that you're going to have software that is extensible enough to actually 
emulate those games.

>
> >    FreeCiv was written using the C language and has few if any
> >    object-oriented concepts built into the existing code base.
> >
> >    Object-oriented design and implementation can greatly enhance design
>
> This effect will not apply to every software.

right. but other projects definitely.

> >    and development, allowing developers to visualize functionality as
> >    discrete components. Object-oriented analysis and design is a natural
> >    progression from functional analsysis and design, and seems to the
> >    current trend of the software industry in general. FreeCiv needs to be
> >    "modernized".
>
> Follow the current hype.

it's not really hype. alot of work has gone into formalizing this stuff 
because it works better. otherwise, why would we have things like UML and 
processes.

> >    Features and capabilities have been added without regard to the
> >    overall structure of the software.
>
> It is the task of the maintainers to think about the big picture. I
> think my predecessors have done this job well.

i think that since the original version was written in what, 3 weeks 
according to the slashdot article, that they possibly didn't take the time to 
really think about things like extensibility. it's been hacked on since then 
and the code shows that readily.

> >    This development model increases the complexity of the source code
> >    exponentially
>
> Why?

it doesn't?

> IMHO some docu will help.

i think we might as well go further than that. it seems to be a recurring 
theme with open source projects - a little documentation will help. it's a 
complex system. why not alot of documentation. i mean, christ. take the time 
to write down ideas for design and rationalize your decisions. it's not THAT 
hard.

> Iiiiiihhhh. Freeciv is an _open source_ project. All people work
> _voluntary_. I think such an position is just wrong. You can't project
> the model you use at work.
>
> Can you give examples of other open source projects which do such
> things? I know about gcc which has a test suite and a release
> requirement. But hey even the linux kernel has no test suite or
> regression testing.

a development process does not have to be rigidly defined and followed. i've 
never worked for one that is. it's just a general presentation of steps that 
should be followed to make the project more maintainable. especially if 
you're not going to be working on it. volunteerism can still work in a 
process suited to the development. look at kde - they have a pseudo process 
(big changes, bugfix, release). this adds a step to document what's actually 
in the core parts of the game so other people can jump in and hack away. 
besides, after the original writing, the design/requirements document doesn't 
change too much.

also, it's an interesting experiment.

by the way, the lack of formal testing on the linux kernel is something that 
i see as a bad thing.

> So freeciv will be a guinea pig?

gotta start somewhere. i think it would be interesting to see how an open 
source project does going thru a real requirements/design phase.

> This doesn't have to be bad thing. See Brooks. The regular expression
> engine of python was rewritten at least 4 (_four_) times till python
> 1.6.

the engine or the interface?

> I feel like I'm back in a software engineering course. You forgot UML ;)

don't worry. it shows up later in the document.

> Will the AI be a module? How do the modules communicate? Security?

right now i'm seeing the ai as specialized type of client. the only thing i 
do know is that it will use the same api as the player to communicate with 
the kernel (except there's always a network layer for human players).

still unsure about security concerns. not enough feedback.

i'm going to continue this in another email because it's important.

andy
'


[Prev in Thread] Current Thread [Next in Thread]