Opinionated tools are programs that have a set of their own rules and the users must follow them. The tools that I have experienced so far are Charpier a C# formatter, and Ruff a Python formatter & linter. The formatters are not the only opionionated tools. The programming languages such as Python via PEP8 and Rust could the representatives. They suggest a specific way of coding/styling, or even enforce users to stick with one. And I somewhat prefer that kind of policy.

While working with others, the most demanding job is to persuade teammates. People have different background, thus have different process of doing things, even if it’s the same task description given. If the development environment gives full freedom, a solid team needs to set their own rules and spend enormous time to make people comply with them. However, let’s imagine the tools (formatter, languages, etc.) restrict you in a certain fashion, then we can save time mentioned above and, most importantly, ease the stress! In my humble opinion, tension (office politics) between people is one of the most evil things in life. We must actively find solutions to avoid that.

Yet, this was just a first glance advantage. We could also view opinionated tools as another abstraction of our behaviour as expressed in syntax. As Dijkstra stated, every problem is computer science is solved by another layer of abstraction. And I think those fit the statement. In genesis, there was no rules but variety of ways of doing things.