Live data from Hacker News

Why the Windows Registry sucks technically (2010)

rwmj.wordpress.com

291–300 of 342 posts

Re: Why the Windows Registry sucks technically (2010)

#291

"2. Hello Microsoft programmers, a memory dump is not a file format" This is exactly how Office file formats worked in the good old times. Made things faster (no parsing).

This is often misunderstood. Unless you're talking about very early (pre-COM/OLE) versions of Office, the binary Office file format is https://en.wikipedia.org/wiki/COM_Structured_Storage - which is basically FAT-in-a-file, with individual files meant to correspond to COM objects. So it's a memory dump in a very broad sense of a serialized object graph, not in a sense of actual bytes of RAM directly copied to disk.

Re: Why the Windows Registry sucks technically (2010)

#292
post #69
post #4

This is a weird article because you can't talk about the structure of the Windows Registry without talking about INI files [1]. Example: [owner] name = John Doe organization = Acme Widgets Inc. Some comments on the post mention INI files. It's mentioned by commenters in the previous HN submission too. But the Registry was built like it was to easily translate INI files into a semi-filesystem structure. [1]: https://e…

In fact, if I recall correctly, in Windows 95 badly behaved 16 bit Windows apps that tried to put their own INI files in C:\Windows had those file writes/reads silently redirected to a part of the then new Registry.

In 16-bit Windows, there were several global shared INI files, most notably \WINDOWS\WIN.INI, that effectively operated much like registry. You can still see this reflected in the Win32 API pertaining to INI files - there's Get/SetProfileString which does not take a filename as an argument, and then there's Get/SetPrivateProfileString which does.

Some Win16 apps would add their entries to that file - but this wasn't "badly behaved" at the time, as evidenced by the fact that e.g. SetProfileString specificaly has an argument for "app name", so the ability to do so was intentional and documented.

If I remember correctly, it was in Windows NT - where \WINDOWS became read-only for non-admins - that they started doing redirections; and even then they are done specifically for those global shared .INI files. The mappings are configurable, with configuration itself defined by registry keys - look at HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping to see what gets mapped where.

Re: Why the Windows Registry sucks technically (2010)

#293
post #56

Earlier quoted context omitted.

I attended a seminar on the office binary file formats about 10 years ago at MS. The reason it was done was for performance reasons, including the wonky layout that made it quicker to save and read the file from slow media like floppy discs.

I also remember reading about that somwhere, sometime... loading... ah, here it is: https://www.joelonsoftware.com/2008/02/19/why-are-the-micros... > The file format is contorted, where necessary, to make common operations fast. For example, Excel 95 and 97 have something called “Simple Save” which they use sometimes as a faster variation on the OLE compound document format, which just wasn’t fast enough for mainstre…

The underlying file format, COM Structured Storage, is basically filesystem-in-a-file, and works much like FAT. So, bits of deleted data would be floating around even without any performance hacks used by the app itself.

Re: Why the Windows Registry sucks technically (2010)

#294

Windows 10 and 11 have moved away from the registry for applications. It's in C:\Users\ \AppData\Local\ for per-user information I haven't had to go into the registry on Windows 10 or 11 except for enabling beta/early access features.

That's a new alternative to the registry, and some prominent programmers like Raymond Chen have promoted using it, but it's still up to app developers which they want to use. I doubt that the registry is going away any time soon.

[deleted]

Re: Why the Windows Registry sucks technically (2010)

#295

Windows 10 and 11 have moved away from the registry for applications. It's in C:\Users\ \AppData\Local\ for per-user information I haven't had to go into the registry on Windows 10 or 11 except for enabling beta/early access features.

AppData\Local or AppData\Roaming, depending on whether the setting is machine-specific or machine-independent.

Re: Why the Windows Registry sucks technically (2010)

#296

My impression from a past life working with the innards of Windows was that Microsoft weaponized terrible software engineering practices into a business advantage. The awful underlying implementations made it very hard for competitors to reverse engineer anything and build compatible products. Sometimes, it even made it exceedingly hard to write drivers for Windows because of unresolvable race conditions in the kerne…

The purpose of the registry is as an obstacle to simplicity.

Re: Why the Windows Registry sucks technically (2010)

#297

Earlier quoted context omitted.

Is that you, Dave Cutler? But more seriously, what do you want from an OS? Cleaner design? Plan 9 comes to mind. QNX is very elegant, too. Some microkernel thing? Fuchsia, but some say it's inelegant and overdesigned right off the bat. Minix has some nice properties but somehow nobody but Intel seems to use it. Also, QNX again (but as the name suggests it's similar to Unix)... Distributed computing? I don't know, see…

RIM (The Blackberry people) bought QNX. Do you know, if they have been good shepherds? Has that helped, or disadvantaged QNX as a viable solution proposal in the project space it had?.

I'm not well informed. AFAIK customers like Porsche and Ford (with the fairly successful Sync 3 infotainment system) are still using it. I do know that Dan Dodge, QNX founder, developer 1 and great guy (speaker of my all time favorite conference keynote), has left Blackberry. Rumor has it that he was unhappy with the new leadership and direction for QNX.

Re: Why the Windows Registry sucks technically (2010)

