3 ms·
Opinionated frameworks are great as long as you fit the designed use case, you fit their documented and undocumented limits, and the pricing model is compatible
by bragr 5y ago
Opinionated frameworks are great as long as you fit the designed use case, you fit their documented and undocumented limits, and the pricing model is compatible with your business model. If you fit that, yeah go for it. However, many don't and find themselves reaching for the more flexible solutions, where yes you pay a complexity penalty, but you can still access the economies of scale of the community and ecosystem. Since so many people across so many domains find themselves in this situation, the flexible solutions get popular.
Another factor is people's skillset. As an individual contributor, I want to learn the skills with the broadest possible applicability in order to ensure ensure my long term career opportunities. Anyone that has been around the tech block a few times has seen the winds change a few times and nobody wants to be in the situation of having of a resume with none of the popular buzzwords and struggling for work. This is one big factor why people gravitate towards more broadly applicable solutions and away from more niche opiniated frameworks that have potentially a smaller applicability.
The the flip side of that is that I, as a manager, know that any core technology we choose means something I'm constantly going to have to recruit for or invest hugely in training in for so picking the one with the biggest talent pool is going to very tempting. Even if people don't use it the same way we do, I'll at least be able to ask basic and essential knowledge questions in interviews and externalize some of my training costs.
- eternityforest 5y agoOn the other hand, a lot of use cases are an absolute perfect fit. Desktop software and mainstream OSes are basically opinionated frameworks, and almost nobody aside from hobbyists gets majorly impeded by limitations, they're just so big that they cover most of the use cases just fine. Like, hardly anyone seems to complain about LibreOffice unless they're trying to use Calc as a database or something. And when they do complain, it's usually something with a workaround that seems easier than using Tex and CSV and a perfect flexible toolkit might be. If you think in terms of the framework's constructs as your base primitives, you can do a lot in opinionated systems(Just not everything) by adapting your plans to fit the framework. If you think in terms of underlying abstract logical ideas, the way a programmer building his own in vanilla JS, you'll probably be disappointed by frameworks that only give you a few high level blocks. But how to implement something cleanly with only high level black box primitives is a skill nobody seems to focus on, everyone seems to think on a pretty low level when designing, and then choose a framework that lets them fit their ideas, and apply ugly hacks rather than do what the framework says. Libraries are servants, frameworks are like managers.
- UlisesAC4 5y agoIMHO, using the flexible tool has a sunk cost on it. We choose them for the If's and When's. And the majority of times they never come. My experience comes from React. My love to it came for the freedom, but once I figure my way of working on it, then I realized that I wanted a comfortable way of doing things in React. And that is something that the community "agreed" in silence, not for nothing next.js is getting the 1# of way of doing things. With this we are somewhat trading the "flexibility" of React. But this is why I ask myself, what is the flexibility I wanted? I am always going to use the same router library, the same ui library, I wanted an "opinionated way of doing things", my own opinion, but I just liked the flexibility of the api of React. At the end, I understood that we want opinions, but opinions that match our mental model. With the help of those we can figure efficient doings in efficient time. Because too much freedom gets in the way. If I were starting today I would directly choose next, instead of trying to make my own framework with create react app, I would choose an opinion with solid foundations like next.