Almost(if not just) all people have their own beliefs on our interested parts of the external world, so it's natural that we, as RMVXA scripters, have our own beliefs in RMVXA scripting too. Those beliefs will normally be reflected on our scripts.
Being aware of those of our beliefs can help us reflect upon them and hence possibly making our scripts more desirable to ourselves(present and/or future) and/or their targeting audiences/addressed situations.
This post aims to incite you to share at least some of your beliefs in RMVXA scripting and freely discuss what are shared here while still keeping an open mind.
While I want the discussions to remain explorative and open ended, it's also completely ok that they end up being countless and endless fierce heated debates, as long as they all remain civil and we're all still respecting each other.
I also want you to state how firm you hold the beliefs you shared here. Such degrees can be approximately classified into these 3 levels in my opinion:
Guidelines - You generally feel/think they're right in most cases but you still doubt there can be some unlikely exceptions, so you'll usually analyze whether they'll probably work on the specific cases before actually applying them.
Standards - You're so rigidly confident on them that you deeply trust that they're always universal truths unless they're solidly proven otherwise(in these cases you'll likely rethink on those beliefs instead).
Dogmas - You simply treat them as axioms so you'll instantly conclude that any contrary evidence must be itself problematic and can thus be safely discarded.
You don't have to conform to this categorization. It just serves as some examples to indicate how firm you hold your beliefs. For instance, you can say what you believe in are indeed undeniable facts.
I'll try my best to be as objective and rational as I can. I'll first try to thoroughly comprehend the beliefs shared here, then I might challenge them regardless of whether I agree with them or not.
With all these in mind, let's get started. I'll start by citing some of the examples I've gathered from the internet so far. Mentioning them here alone doesn't mean I agree nor disagree with any of them:
- Scripting is all about situation analysis and code quality balancing and prioritization. That's the only sliver bullet and golden rule in the scripting realm.
- Scripters should be user-oriented as they're to solve their users' demands. Write your scripts based on the requests instead of shoehorning the requests into your scripting ideals.
- Readability is relative to the readers and is hence subjective. The so called coding conventions won't work globally regardless of what their advocates claim.
- Save file failsafe should be a standard. There are in fact extremely rare edge cases but they can be handled entirely separately without compromising that standard a all.
- Using duct tape programming to fix bugs is like taking painkillers to cure fever. It'll never solve the root causes but only suppress their apparent symptoms so they should only be used in emergency.
- Time performance should always be highly prioritized. RMVXA demands extremely time performant codes to have satisfactory time performance in less powerful machines which should be taken into account.
- Rescuing an error implicitly rather than showing its log explicitly is just sweeping things under the carpet. It gives a false sense of correctness and robustness when the bugs are in fact never properly dealt with.
- Self-documenting codes instead of the so called necessary comments are what we really need. Comments are always mere useless liabilities as they never give any extra value while needing the scripters to maintain them.
- Verbose codes are inherently bad. Those needing codes to be verbose are simply not proficient enough with Ruby so it's just their own problems.
- Conform to the Model View Controller architecture implemented by the exposed parts of the default RMVXA codebase. The majority of the custom scripts adhere to the default and you'll face serious compatibility and readability issues if you don't follow.
- Premature abstraction is the root of all evil. Just remember that the codes need to be usable before they're reusable instead of making tons of 1-2 line methods just for the sake of the fake reusability.
- Personal preferences in scripting are excuses of blatant incompetence and inexperience. Ruby has its own well-established coding styles and best practices that are long tried and true by the whole Ruby community so just stick to them.
Although it's certainly healthy that we argue against beliefs that we disagree, I still want you to focus more on sharing your own. I think we can learn more from the others and perhaps ourselves as well this way.
P.S.: Instead of sharing mine now, I still want to continue to gather more such beliefs from the internet first lol
Edit: Gathered some more examples from the internet:
- Readability should take high precedence whenever possible. Properly use Ruby's expressiveness instead of abusing them to write the so called "compact" codes which serves no purpose other than code obfuscations which will always harm everyone.
- Script demos always end up doing more harm than good as too many users only abuse them to build their game based on those demos directly. Users needing demos to be able to use scripts should get better in RMVXA instead.
- We can sacrifice the original code compatibility when we've more important programming aspects to worry about and some of them conflict with compatibility. We can always write separate compatibility fixes to solve the issues when they come.
- Both global variables and eval are disastrous plagues and necessary evils at most. They're some of the best tools to kill a script and there are almost always better alternatives when you think you need them.
- Scripters should let others to edit their scripts and publish the edits as long as they're still conforming to the rest of the terms of use of those scripts. Otherwise those scripts will be effectively dead once those scripters are no longer active.
- Enterbrain should open source all the hidden RGSS3 classes like what they're going to do with RMMV. Doing so will do more good than harm to everyone including Enterbrain itself.
- Distributed version control's a must for any serious scripter working in any serious scripting team. Those thinking it'd be overkill would end up learning the truth the hard way.
- Writing commercial scripts that haven't reach the commercial qualities yet is ripping their users off. Those users will feel cheated when free scripts can already do what those commercial scripts do.