> Am I the only one scared that notepad on the latest Windows can still display a dialog box that comes straight from NT 3.1?
As the article states the reason for this is:
Because Windows Explorer and many of the components of the Shell aren't included in a Server Core install, applications like Notepad' which would normally show an Open dialog box like this: (show the original File Open dialog)
> Why the hell does it still have that DLL built in?
To display the file open dialog in Windows all you do is call the GetOpenFileName Win32 function.
Back in the days of Windows 95 Microsoft got into the habit of changing the look of the File Open dialog for every new release of Windows and they stored these new dialogs in the common control dll.
So I suspect deep inside of Window itself there is pseudo code that works something like this:
GetOpenFileName()
if Common Control DLL installed
Call New Explorer GetOpenFileName dialog
else
Call the very first every GetOpenFileName dialog built into Windows itself
Wouldn't it be easier (and more elegant) to skip the built-in dialogs altogether and just ship it with a common controls dll that didn't use Windows Explorer elements? I am fine with Microsoft moving things around, but layer upon layer of obsolete functionality doesn't strike me as even professional.
Hell... If one of my developers even attempted such a stunt we would have a long code review session discussing it.
" Microsoft says there are still about 600 interconnected DLLs and other binaries, totaling hundreds of megabytes. None of these could be safely removed without causing other parts of the system to break. Even Mark Russinovich, widely regarded as one of the world’s top experts on Windows internals, admits that they still can’t predict what exactly would break."
As much as I like Windows 7, that kind of thing makes me want Microsoft to create an emulated environment similar to OS X Classic and surround it with a from scratch, managed, modern cruft free OS.
Except OS X is far from cruft free. It has a lot of cruft from NextStep floating around.
Af for the interconnected DLLs, have you ever worked on a largish project that tried to release independent parts? It's hard. The practical problem is that you get two seemingly independent modules that want to work well together, not duplicate code between each other, and be independently distributable. These can conflict, and if you're not dedicated to all of the goals, and clever, you fail in one or more.
Programs back then probably weren't designed with modularity in mind, which is why its hard to remove even the slightest detail of code without extensive testing..
I really hope Microsoft gradually improves this situation with the MinWin project.
Possibly, but it is still a bit scary that notepad may be attempting to launch every open-file dialog from current Windows implementation all the way down to NT 3.1, passing through Vista, XP, 2000, NT4 and 3.5 incarnations on a "is this available?" fashion.
And Midouri: http://en.wikipedia.org/wiki/Midori_(operating_system)
Two cool projects that are part of Microsoft's research in managed code operating systems.