Quote: Why it cannot be something like, when it detects that something is changed in the programming module since the last use or when error was detected on the last run, it recompiles.
Detecting that it is changed / unchanged, requires that at some point the program mark it as unchanged. In a client/server environment that is not logically possible between runs of the application unless we track every user that may ever open that form, and list whether they (individually) have seen the change, so that the system can mark that program as "unchanged" for that user.
If you mean that they (the users) keep the application open, but close the form over and over, each client can then track whether they have compiled that form's programming. They would have to compile it on the first open. But if they are willing to keep the application open, why not simply leave the form open? I can probably implement something like this. I'm looking into it. In the meantime, the work around is very simple - leave the form open.
Q&A users were taught over the years that they should leave Q&A down when not in active use. With Q&A this is especially important because it leaves the file in a "open" state while Q&A is "up", meaning that a network/power/systemic failure is likely to corrupt the open file. Sesame, on the other hand, loads files and does not access them in any way unless there is a change in data. The file is kept closed unless there is activity. Unless Sesame is actively writing to the file, which only occurs immediately after a change to a form, you can pull the plug or crash your OS, and the only result in the Sesame .db/.dat file is that it will need to be "unlocked". This is especially important in a cleint/server environment, where customer expectation is that a server will be continuously running - with the applications loaded and ready to access.
As some of the Beta testers know, we used to compile code as it was needed. But there were objections that because some of the code may fail to compile, while other portions would compile and run - that invisible data corruption (wrongness) could occur. So, I moved all the compilation to a central place (opening the form), and refuse to run any code if any portion of it is "bad".
I am on the fence about this issue. On one hand, I see the refusal to run any code because a portion of it will not compile, as hampering development and testing, in which case you may want to get a portion of your code up and running, before completing and debugging another section. But I also don't want to be in a position where some part of the code is failing and the data is left incomplete.