3 ms·
I don't understand what "opinionated" stands for in the context of a software/framework/technology.
by linkdd 5y ago
I don't understand what "opinionated" stands for in the context of a software/framework/technology.
- foolswisdom 5y agoIt means that the framework makes certain choices and trade-offs, and doesn't allow the developer using it a choice in those matters.
- postalrat 5y agoSo a game is just an opinionated game engine.
- phaer 5y agoA game engine is just an opinionated turing machine.
- GuB-42 5y agoAn example of an opinionated game engine would be idTech 5 (Rage engine). It is built around MegaTexture: a huge, non-repeating texture that maps the entire world, backed by a robust caching system. It allowed for highly complex scenes, great static lighting and short loading times but it lacked in detail and dynamic elements.
- hagg3n 5y ago> and doesn't allow the developer using it a choice in those matters. I never took "opinionated" software as "no configuration". For me it's always been "custom defaults". It might provide some configuration, it might not, but what makes it opinionated is the fact that the defaults are not generally applicable, but rather tailored for a specific use case.
- foolswisdom 5y agoHmm, you're probably right, that's a better definition of opinionated. That said, I think it'd be really difficult to work around Elder.js' opinions.
- NikolaNovak 5y agoGenerally, rather than trying to be a generic framework/tool/system allowing all approaches and preferences and practices, it is optimized for / selects a certain subset toward a (hopefully) stated goal and subset. It is "opinionated" in the sense that it has an "opinion" on what's the right way to accomplish a certain outcome, and thus it preselects/premakes some choices for you. The implicit tradeoff is that it may not be as good at general problems / all approaches, but may be better or easier or both for specific goals / approaches.
- rdhatt 5y ago"Opinionated" means the software has made very deliberate design tradeoffs and is very inflexible/resistant to changing that. This is done to optimize certain objectives like software scope or increasing productivity by enforcing certain methods. So in this case they cited "no client-side routing wiz-bang" -- that's one of their opinions and won't be introducing any support for that sort of thing. The classic example is Python's motto "There's Only One Way To Do It", which was in a response to Perl's "There's more than one way to do it." Another example is Ruby On Rails...it has a strong opinion on how the application should be structured -- must be MVC, most of your code should be in a model, convention over configuration, etc.