Was The Windows Registry a Good Idea?

This analysis is somewhat flawed.
Forgive my longer memory, the registry was introduced partly to remove the problems with .ini files. Prior to W95, applications put their settings in win.ini and system.ini, this caused lots of problems as applications edited them incorrectly and could cause the system not to be able to be loaded! Remember all those repair tools that backed up/repaired win.ini files?
If the only problem was to put application settings in one place in the registry then .ini style files are fine. This is very rarely the case. Many applications have settings that can and should be shared by all users of the computer and some that should not. Windows provides LOCAL_SYSTEM and CURRENT_USER branches (hives) of the registry and this is a good solution. I would need per user files and a shared file to implement this in the neolithic UNIX world.
In addition most applications need to sprinkle registry settings within the system’s registry keys in order for it to be fully integrated into the system. So, as examples, some sort of control needs component registration, a new file extension needs registration and the uninstaller needs registration so it can be displayed as an Add/Remove program in the control panel. These are the obvious examples but a large product will often have many obscure registry changes it needs to make. I can’t see an easy way to effect this with files, or is it proposed that the system has thousands of little .ini files that reflect the thousands of registry keys. Now what would you rather do today?

TEXTO

ATEXTO/A

pah! window… stupid registry ok it was gd to start with but they could do so much better vista was gonna ditch the registry but some old git said “no im to scared to change” idiots… GO LINEX!!! :stuck_out_tongue:

pah! window… stupid registry ok it was gd to start with but they could do so much better vista was gonna ditch the registry but some old git said “no im to scared to change” idiots… GO LINUX!!! :stuck_out_tongue:

“Think!” this was one of the most intelligent motto in the IT industry.
Do you really think that Microsoft invented the registry as a technical solution? “Think!”… Microsoft is not a thechnical company, it is mainly a marketing think tank… Someone (and I completely agree) says that Microsoft does not innovate: this is not true from a marketing point of view. Think for example the way they invented teir way to approach technical people: they have really invented a new way to sell their pseudo-technology.
So, IMO, the real point is: Microsoft has discovered how to increase coupling. The registry is simply a marketing invention: the more people use it, the more they get coupled with Microsoft products.
Do not forget that Microsoft has invented the “injection of obsolescence” in their product names…
What if someone that worked at Microsoft tells you that the registry was really invented by the marketing team to increase coupling?
The registry IS a marketing weapon, maybe the most powerful marketing weapon ever invented. The registry is mainly a “coupling” techology.

Good post. The registry really sucks.
I’m happy to hear that Microsoft is breaking away from it.

The Windows registry strikes me as something that wasn’t designed, it just happened to be implemented from an original concept without refinement. Not good engineering ethos, if you ask me. But then “on error resume next” seems to be staple with all the developers I meet nowadays. Sad.

On behalf of the silent majority…

hmm, I wonder exactly how many applications (and installations of) are out there happily using the registry. I bet if typed ‘1’ then started typing 0’s the answer wouldn’t fit in this rows=“11” cols=“70” TextArea.

Perhaps in a few years you’ll all be damning config files… Nag nag nag nag, excuses excuses excuses.

Personally I have never had a problem with the registry. True I have not used it since, since, well a long time anyway. I think the single greatest advance, which is actually a throwback, is not having to register components, as with COM.

Get back to work slackers…

Maybe a private registry where the os manages itself…
hardware, os Apps, etc…

A public registry where the app developer can use or not

the Registry has its advantages for the operating system …but all the junk the gets placed in there is just pure crazy…
i understand the need for localization, but come on the registry is probrably 50 percent junk inside…

DaveP

Sure, anyone who’s still got Petzold remembers when they first had an API so they could just manipulate text files in a psuedo-structured format like a .ini without having to roll their own, but realistically there was a search order imposed about where these API’s would access the ini files from, and the reason why the apis where developed was because otherwise you could, feasibly, do some bad manipulations, or even just delete the system.ini from the windows home dir because there was no security on it at all if you knew how to flip the s bit.

I’m sure that there was a big buzz in the Windows dev community that the reg was going before NT4 was released, to be replaced with xml files or some such, much like MS keeps on harping about an OO Filesystem, but at the end of the day providing a decent heirarchical model to either with decent security just proved to hard.

