"... you discover a second operating system underneath."
Welcome to SystemdForWindows.
Microsoft's habit of adding unnecessary features to Notepad is a symptom of broader bloating in the Windows codebase. But it is possible to go back to basics with a version of the editor that fits in less than 3 kilobytes. Printing in Windows is kind of spooky. It's one of those subsystems that feels like you're opening a hatch …
Yes, I get that it senses when I am running a lot of important jobs, and so decides to slow them down by crowding the cpu, But what sort of things is it supposed to check, flag, or stop? I have at times done some searching around to try to find out, but couldn't find anything even vaguely useful...
And being corporate IT, they wouldn't even allow you to run an non-registered EXE.
I used to get flagged by the scanners building versions of the app I was supposed to be developing. And don't dare add a new EXE to the application.
I used to be afraid to lock my laptop because it might think it was idle. So I'd come back from a short trip to the restroom and find it too busy to let me log back in. I'd hit a key to get the login box, the screen would blur, but the login prompt wouldn't show up for 30 minutes. That really sucks if you just had a couple free minutes between meetings.
The fix for that is to let it take 30 minutes.
"Sorry, my laptop won't even give me a login prompt. Guess we'll have to postpone the meeting."
In union shops it's called "work to rule" - as in, you follow every rule exactly to the letter, verify every step you're about to take, and let it slow everything to a crawl. It can be a VERY effective form of protest.
> And being corporate IT, they wouldn't even allow you to run an non-registered EXE.
I had the same problem with my corporate IT department. They (usefully, to be fair) pre-package a number of developer type utilities and these can be installed by end users without needing extra permissions (both managerial and system).
I found a really neat freeware utility and raised a ticket to see if they could add it. After a bit of back and forth I eventually go to speak to the person in control of the team and they agreed. A couple of days later they came back to me to say they couldn't add it because it was a plain .exe and not an MSI. Sigh.
Server 2025 notepad.exe 360 KB. (360448 Bytes). ~ 130 to 140 times larger.
Windows 11 notepad.exe, the one in System32, is not the notepad that is run. The actual notepad that is run in Windows 11 24h2 is 15730848 bytes, over 6000 times larger, in...
dir "C:\Program Files\WindowsApps\Microsoft.WindowsNotepad_11.2604.5.0_x64__8wekyb3d8bbwe\Notepad" /s /a
Volume in Laufwerk C: hat keine Bezeichnung.
Verzeichnis von C:\Program Files\WindowsApps\Microsoft.WindowsNotepad_11.2604.5.0_x64__8wekyb3d8bbwe\Notepad
2026-06-15 07:31 <DIR> .
2026-06-15 07:31 <DIR> ..
2026-06-15 07:31 <DIR> Assets
2026-06-15 07:31 2.025.792 msptls.dll
2026-06-15 07:31 3.281.720 Notepad.exe
2026-06-15 07:31 6.382.432 NotepadXamlUI.dll
2026-06-15 07:31 6.632 NotepadXamlUI.pri
2026-06-15 07:31 146.432 NotepadXamlUI.winmd
2026-06-15 07:31 3.862.888 riched20.dll
6 Datei(en), 15.705.896 Bytes
Verzeichnis von C:\Program Files\WindowsApps\Microsoft.WindowsNotepad_11.2604.5.0_x64__8wekyb3d8bbwe\Notepad\Assets
2026-06-15 07:31 <DIR> .
2026-06-15 07:31 <DIR> ..
2026-06-15 07:31 2.880 NotepadColorfulIcons.ttf
2026-03-16 09:32 22.072 NotepadIcons.ttf
2 Datei(en), 24.952 Bytes
Anzahl der angezeigten Dateien:
8 Datei(en), 15.730.848 Bytes
System > Optional Features > View or edit optional features
Approve UAC.
Click on "See available features".
Type "Notepad".
Tick box on the found row and and click Add. If nothing appears then it's not available or you already have it installed.
Now you have a 70K Notepad which is fairly unadulterated and you can uninstall the bloated version.
What's the point of using a packer for this? Sure, it compacts the disk image, but who cares? It means the whole thing has to be unzipped, than rescanned, and, as noted, makes your AV more suspicious and slower. We aren't at a point where "larger disk image" is the important part of "bloat"
I was expecting stuff like script recognition or coding language (like .reg keys, autoexec.bat and config.sys files are instantly recognizable), hexadecimal editor, you know, fancy stuff for those low-level scripts and coding you need to do every now and then.
Even AutoHotKey coding can be read on Notepad++, which was remarkable.
But nope, that's the kind of bloat that COULD have happened to notepad. Giving it FONTS and bold/italic/underscore is not the way.
Glad he made it compact and lean at least.
I use the original Notepad all the time. I've already used it several times today. It's great, it works, and if you copy text from the net and paste into it, then copy again, it strips all the BS formatting off, so you can paste the raw text into your word processor files.
Use it all the time for that now after it saved my job.
Short version: I mailed a mapquest-embedded invite to a Novell SUSE Linux demo from one work machine to another to access a printer (I know, I know). Mail never arrived. Went to see Outlook admin. He accused me of sending a racist email. I asked for the offending term. He showed me.
"Couldn't that be a regex latching onto something like companyid?' I asked.
No, because of the space.
"What space?" I asked.
The one between company and id.
"But we concatenate words like that all the time in IT" I pointed out. He wasn't having it. He wrote the filter and it was all great.
Also: Not company policy to warn people they'd been caught.
I argued that the likelihood of a multinational corporation like Novell using that epithet was zero, even if their staff held such repugnant views. He wasn't having it.
So I dumped the invite to Notepad and called him back.
"You were right, it wasn't companyid"
Well I tol
"It was propertyid, a property in the mapquest embedded object. You've caught me in a broken, inadequately tested regex and I expect a written apology with reassurance that your mistake has not been the cause of me being secretly written up by HR due to your secret racist capture trap policy."
Bonus annecdote:
A week later I was in a meeting listening to a vendor melt down on speakerphone about unreturned emails. Since we were talking about Cobol and email, an ugly suspicion formed. I asked for the vendor to send me the entire thing, including the subject used, under a bland subject like "FYI".
Yup, the subject has a Cobol picture clause in it: XXX. Mr Regex had caught another person in a secret trap.
My joy was second to none when I called him and told him he'd put yet another foot in a big pile of steaming regex, and when asked to show him what I was talking about telling him that *this* time he could do his job on his own or deal with the vendor's wrath himself.
That’s a bit like keeping a FAT formatted removable disk drive - copying files to this seems to be the most reliable way of removing NT file and security properties, so the files can be read on a different system typically running on a different domain.
I use the run dialogue for stripping off formatting (assuming it's a single line of text) as I can do it all from the keyboard. Ctrl-C, Win-R, Ctrl-V, Ctrl-A, Ctrl-X, Esc, alt-tab to my destination, Ctrl-V.
Muscle memory has it down in a couple of seconds.
I literally never use Notepad anymore. It always tries to open a thousand tabs of random garbage, some of which are on a random file server so I get prompted to authenticate before I can ever enter text. I hate it. I don't need to revisit log files I opened six months ago, I just want scratch paper. I'm glad on my personal machines VIM doesn't grind my terminal to a halt whenever I want to edit a file or do something as simple as test a keyboard.
the trend for lazy and verbose code due to more powerful compute has a long history.
Equally the trend for continuous “improvement” in software with more and more features added is an old one. You have to admire software that is “done” and the only updates are bug fixes and upgrades to suit OS updates.
Perhaps the increasing cost of hardware, of compute, may prompt some sanity back into the art, or perhaps not. Feels like the genie is out the bottle, but kudos to Dave for showing the way!
I may no longer use windows, but I’m subscribed to Dave’s channel. The man is a legend, a wizard, a sage!
Sadly the very thing causing the "crisis" will be used to try and fix the bloat.. So like a Sara-Lee Danish it will become layer upon layer upon layer of bloat, crated and maintained by the very bloat itself.. Maybe a good story line for a movie.. From the Studio that brought you The Blob, comes The Bloat..
The "Art" of programing clean code we all learned as you only had limited space/compute are long gone sadly, but it warms my heart these journeys Dave Plumber takes where you had to be efficient, I can recall a number of scoldings I got from a senior programmer for my "lazy code", but those lessons still resonate with me to this day.
Here is a beer for Dave the Sage..
Or possibly one of the IBM VGA BIOS fonts from https://int10h.org/oldschool-pc-fonts/.
None of these newfangled anemic stick-figure or excessively swoopy curved-edge fonts for MY console! Proper bitmaps all the way! (srsly, to my eyes across quite a few monitors and laptop displays it's been all downhill on any form of "subpixel rendering" since around Windows XP. Near-headache-inducing fuzziness and/or colour bleed no matter how I tweak the knobs.)
Watched this video last night - interesting and entertaining as always.
This is exactly what notepad needs - about the only really useful recent addition to bloatpad is tabs, and I could even live without them.
Small and fast beats slow and bloated every time, but somehow I can't see many modern applications programmers taking the time to learn how to call the Windows API directly. There be dragons and dark magic!
"the only really useful recent addition to bloatpad is tabs"
THE OPERATING SYSTEM HAS TABS!!! RUN MULTIPLE INSTANCES!!! THE OPERATING SYSTEM MAY EVEN GROUP THEM FOR YOU!!! HOW ABOUT ADD MULTI USER SIMULTANEOUS GROUP EDITING GAHHH!!!!!
The vast majority of the time, all I need is a very basic text program. Typically RTF so I can copy something like a recipe I find, do some reformatting and clean up to save it in my recipe folder. Other times it's just a big clipboard where I can peel off snippets from a much longer text file when I need quotes or find something written much more clearly than I can. Simplicity is the key. I have endless choices when it comes to more complex needs.
OK that's taking things WAY too far. Since it is probably 90% Windows library calls it seems like C# or whatever Microsoft's favorite language is these days would make more sense. I suppose that pulls in some libraries he didn't need and caused it to "bloat" to hundreds of KB and he wanted the bragging rights for a single digit 'K' figure.
"I suppose that pulls in some libraries he didn't need and caused it to "bloat" to hundreds of KB..."
That's the definition of bloat, though - stuff you don't need, dragged in where you don't want it. I might not go as far as using assembly (though I might) but I' might be tempted to extract just the bits I need from a library/ include file.
But what's the benefit to a 3K app versus even a 300K app? Fits on a floppy? It isn't going to get any faster (versus human typing speed) or derive any other meaningful benefit from taking the "cutting bloat" to 11 by writing it in assembly. It is a bragging rights mental masturbation exercise that confers no tangible benefit on anyone using the app.
> but I' might be tempted to extract just the bits I need from a library/ include file.
Unless something is going wrong, you should never need to manually "extract just the bits I need from a library/ include file" in order to stop auto-bloat. If all is working properly, the whole point of a library is that it is merely an archive of lots of little bits of object code and the linker only pulls in what is needed to satisfy the calls your code actually makes. A proper header file is just a load of declarations - you should be able to include as many header files as you feel like and, whilst the compile time goes up, the exe should not change one jot.
But, of course, these days we get badly created libraries that seem deliberately made to defeat the best efforts of the linker to do a minimal job. Far, far worse is an apparent fetish for "my library is all inside just one file that I am pretending is a header, see, it ends in .h" but when you look inside it includes actual definitions (not just inlines or other forms of macros) so that the simple act of including it adds variables and causes code to be added to your object.
is the one from Windows NT 3.51. Just tested with the German NT 3.51 version: notepad.exe = 45424 bytes, notepad.hlp = 28410 bytes, Notepad.cnt = 74 Bytes. And it does insert the date when hitting F5, on Server 2025 (aka Windows 11 24h2 actual professional). Even the HLP still works, if you have winhlp32.exe installed.
Are met by Notepad4. I don't really worry too much about binary size, but I want the editor to open rapidly, and load/display files rapidly, irrespective of the file size. I also go used to syntax highlighting, which is a great help when dealing with the output of quantum chemical calculations and when hacking together a short Python script to parse my data files.
My firm uses Siemens NX for CAD modelling. We just upgraded to the latest version (we were a few versions behind).
My (admittedly not very powerful) laptop used to be able to handle any and every CAD model I fired at it. It might be a bit slow on large assemblies, but everything worked. In the new version, I cant even load those large assemblies. My bosses answer was to tell me (and the other affected staff - which was a lot of engineers) to order new top of the line laptops with all the bells and whistles. And he'll charge them to IT.
I can not understand how a CAD program can go from working perfectly, to not working at all on the same hardware just due to a software upgrade. The basic functionality should be the same, but nope even that is gone...
Clearly Siemens have been reading the Microsoft playbook...
/end Rant
"... can not understand how a CAD program can go from working perfectly, to not working at all on the same hardware ..."
Cannot understand?
Even after having been provided the answer?
" ... answer was to tell me (and the other affected staff - which was a lot of engineers) to order new top of the line laptops with all ... "
That is the WinTel consortium/monopoly/mafia as it has been for the last 35 years or so.
Still at it.
.
On my Windows 10 machine as of today Wordpad does not have a spelling checker.
BUT
Several years ago I fired up Wordpad and boom! There was a spelling checker! The next time I used Wordpad it was gone.
So I suspect its an option that MS turned on by accident then turned off very quietly, closed the door and pretended it didn't happen.
Probably registry setting is all it takes.
It saves some space at the expense of telling the user if anything goes wrong.
e.g. Saving a file will fail if the file has been made read-only, but the user has no idea.
Looking at the ASM - when saving, failure to open a file for write will silently exit if it fails.
Confirmed through runtime experimentation - doesn't overwrite & doesn't report problem.
I can live without menu shortcuts (just...), but letting me exit without knowing my work is lost...
<code>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; save EDIT contents back to CmdFile ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SaveFile proc NEAR
; get EDIT text length
...
; save size and alloc buffer (+1)
...
; if alloc ok, save ptr / else abort save
...
; get EDIT text into buffer
...
; open CmdFile for write (overwrite)
push NULL
push FILE_ATTRIBUTE_NORMAL
push CREATE_ALWAYS
push NULL
push 0
push GENERIC_WRITE
push OFFSET CmdFile
call [_imp__CreateFileA@28]
; if open ok, save handle; else free buffer
cmp eax, INVALID_HANDLE_VALUE
je SaveFree
mov hFile, eax
...
...
; cleanup - free save buffer
SaveFree:
mov eax, hMem
push eax
call [_imp__GlobalFree@4]
SaveDone:
ret
SaveFile endp ;end SaveFile proc
</code>
I remember reading an article several years back in some illustrious on line journal. It could even have been this one, that a purported Microsoft programmer, when joining Microsoft, was given the task of adding some features to something or other. When he approached his manager and said that it wouldn’t take him too long to rewrite the code, so that it was smaller, more efficient and less buggy, he was told that he should only concentrate on new features and not on efficiency.
I am paraphrasing a lot, as the details are lost in the midsts of a 72 year old’s time.