David White <[email protected]>:
> Rather, we should take an evolutionary approach to matters. Python
> already exists in Wesnoth, as an AI framework. Developers who think that
> Python would advantage Wesnoth should simply begin implementing
> additional components in Python.

I agree. 

If you're willing to consider the main loop -- the high-level
sequencing logic in game_controller and play_controller -- to be a
"component", then it seems to me this is exactly what Ivan has done
so far.

I think Ivan's code is a good candidate for merge exactly
because it leaves most of the existing C++ in place, *not* forcing a
big bang on us.  

I'm completely with you that attempting a big-bang transition would be
doomed.  I came to that conclusion months ago, then couldn't figure out
how to get traction on a chunk of the codebase that was both significant
and manageable.  

I bow in respect towards Ivan for having figured out how to do it.  I'm
thinking now, in restrospect, that it probably needed a newcomer to the
project - I was motivated, but too close to the codebase.

In a previous post, I wrote:

                                       It looks like Ivan has taken an
    outside-in approach, implementing game_controller and play_controller
    and the other high-level logic in the main loop first and leaving the
    service classes in C++ to be called from the Python.  That is, Python
    has taken over the root of the static call tree with most of the
    branches still in C++. This is sensible and, in fact, exactly how I
    had planned to tackle the job.

    What is still to be done is a large undertaking, no question about
    that. But now that Ivan has the outer framework in place, we should be
    able to tackle the C++ one class at a time, gradually working down the
    branches of the call tree, deciding at each step whether to
    reimplement each piece in Python or leave it in C++ for performance
    reasons.

There's your evolutionary approach.  It sort of superficially looks top-down
because it starts at the root of the static call tree, but it isn't really.
-- 
                <a href="http://www.catb.org/~esr/";>Eric S. Raymond</a>

_______________________________________________
Wesnoth-dev mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to