They failed to separate the meta from the data, which was what Mac tried to do (not sure how it’s going with OS-X or the gritty resource-fork details from before, but this PowerBook hasn’t crashed since I bought it 2 months ago before a rapid-onset decamp from the heathen world, and still starts up in 5 seconds after a snooze).

As for DLL Hell, the concepts where being widely discussed at the time, somewhere along the names of Naming, Locating, Versioning, Persitance, Transaction Services etc. But you have to look at the mess that CORBA and the OMG, which was a supposedly open standards based, got into trying to implement all this infrastructure in a very short time. Despite the mess, MS saw this as a big threat to their naiscent distributed computing environment (MS from Server to Desktop which supported Bill’s … on every desk messianic beliefs), so went steaming ahead with their own sad attempts which were not well designed, or in any way enforced on an OS Level. Not even by gentlemans contract. There was no way you could say to MS, “hey, I fancy calling my DDL ‘fred’, do you already have a fred.dll?” They didn’t care.

This means you could put an internal version in meta-data in a DLL, but the OS loader did not in any way enforce the loading of that version or otherwise distinguishing meta data at all over any other DLL hanging around by the same name.

On top of which, as a later attempt, targeted at security issues, they actually disabled the ability for an application to load a DLL in its own directory in preference to one in the system directories. This was a huge mistake (though I may be wrong), but it was one that many developers where relying on, and then got screwed over by.

Then comes the whole activex no sand box issue.

Then comes the COM threading fails issue.

Then. I dunno? Could there ever be a more innept bunch of fools in charge of the desktop computer world?

Have you ever heard of Jaunt PE? It creates for apps portable launchers that hook and redirect registry changes into .ini files. It can be customized to only watch for specific registry calls and can redirect file dumps too. It’s like shoveling up the sht behind a horse, but it’s better than leaving the sht on the road. www.portablefreeware.com

What really stinks about the registry is moving your settings from one machine to another. You are forced to go exploring the registry just to find the list of preferred options!

Codewarrior solves this problem by giving user an “Export” and “Import” settings, but not every application does this. A local config file solves this problem in the minimalist way.

A point that no one has mentioned:
How do you store binary data in an .ini file without bloating the file when you encode the binary data in ASCII ala base-64?

The *nix custom of storing config files with a leading period ‘.’ is simple, but it works. Thankfully *nix chose the prefix, instead of the suffix since Windows won’t let you create a filename with a single trailing period.

Cheers

I don’t see anyone providing a usable replacement to the registry… but i hear a lot of noise…

I’ve yet to see an enterprise size LAN ‘managed’ by a unix box though agree many unix boxes are better as servers for other purposes…

Whatever the solution is, I hope that some day I can install 200 random apps + bunc of devices and when the day comes when I wan to get rid of them that Windows provides nice UI for remove programs / program settings / devices. And when I click remove, I can trust that Windows takes care that no single leftover file or registry entry remains in my system.

This is fine and dandy reading about all the people who hate the reg but… When is MS going to listen!!! MS should have an advice forum. =)

Dugg:
http://digg.com/microsoft/Why_the_Windows_Registry_fails

This thread started August 29, 2007
and April 5, 2008 people are still
saying it was a lousy idea. Me too!

On August 29, 2007 06:41 PM, Andrew wrote:

Maybe part of the problem is that since everything is stored in the registry, people blame the registry for everything.

It is the single most insightful comment in this thread. Jeff, I’m usually right with you in the things you say, but there are a lot of registry-bashers out there who are not seeing the whole chessboard. Registry pros outnumber registry cons by quite a bit.

What I’d like to see is for MS to start asking that apps and drivers which get logo-certified to have documentation of every registry key they write. MS also needs to field a more prominent, complete, and one-stop documentation of the registry keys they write.

One last thing: commenting your registry values is easy! Just write a REG_SZ (string) key as a comment.

If you guys are so smart, write software that doesn’t use the registry to store hundreds of application specific settings. I get that you have to use it for some things, just add a config file for your other settings.