http://blog.zorinaq.com/ (circa 2013-05-12)
I'm a developer in Windows and contribute to the NT kernel. (Proof:
the SHA1 hash of revision #102 of [Edit: filename redacted] is
[Edit: hash redacted].) I'm posting through Tor for obvious
reasons.
These junior developers also have a tendency to make improvements to
the system by implementing brand-new features instead of improving
old ones. Look at recent Microsoft releases: we don't fix old
features, but accrete new ones. New features help much more at review
time than improvements to old ones.
(That's literally the explanation for PowerShell. Many of us wanted
to improve cmd.exe, but couldn't.)
More examples:
We can't touch named pipes. Let's add %INTERNAL_NOTIFICATION_SYSTEM%!
And let's make it inconsistent with virtually every other named NT
primitive.
We can't expose %INTERNAL_NOTIFICATION_SYSTEM% to the rest of the
world because we don't want to fill out paperwork and we're not
losing sales because we only have 1990s-era Win32 APIs available
publicly.
We can't touch DCOM. So we create another
%C#_REMOTING_FLAVOR_OF_THE_WEEK%!
XNA. Need I say more?
Why would anyone need an archive format that supports files larger
than 2GB?
Let's support symbolic links, but make sure that nobody can use them
so we don't get blamed for security vulnerabilities (Great! Now we
get to look sage and responsible!)
We can't touch Source Depot, so let's hack together SDX!
We can't touch SDX, so let's pretend for four releases that we're
moving to TFS while not actually changing anything!
Oh god, the NTFS code is a purple opium-fueled Victorian horror novel
that uses global recursive locks and SEH for flow control. Let's
write ReFs instead. (And hey, let's start by copying and pasting the
NTFS source code and removing half the features! Then let's add
checksums, because checksums are cool, right, and now with
checksums we're just as good as ZFS? Right? And who needs
quotas anyway?)
We just can't be fucked to implement C11 support, and variadic
templates were just too hard to implement in a year. (But ohmygosh we
turned "^" into a reference-counted pointer operator. Oh, and
what's a reference cycle?)
Look: Microsoft still has some old-fashioned hardcore talented
developers who can code circles around brogrammers down in the
valley. These people have a keen appreciation of the complexities of
operating system development and an eye for good, clean design. The
NT kernel is still much better than Linux in some ways --- you guys
be trippin' with your overcommit-by-default MM nonsense --- but our
good people keep retiring or moving to other large technology
companies, and there are few new people achieving the level of
technical virtuosity needed to replace the people who leave. We fill
headcount with nine-to-five-with-kids types, desperate-to-please
H1Bs, and Google rejects. We occasionally get good people anyway, as
if by mistake, but not enough. Is it any wonder we're falling behind?
The rot has already set in.
--
Bill Gates, brilliant? Really? Uh-huh [Ellison laughs for several seconds].
-- Oracle CEO Larry Ellison, interviewed in Forbes ASAP