Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> I've learned to avoid software tools that proclaim they are "opinionated" which usually means it's their way or the highway.

What is a good example where software is described by its maker as opinionated and where it results in "their way or the highway"?

I'm asking because all software need defaults and no software can do anything that all users would want, so the software maker has to make choices of what they offer (i.e. reflecting the maker's opinion).



Python formatter Black: https://github.com/psf/black

By using Black, you agree to cede control over minutiae of hand-formatting. In return, Black gives you speed, determinism, and freedom from pycodestyle nagging about formatting. You will save time and mental energy for more important matters.

Black makes code review faster by producing the smallest diffs possible. Blackened code looks the same regardless of the project you’re reading.


As a noob to Python, Black plugin in pycharm accelerated my usage greatly.+1 to this opinionated tool.


I know folks who swear by it. I just happen to dislike most of its opinions.


The entirety of MacOS. The number of cases where you must use it "Steve's way or the highway" are legion. Changing MacOS default behavior involves one of several mechanisms:

1. Changing a preference with a GUI editor. Only a small percentage of all defaults can be changed this way.

2. Changing a preference with "defaults write..." and hoping the change will stick the next time you upgrade the OS.

3. Change the default for one usage but it will revert the next time you do that operation. Many examples wrt how Spotlight searches work in the Finder.

4. You can't change the default at all. Example: Themes. Last time I checked there were two, and nobody can make others.


Ruby on Rails? Doesn't mean Rails sucks.. tons of people are very productive on Rails. It uses Ruby idiomatically in a way that I would wish to break out of, which would be difficult and counterproductive, because of its strong opinion that I shouldn't. But I don't want to work in Rails, and Rails doesn't miss me.


Prettier which is a Ecmasceipt formatter. It basically doesn't have settings as a feature. You can change some things like eol and if you want to use tabs or spaces. Everything else is more or less as it comes, and they want it to be that way to stop discussions in the teams using it and to not allow feature creep.

I call Pettier a compromise tool, noone is happy noone is too mad when you force it on checkin etc


Prettier also came to mind, and I'm usually pretty happy with the "it's formatted this way, deal with it" approach - but I also would like the tool to behave predictably with updates. Prettier had some changes in 2.5 related to multi-line-classes (namely, forbidding them), which in turn made it unusable for projects with tailwind usage, as it now forces extremely long lines in some cases. (Especially for elements that have styling based on multiple breakpoints and a darkmode variant, you're hitting >120 chars easily).

I know that you can go for descriptive classnames and "@apply", but I was still miffed about a change like this in an already existing tool, with a lot of community pushback and no compromise in sight.

(Here's a relevant discussion, but keep in mind that multi-line-classes worked at some point and now just don't: https://github.com/tailwindlabs/tailwindcss/discussions/7763)

So for prettier, it wasn't just "format your code our way or else" - which is a good approach for a formatter, see also gofmt - it was "your current set up doesn't work anymore, tough luck".


> noone is happy

I’m 100% happy with Prettier. The trick is to not care too much about how the code looks. Consistent style trumps any choice for me.


This hasn't been my experience. I've been able to throw together a .prettierrc.js file that gets me everything I want to tweak from the default (line length, quote types, etc.).

Out of curiosity, what did you find to be something unchangeable?


I had opinions on how it placed curly brackets for example, I wanted it more similar to C# with the bracket on a new line.

No big deal but a bit annoying to have two ways of doing it.


Wireguard. If you want to use different options for its encryption, you can't. I don't think that's a bad thing, but for example someone wanting FIPS certification might.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: