SirRichie wrote:ssilk wrote:
My experience says: This will be never used and if then only for very stupid things.

Maybe we have one good case. But for one good there are 10 other cases, that are then not so good.
I respect you very much ssilk for what you do to the Factorio community. But I would challenge you to report from your experience. Name your 10 other cases, I named 2 good cases. What experience do you have that allows for making the judgement about how this will be used in the future?
Do not get me wrong. I am not all set on this idea, it is open for discussion and I have no problem to be convinced that it is not a good idea. But when someone arguments with experience, they should be able to prove it.
Good point.
My reasons here are also non-technical. We are in a community an things can and will happen here and one I've seen with such mechanisms is, that someone who dislikes someone else just puts such a rule into the code. Just to take the most stupid case. The more stupid case is, that we have one modder, that has a different opinion about something, which is controversial to the others and the other modders decide to boycott his mod. And there are many more possible constellations, which end in using a mechanism for social censorship, which was thought in the beginning to be only for very special technical usages. An humans a very clever in finding usages for mechanisms, that weren't thought for that. That's one of the things, where most humans are really, really good, so that it makes no sense to think about it: It will be misused, there is no second to doubt it.
And even for technical reasons the things are more complex.
Assumed there is a rule in the code, that says "A does not work with B". But the rule does not tell why! It's just a rule, if you put it into the info.json.
Maybe there is a comment somewhere in the thread. Maybe the comment is anywhere else in the code. Maybe a comment on the favored MOD-DB website, which might come at some time. Who knows? This game will rise, the communities will rise and split, the information behind something dissolves into space, because it's not written into code, it's written into the community; the modder thinks everyone will read it. Which is of course not the case, or who reads this forum AND reddit forum regularly? That is just not possible, cause it's just too much.
And even a comment in the code (here above the line in the info.json, that tells us, why it is forbidden) is not the correct way to do this: Comments are lying. They are just text. Things change. Live happens.
What really matters here is the code, which never lies. (I mean for example
http://blog.ircmaxell.com/2012/06/to-co ... le-of.html ).
ssilk wrote:Even if it only triggers a warning that unexpected results can occur. Very much along the thought "if the developer knows it, why not let the user know it as well?"
A modder is able to see, what other mods are installed (well, not nice ways yet). And that is the right way to check that internally and then you can warn the user.
As you said, it is not a nice way. Mostly a workaround.
Because that is a workaround and a workaround behaves like a workaround. There is nothing "right" about it. It's just a technical debt (
https://en.wikipedia.org/wiki/Technical_debt ).
Clearly there is a need for support.
In a way that it is more clear, to find out for a mod, what other mods are installed? Of course. Because this mechanism is often used to turn on/off configuration options. Which makes much sense. As side effect is of course to be able to check that things easier/more clear. A programmer can easier tell the rules, under which something cannot work, if there is a such an interface.
ssilk wrote:But if a mod is able to see that, it can check that, then it quite logically can also create an exceptional code for that case.
It's just so, that all programmer I know are lazy and don't like to do such work.

I recommend being very cautious with that. This may very well lead to exception-wars, depending on how aggressive a certain exception-handling routine is.
See above: There are non-technical reasons, social stuff, which leads to misuse of mechanisms, that where formerly thought for completely different things.
In the same way you can argue: Let's put in a button for each mod into Factorio. If too many people press this button, then the mod is automatically turned off.
It's the same as if too many people press the abuse button for this thread, then it will be automatically deleted. (Which is of course not the case. Because it doesn't make sense just because of that.)
My option is: The software is not made for the software. It's made for the people. Either the community works, either there is some trust in the people and so, or not. You cannot create trust by making more technical stuff around it.
A working community will fix something like you describe very, very fast. Or not (if you're right).
The difference is: I give trust into it, that it will.
Oh and I am a computer scientist, I am not lazy. Thank you.
O. K., then it's only true, cause I don't know you.
