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

I'd expand - it's not enough to avoid throwing a ton of settings to a user, you have to design so they are not needed at all.

For me, the fact that you have to hide the "power-user" options, be it on the registry, about:config or under an "advanced" dialog somewhere is a sign of something much worse. All those toggles increase complexity of the software exponentially as they can be combined affecting each other, increasing the effort of understanding the code, making changes, testing, even the runtime complexity.

Lots of developers, when faced with a choice, make it configurable instead of thinking hard about it and making the choice. Developers are never popular when they decide against adding an option. I see it all the time on Google Chrome, or even on the iPhone to name some popular examples.

But some choices, even if they are hard to make, should be made.



>Lots of developers, when faced with a choice, make it configurable instead of thinking hard about it and making the choice.

It isn't an exclusive-or; if you want power users it needs to be configurable. What you need for beginners and casual users are really good defaults, which means doing the hard thinking to choose them. If you want both types of users, you need to do both types of work.

ADDED: It also helps to make the configuration choices discoverable, to provide a path for new users to become power users.


Define "needed". Much of the divide between casual vs power users is that the latter will want to use the software in every way possible, many of which you (the developer) won't even be able to imagine.

In fact, those decisions are one of the main reasons why I, as a power user, don't use Chrome or the iPhone - because I crash against the limitations imposed by those choices every day.


I'd love to know what everyday tasks you're doing for which Chrome or the iPhone are too limiting.


Well, for one, I'm a Pentadactyl user just like slowpoke, but also of DownThemAll!, NoScript (from everything I've read, NotScripts is a poor clone - no offense to the developer, as I said, they're limitations of the browser API) and some others.

In the past, I've also used my own extension, that allowed me (and the few hundred other users) to select a piece of text and launch a terminal using it as a command. Absolutely impossible to do in Chrome.

Finally, Tiddlywiki - only usable in Chrome if you install and run a Java program (applet?). Since I don't have Java in my work laptop, no dice.

As for the iPhone, simply installing non-approved apps; old console emulators, for example.


Not the parent, but for Chrome, probably the horribly limited extension API. I could not even begin to imagine how I would use a browser without Pentadactyl. Or Tree Style Tabs. Both of which are flat out impossible in Chrome. As are tons of other extensions.


You begin on topic by talking about the experience of a user: "avoid throwing a ton of settings to a user", then sidetrack into the experience of a developer: "the effort of understanding the code, making changes, testing, even the runtime complexity", in your justification for omitting advanced options for /users/ altogether.

The "hard" challenge for a developer is not caring less about offending people but to come up with a really clever design that accommodates both newbies and experienced users.


This is great advice. Chances are, you're not building an operating system. Since your software is less complex, try to figure out the decisions you need to make. It may require a few iterations, but it's the right thing to do.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: