Hi all,

i stayed back from this discussion for a while, mainly because i don't know
python at all and i am not a C++ guru as well.

As far as I understood, Eric's main motivation is making coding in wesnoth a
more pleasant experience. I can understand that very well. I have chased
several bugs related to savegames, monitoring complex config information
(*before* there existed this fantastic cout << config stuff) and chasing it
through almost all the applications code. There have been bugs I chased for
6 hours, before I even knew what was the problem, leave alone fixing it.
This is something very time-consuming and demotivating about wesnoth's code.

As said before, I don't know about python and my C++ knowledge is solid at
best. But I have programmed in various languages and I did some bigger
projects (like 20000+ loc) all by myself. From that I can tell you that it
is the code design that matters, not the language.

I wrote applications with visual basic, maybe one of the simplest languages
to learn and use ever (actually it was designed to be that way). I have
experienced many times, that such a language can get you into a maintenance
hell at no time, if the design is bad.

If we want to make wesnoth more maintainable, IMHO we need to provide a
clear design. The problem with the current code is that there are so many
unnecessary dependencies. Activities into this direction have already taken
place, for example:
- The editor code has been separated.
- The GUI code is about to be modularized.

This, together with a good interface design, will contribute *way* more to
reducing bugs and easing maintenance, than switching to any other language
can do. I even go a step further: If python is so much easier to learn we
might attract a lot of devs who are not so good at designing. In the long
run that will lead to more problems than it solves.

Therefore, if we want to sincerely improve wesnoth's code I suggest to:
- Move existing code into a better design. For example modularize the
savegame code.
- Don't go for new code without a solid design.
- Improve our developers abilities concerning design and/or impose the need
for a design to be provided and checked *before* any code is allowed to be
added.

I know that those suggestions lead to major changes within the projects
organization. And that it will slow down development of new stuff
significantly. But to me it looks like the only way to solve the maintenance
problems we have.

Greetings

Yogi


_______________________________________________
Wesnoth-dev mailing list
Wesnoth-dev@gna.org
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to