7 ms·
Microsoft really goes the extra mile when it comes to backward compatibility. "Just in case you depend on Notepad being broken, we added a setting for you!"
by jakobegger 8y ago
Microsoft really goes the extra mile when it comes to backward compatibility. "Just in case you depend on Notepad being broken, we added a setting for you!"
- dmannorreys 8y agoAnd they even made the setting easily accessible, just hit [HKEY_CURRENT_USER\Software\Microsoft\Notepad] and change some registry key
- Spivak 8y agoI don't know if this is sarcasm or not but that's pretty standard in the Windows world. Your ops team wouldn't blink at tweaking reg values.
- reaperducer 8y ago>I don't know if this is sarcasm or not but that's pretty standard in the Windows world. Your ops team wouldn't blink at tweaking reg values. I can only assume that requiring an ops team to change a setting in a basic text editor is pretty standard in the Windows world, too?
- eterm 8y agoIndeed, the registry is actually a good feature, it's a configuration database rather than relying on flat files as in the "just go to /etc/<package>/<package>.config or /home/<user>/.package/<package>.config" of the linux world. The problem is that when it was first introduced in windows 95 the registry would easily and often corrupt causing many issues so some people still associate the registry with being a bad design, when it was actually just a bad implementation of a good design.
- Hello71 8y agoif it's trying to be a database, it's doing a terrible job. all the problems of not being files (can you do "find HKEY_CURRENT_USER -name mypackage" to see what the uninstaller left behind?) with none of the benefits of a database (ACID).
- Analemma_ 8y ago> with none of the benefits of a database (ACID) This is not correct, Windows Registry updates are atomic and transactional. There may be other problems with the registry model, but it is a "real" database.
- krylon 8y agoACID means more than atomic updates, though. To be ACID-compliant, you'd have to be able to group several changes to the registry and have them take effect either all at once or not at all.
- eterm 8y agoA word for that is transactional.
- fulafel 8y agoIt's implied by the I (isolation).
- Const-me 8y ago> To be ACID-compliant, you'd have to be able to group several changes to the registry and have them take effect either all at once or not at all. You mean transactions? Windows registry supports them since Vista when they added Kernel Transaction Manager: https://msdn.microsoft.com/en-us/library/windows/desktop/bb986748(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/bb9... See CreateTransaction, RegCreateKeyTransacted, RegOpenKeyTransacted, CommitTransaction[Async], RollbackTransaction[Async] APIs.
- anothergoogler 8y agoGNOME provides a registry called gconf, now dconf (binary format). Many applications outside of the GNOME project use this registry.
- jacquesm 8y agoThe windows registry is absolutely terrible at its job. The namespace is polluted from day #1 after installation and this only gets worse as a box gets older. The number of places the same key could appear are baffling and you never really knew when you had exterminated the last instance of HKEYsomethingorother to achieve the desired effect.
- ksk 8y agoThe job of the registry is to be a reliable structured storage with access control and other features. It is not responsible for the things that go into itself. Here is the API. https://msdn.microsoft.com/en-us/library/windows/desktop/ms724875(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms7... Could you point out which one of these doesn't work as intended?
- jacquesm 8y agoIf you put together a structure like that and leave the sordid details up to the implementer and you supply a mostly confusing example as the set shipped with the OS, and subsequently mess it up even further with your own application installs you own the mess.
- nitrogen 8y agoAn upvote isn't always enough, so I just want to say I support your holistic view of engineering and find the "not a bug, not my problem" approach detrimental to the broader success and acceptance of technology in society.
- ksk 8y agoI'm unable to extract anything specific from your comments. Are you still talking about the registry or about something else? Its cathartic to vent, but the registry is not the source of your frustration.
- jacquesm 8y ago
- krylon 8y agoI think the major problem with the registry - besides being obscure - is that it can grow really slow as it fills up, and many programs do not clean up their registry data when being uninstalled. I think this is one of the major factors why Windows grows so slow after a couple of years on machines where lots of software is being installed and uninstalled.
- mappu 8y agoMost Linux programs don't remove their files from /etc/, ~/.local, ~/.config on uninstall either.
- nitrogen 8y agoThat's what the purge option to apt/dpkg is for.
- krylon 8y agoGranted, but the presence of those files does not slow down the system significantly. With leftover registry keys, you pay the price until you install the system from scratch. (Windows might have improved the registry handling code since Windows 95/98, I think it's not quite as bad these days... but that might also have to due with computers being much faster than 20 years ago.)
- kalleboo 8y agoI think the macOS User Defaults system is still my favorite config system. Unified api (`defaults` and NSUserDefaults), but stored in user-editable (and easily cleaned up) files with standardized naming and formatting. It's not perfect (kooky and unwieldy XML syntax, no standard equivalent of conf.d), but it solves the pain points I've seen with the Windows Registry (monolithic inscrutable database) and unix commands (random config files each with their own custom place and format)
- zaarn 8y agoWe live in a world where MongoDB is at the butt-end of all Database and ACID jokes. But the award should go the Windows Registry, a Key-Value store that combines the drawbacks of a half-assed filesystem with the advantages of piping your database to /dev/null. A Database would be capable of using an index to traverse all the keys. The Registry does a linear lookup at each pathnode. There is a good blogpost [https://rwmj.wordpress.com/2010/02/18/why-the-windows-registry-sucks-technically/ https://rwmj.wordpress.com/2010/02/18/why-the-windows-regist...] that details the insanity of a database that managed to be worse than MongoDB at the lowest level of jokes before MongoDB was even invented.
- codazoda 8y agoI was pretty surprised that editing the registry to change stuff like this is still a thing.
- notatoad 8y agoWeird settings are supposed to be hidden in weird places. There's no reason that a setting like "use broken line endings" should be in a nice easy to find place.