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