3

Why does the Windows registry seem so opaque? I thought a good practice in CS was to give explicit names to variables and constants, but the registry has mysterious names and values.

For example, I tried to change the way windows names new shortcuts, namely to remove the shortcut label that is added at the end of the file name. For, you have to find the links entry (not shortcuts or shortcuts name as one would expect) in the Registry, and then change its default value 1e000000 to 0000000.

Every time I modify the Registry, I am scared that a small mistake would blow my computer. I understand that some modifications of the Registry could deeply affect how my computer behaves. But for simple modifications, why is it so opaque?

Note: Without being an expert, I feel to be above the average user when handling a computer. I use it a lot at work, in particular to write documents (Tex), browse Internet, do a bit of basic programming and formal computations.

  • 1
    I suppose the registry was never meant to be seen by users and, as a consequence, nobody ever thought of making it user-friendly. It is part of the technical and mechanics that ought to remain behind the curtains, except when something is not working. Most computer users will not even know what you are speaking of if you talk to them about the registry (or DLLs, or...). – Chop Aug 12 '15 at 5:53
  • The regedit is for system administrators. Thats like saying computers arent user friendly because pulling out your ram will "blow up your computer" not everything has to be user friendly. Thats why user friendly programs change registry values for you. – downrep_nation Aug 12 '15 at 6:14
  • I do wonder whether its very techy and dense design might not be intentional so as to scare away lay-people and let them know that this isn't friendly happy windows they're dealing with but rather a potentially system destroying settings tool. Then I guess there is the consideration that with very specialist expert tools often there is a clash between objective usability and the fact that they're learned to use it in a certain way and are used to it thus drastic changes could really cause problems for them. Though this one is only valid with really specialist tools with 10 users or so IMO. – the other one Aug 12 '15 at 9:54
3

The registry is not designed for users

regedit was never designed as an end-user application to manage application settings. Rather, the registry itself is a storage mechanism for application settings.

Data in the registry is "owned" by the application, not by the user. Settings should be changed through application-specific mechanisms / UI. regedit is merely a technical artifact intended for developers and technicians.

Programmers will store the data in a format and under naming conditions that are convenient to them - under all the constraints they have, such as compatibility between versions, independence of their components, etc.

regedit (or the registry API in general) has no way to validate that your changes make sense for the application that reads them - that's why you get the "changing the registry may FUBAR your system.

regedit (or the registry API in general) has no mechanism to notify dependent components of your changes, that's why you have to restart the application or your system after the change.

Internal vs. public name

The names for products or features are usually determined long after the code is written. Remember, identifiers in the registry need to make sense to the application, they often use the working title or code name of the feature, rather than the one that later appears in product documentation and localization resources.

Since they are not intended to be exposed to user space, changing these after the fact has no benefit. It also introduces chances for bugs.

If they were exposed to user space, they would have to be localized. It would need to be Shortcut for EN, Verknüpfung for DE and something I cannot even post here in Chinese*.

The True Question

From this I'd argue you are asking the wrong question. It's not why does it suck to change things in the registry, but Why do YOU try to change things in the registry?

The purpose of the registry was:

  • centralized storage
    enabling features such as roaming, and making installation and pre-configuring software easier at least on the whiteboard

  • transactional API coordinating multiple programs trying to read and modify the same keys

  • Key-level security
    you can configure separate access rights for each key in the registry

  • User- and Machine specific settings
    ... and a merge mechanism to allow user-specific overrides.

The UX-relevant question might be:

*Why is the registry so popular *

For developers, it's a rather convenient configuration storage that solves many (minor but tricky) problems out of the box, and enables platform features (such as roaming) with only minor work for themselves.

For users, regedit, while limited to the generics of the registry API, provides a non-programming access to the settings of virtually all programs running on the system. While it's not designed for the user, it's still good enough for many of them.

The main conclusions I'd take from this are:

Success means abuse: systems get used for purposes they are not designed for. A successful system often becomes so entrenched that it cannot be removed, the success guarantees that the unintended use will remain available. (Indeed, Microsoft is doing a lot to remain backward-compatible to decade-old "this neat registry trick I found" posts floating around)

Functionality can trump convenience
(The generic - convenient - expensive tradeoff triangle would be another tangent to go off on.)


* literally - when trying to paste a translation of "shortcut" here, I get a popup message saying Body cannot contain {one of the characters in the translation}

| improve this answer | |
2

There are layers to any system. The user interface is where the system and user interacts with each other. In the subsequent layers, it goes more and more efficient and functional.

One would go an extra mile to make sure that users precisely understand what they are doing. That is only done when it is expected that users will frequently interact with it. Windows Registry is not something everyone wants to tamper on a daily basis. In fact, to open and edit the registry values would probably be discouraged by any retailer. Registry is where you are entering the underlying layers of the system. From this point onward, functionality and efficiency gets more and more importance over how things look and feel.

I have no comments on if the current implementation is the most efficient. But There is another factor, backward compatibility. Although the UI layer is frequently torn down and re-written to favor the trending designs and user expectations, the internal systems go through changes less frequently. As more and more versions are churned out, one needs to keep everything in check. This burdens the system and since it is underlying layer, the first sacrifice is usability.

I would bring your attention to evolution of windows task manager. That utility slowly became mainstream and soon got more and more user friendly. I don't see any reason MS would want you to casually tamper with registry. So it might be a reluctance on their part to change it in favor of experience as well.

| improve this answer | |
0

The registry IS friendly.

It's computer-friendly, not human-friendly, as it is almost never to be used by humans, it is optimized to the computer and the programs running on it.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.