#298

Earlier quoted context omitted.

I hate this fanatical love of the UNIX way. I really hate that as of today Windows is the only non UNIX OS. I trully believe that this fact set us back. No more exciting new OSes only boring unix.

Is that you, Dave Cutler? But more seriously, what do you want from an OS? Cleaner design? Plan 9 comes to mind. QNX is very elegant, too. Some microkernel thing? Fuchsia, but some say it's inelegant and overdesigned right off the bat. Minix has some nice properties but somehow nobody but Intel seems to use it. Also, QNX again (but as the name suggests it's similar to Unix)... Distributed computing? I don't know, see…

My concern isnt about Windows or Linux specifically but that something is lost when the garden only grows two plants. In, say, 1980 there were several unique OS streams, each with their own quirks: UNIX, Pick, VMS, etc.

It seems strange that we are essentially trading on isotopes of OS thinking from about 2000 when Linux took the mantle of UNIX and Windows converged on the XP code.

Is this it? Is producing an OS now so incredibly expensive and hard that we are never going to try again, and just keep bolting things on to what we have? I feel a little sad at that, even if the reasoning is impeccable.

Re: Why the Windows Registry sucks technically (2010)

#299

Earlier quoted context omitted.

> And then imagine having to stay as true as possible to that rule for 40 years. And then imagine that most of your original decisions were poor ones, you won your position by virtue of being an abusive monopoly, and as a result, the majority of the desktop world has been needlessly suffering under the burden of your poor technical decisions for 40 years.

Microsoft's secret is, and always has been, incompetent competition. If you invent a time machine, don't kill Bill when you go back. Build something that's genuinely better for both users and developers.

> Build something that's genuinely better for both users and developers.

When I was much younger I, too, thought this way. Reality, however, does not align with this at all. Better products do not necessarily win. I might even go as far as saying that they almost never win. The vast majority of products --not just software, anything-- are mediocre at best. What they do is solve a problem.

One thing engineers, developers have to work hard to get out of their heads is that the actual users of software, operating systems, applications, websites could not care one bit about anything that happens under the hood. Nothing. Not one bit. To put it plainly, they doing give a shit. At all.

When someone wants to order a pizza online, write a document on their laptop or play some music, all they care about is that thing. Nothing else matters. You could have a dozen hamsters trained to push buttons behind the scenes for all the care.

It truly does not matter. Internalizing that realization, is, in my opinion, an important step in the evolution from being a junior engineer to someone with enough experience to understand reality enough to get the job done.

This does not mean creating garbage. It does mean not being a complete pain in the ass about how to deliver a solution that users will, well, use.

This argument about the Windows registry is just silly. And the proof is simple: BILLIONS of people are benefitting from what this software does. Billions. The only people complaining about it are engineers not experienced enough to understand what they think is utterly irrelevant when compared to the scale and success of the SOLUTION the software provides.

In my forty years of hardware and software development I have yet to find a single piece of technology I could not criticize to one degree or another and, given the opportunity, improve. And yet, with enough experience, you realize this is the wrong metric to focus on.

People's needs are served by solutions. Their lives are improved by software and hardware that solves the problems they have. The person in the hospital recovering from a heart attack gives two shits about the Windows registry, even though nearly the entire computing chain that was used to save his life was likely run on Windows computers. That's reality. The rest is geeks not understanding that they don't know what to focus on or how to actually evaluate the value of a solution, which very often turns out to be far less than ideal and can always be criticized from a distance, both in time and space.

EDIT:

> incompetent competition

Serious question: Do you stop to read and think about what you are saying? I am not attacking you at all. I am just trying to understand how you might justify this perspective.

"incompetent competition"?

This is the company that has f-ing owned home, desktop and enterprise computing for what, FOUR DECADES? Incompetent? C'mon. They have solved problems for people and companies large and small for decades. The world has been running on MS solutions for longer than some of the people reading this have been alive. That is far from incompetent competition. Very far.

Re: Why the Windows Registry sucks technically (2010)

#300
post #133

Earlier quoted context omitted.

> And then imagine having to stay as true as possible to that rule for 40 years. And then imagine that most of your original decisions were poor ones, you won your position by virtue of being an abusive monopoly, and as a result, the majority of the desktop world has been needlessly suffering under the burden of your poor technical decisions for 40 years.

> burden The slow boot and shutdown times, and the interminable upgrades are almost inhuman. It seems like you can upgrade Ubuntu to a new major version faster than Windows can install a month's worth of fixes. Especially when the Windows updates are unannounced and suddenly it's going to take 30 minutes to leave your desk instead of 30 seconds.

> It seems like you can upgrade Ubuntu to a new major version faster than Windows can install a month's worth of fixes.

Nobody cares. It is beyond obvious --brutally, massively so-- that this is not important at all. Not even a little.

The proof is simple: Billions of users have done just fine for decades.

The only people who ever complain about this are technical folks who often view the world from a perspective that is far removed from average-user reality (the billions of people I mentioned before).

I think it is extremely important for engineers to be able to understand that they don't often view the world in terms that actually matter.

One of my favorite go-to examples for this are the endless (and pointless) arguments about vi/vim vs. whatever.

Post reply on HN