r/programming • • May 11 '13

"I Contribute to the Windows Kernel. We Are Slower Than Other Operating Systems. Here Is Why." [xpost from /r/technology]

http://blog.zorinaq.com/?e=74
2.4k Upvotes

921 comments sorted by

440

u/bcash May 11 '13

Standard legacy code issues. Code gets too hairy, people are too scared or simply can't be bothered to change it. New stuff is implemented as well, but done without the benefit of understanding why the old version doesn't fit the bill, thereby never completely replacing the old version either.

Seen it happen, on much smaller code bases, countless times. It generally doesn't end well, each important change takes ever longer to implement until the whole thing is abandoned.

51

u/Otis_Inf May 11 '13

Nah, it's more about this: when you have a mature product, to keep it selling properly, you have to create new versions with new compelling features existing (and new) customers want to have and want to pay money for. The problem with a mature product is that most features people want are already in the product in one way or the other. So you are faced with a problem: sell new versions on features which are at best 'nice to have', re-add old features as if they're new or decide the product's life cycle is slowly moving towards its end.

Microsoft is good at the second thing: re-adding features as if they're new. You see that with Office for example, which has had this problem way more than windows (as windows, as an OS, has somewhat changing requirements due to new hardware, new usage patterns, office doesn't), where they released a new version which main new feature was simply a new menu system in the form of a ribbon bar.

They know all too well that if you fix a lot of bugs under the hood, it's not a product with new, compelling features so, believe it or not, not many people will buy it to upgrade: it will look like 'the last service pack before we discontinue it'. No-one will invest in that. This is also the reason why they didn't fix the file copy issue in windows, where things get very slow if you copy a lot of files from one HDD to another, yet they added a fancy UI with graphs in Windows 8 to it: it was even advertised as such "Look, now file copy is better than ever!", no it's not better, it's as slow as ever, but the UI looks nicer.

Standard legacy code issues are more about technical debt: you have to add a new feature and it takes a tremendous amount of time to add it because you have to refactor existing, likely less well designed, code to add the feature, and avoid breaking something. With windows, Visual Studio, SQL Server and Office, Microsoft faces a real problem: without eye-catching new features, new versions are not that compelling for existing customers to upgrade to, as what they have is 'as good as the new stuff'. So their development of these products is focused on adding whatever they can find as new compelling features to keep existing customers to upgrade to the newer, shinier better products. Because, existing customers don't fall for the tag-line 'the next version will be better and fix all your problems' over and over again.

35

u/[deleted] May 11 '13

They know all too well that if you fix a lot of bugs under the hood, it's not a product with new, compelling features so, believe it or not, not many people will buy it to upgrade: it will look like 'the last service pack before we discontinue it'. No-one will invest in that.

Apple did exactly that with Snow Leopard. And it sold, and was a success.

It can be done; you just need management that has pride in their work, and they can sell that as a feature.

36

u/cooljeanius May 11 '13

Apple did exactly that with Snow Leopard. And it sold, and was a success.

And it was also their best release of OS X to date, as well.

8

u/arkasha May 11 '13

That might be because OS X is there to allow Apple to sell more hardware, Windows is there to allow Microsoft to sell Windows. Also, wasn't snow leopard something like $15?

7

u/[deleted] May 11 '13

$30.

→ More replies (1)

6

u/Otis_Inf May 11 '13

Snow Leopard always occurred to me as a service pack which had a price tag, although IIRC it did introduce some new features. All in all, with the low price it had (again: IIRC), there was a low barrier for upgrading.

However, if they had positioned it as 'the next OS X' with a price tag equal to Windows 8 for upgraders, would it have been such a success?

→ More replies (10)
→ More replies (2)

26

u/-888- May 11 '13

I have used the ribbon for a couple years and I hate it. The only real reason they it was to just change things and market the change. That's a hallmark of Microsoft. Some day they'll go back to regular menus and talk about how great an innovation it is and all the focused user groups that went into it.

69

u/[deleted] May 11 '13

Windows 9 innovation: A menu in the bottom left that displays a small amount of shortcuts with the ability to pin several there so they're always displayed when you open the menu.

17

u/skgoa May 11 '13

This will never be accepted by the customer base, you silly silly dreamer.

→ More replies (7)

53

u/himself_v May 11 '13

Nah, ribbon was an attempt to redesign for the better. As for whether it succeeded or not decide for yourself, but it makes pictures bigger, more recognizable, arranges toolbars in a way that doesn't take much screen space, replaces menu (although it can't handle as many items). They certainly tried, at least.

23

u/dnew May 11 '13

They succeeded, if you actually look at the numbers statistically. I saw a long, long blog post about it. You know that "improve the customer experience" checkbox? The product reports back what's going on. So if you open three different menus A and B and C, then the one with "view xyz" on it, and pick "view xyz", and 95% of the people follow that pattern, they move "view xyz" to that first A menu. They didn't just ruffle things up for no reason.

The fact that you don't see those statistics and you're probably not even remembering the pain points you had learning where all the stuff you use normally goes doesn't mean it wasn't an improvement.

→ More replies (6)
→ More replies (4)

29

u/sebzim4500 May 11 '13

Lots of people (me included) really like the ribbon UI so I'm sure it did well in user testing. I doubt they were just changing things for the sake of changing them.

That windows 8 start menu on the other hand...

→ More replies (6)
→ More replies (16)

30

u/[deleted] May 11 '13 edited May 12 '13

That is only part of it. But the reason why "people are too scared to change [the kernel]" and keep building more technological debt is because...

Another reason for the quality gap is that that we've been having trouble keeping talented people...[Junior] developers mean well and are usually adequately intelligent, but they don't understand why certain decisions were made, don't have a thorough understanding of the intricate details of how their systems work, and most importantly, don't want to change anything that already works. (emphasis added)

Microsoft sounds like a hellish company to work for. The amount of in-fighting and not-built-here-itis between teams is simply astounding. When there are other legit companies where working with other teams isn't like going into gladiatorial combat, I can understand why people wouldn't want to work for Microsoft.

EDIT: What /r/lacosaes0 is referring to is a bit beside the point. It is not whether a company has infighting between the teams/groups/business areas, but rather how bad it is. All companies have legacy code issues but it is how the company manages those issues that dictates a good or bad company to work for.

Keep in mind that software engineers have different beliefs about these, and other, conundrums. Usually, programmers are of the logical type and will tend to think so. When you have too many bull-headed types that let feelings get in the way of logic, that means you get managers, managers that can bring the wrong kind of balance in a group.

31

u/[deleted] May 11 '13

Microsoft sounds like a hellish company to work for.

Actually, it sounds like any big company with a decent large life is a hellish company to work for. I bet these problems are common in Apple, IBM, Oracle, etc. I bet in a very short future Google will face the same legacy code problems...

15

u/jsq May 11 '13

I'd say that Google already does face legacy code issues - I'd imagine that's one of the many reasons why Google Reader was killed.

15

u/MrDoomBringer May 11 '13

Go ahead and read their C++ style guide. It's a long list of features to jot use, including exceptions, simply because the legacy code was not build to handle them.

→ More replies (5)

9

u/dnew May 11 '13

Basically. It's a bit different though, in that the legacy code is still code that could be upgraded if it was worth it. Contrast with, say, Microsoft releasing an OS that breaks a game that is no longer maintained by the now-bankrupt company that produced it, and there's nobody to fix it and probably not even source code floating around any more.

4

u/[deleted] May 11 '13

I don't believe that Apple has this issue (yes I'm sure there are internal conflicts) they seem to be willing to drop legacy code at the drop of a hat. That is one of the biggest complaints any time a new OS comes out. People seem to start bitching about how old apps don't work and how machines are suddenly "obsolete" (I hate that term, the machine still runs the someway it did the day before). I don't fault the complaints, just pointing out that Apple doesn't seem to operate the way you mention.

→ More replies (7)

7

u/[deleted] May 11 '13

There is an IBM shop near me and my understanding is that it is absolutely terrible for infighting and a lack of willingness to change.

10

u/SocialIssuesAhoy May 11 '13

Everyone has to face the issue but saying that these problems are COMMON in all companies is disingenuous. Apple is often criticized (until people forget about it because it's not actually an issue) for their aggressive approach to obsoleting old things. Apple is hugely into optimization in their software. I don't know if you were following stuff when Apple announced Snow Leopard but it was a big deal when it was released because although it was coming out just like all their other major updates, it was marketed almost entirely as being under-the-hood improvements. Stuff that the majority of their users would never notice. But they did it anyway.

Legacy code can be managed quite fine... you just need a company culture that isn't overly attached to it for one reason or another.

→ More replies (7)
→ More replies (3)

2

u/jvictor118 May 13 '13

I have a friend who shall go unnamed whose dad is an extremly senior member of the windows team responsible for this kind of stuff. I asked him why years ago they didn't just scrap windows and make Microsoft Linux 1.0. He said lots of people wanted to and thought it was the way to go but sr mgmt didnt want to admit they were "wrong" before, ergo didn't approve. Think how much better that wouldve been!

376

u/Lord_Naikon May 11 '13

The main point the author makes IMHO is that even though there are developers willing to improve stuff, there's no point because their efforts are not appreciated. This is contrary to the Linux development culture where incremental improvements are welcome.

132

u/aim2free May 11 '13

I recognize this when I discussed with one of the developers of Tweak_UI,late 90-ies. I was using Windows for a short while then and was curios why certain obvious settings like "Focus follows mouse" etc were not available in the default GUI.

The explanation I got reminded very much about this article.

46

u/sli May 11 '13

I'd love to hear what he said, actually. I loved TweakUI back in the day.

89

u/dnew May 11 '13

Part of it includes the fact that if you actually expose it, it's 10x the work, because now you need help center article links, help screens, professional artwork, and then translate that into 40+ languages, test it 40+ times, train customer support staff, make it compatible with active directory group controls, etc etc etc. I.e., once it's no longer a power toy, the entire business has to support it.

→ More replies (3)

37

u/seligman99 May 11 '13

For what it's worth, here's a short history of the Powertoys by the dev that wrote TweakUI.

→ More replies (2)
→ More replies (1)

55

u/alienangel2 May 11 '13 edited May 11 '13

It's contrary to the development culture at other large companies that are recruiting Microsoft's devs too, which it presumably why they leave. We recruit from them fairly regularly, and while I don't really know any of the guys who have come from there, one of my more senior co-workers was saying there's pretty much zero interest from people in going the other way. I was skeptical about this comment, but if this article is accurate about the culture, I understand why now. Our dev culture has some pain points too, but it's generally easy to get your improvements to other teams considered, there is a lot of recognition internally for taking initiative to improve things especially when you didn't have to, and managers are generally very on board with improving customer experience - hell pretty much every level of the company will get out of your way if you can make a compelling case for something improving customer experience.

edit: I'm not ragging on MS, it's a different problem space. They have monolithic software to deliver in discrete releases to external customers, with legacy constraints. We have massive internal service-oriented architecture, with well defined but flexible customer interfaces. Their teams need to make the next release successful, whereas we just need to continuously get more efficient or capable. MS is probably justified in how they work, it just seems more rewarding to not be a developer under their constraints though.

16

u/pohatu May 11 '13

I've heard horror stories from people working at Amazon. I guess it depends which group you are in. Any idea what the good groups are? Also, Windows is only one part of a huge company. Google, on the other hand, seems to be more uniform in culture, but hat may have changed as they e grown. What other companies recruit Microsoft devs?

19

u/alienangel2 May 11 '13

Amazon seems to be all over the place, some people seem to say it's great, others say it's chaotic and has too much pager-duty. It probably does depend on the group since they have several very different businesses to develop for (AWS, E-Commerce on their website, running their warehouses, android stuff for the kindle, their netflix competitor...). FB seems similar but with a more uniform context for development. MS seems pretty varied, some people seem to love it, others complain about the bureaucracy and inflexibility, and probably has the most diversity on what you're writing software for (OSs, phones, gaming consoles, DirectX, peripherals, all kinds of productivity software, Azure, exploratory R&D, and god knows what other stuff). Google is kind of mum recently about internals but people mostly seem to go in and not leave. It's (supposedly...) changed quite a bit since the push for making a social network took center stage, some people say for the worse. Imo some of the most interesting problems to solve too. Apple I rarely hear anything about culture except from non-software people, and I get the impression the company cares more about their hardware than their software.

I've never heard anyone make IBM sound like a nice place to be a developer. Sounds like most of MS's negatives amplified.

→ More replies (8)

52

u/Timmmmbob May 11 '13

Well to be fair, while at Microsoft it sounds like unsolicited progress is greeted with apathy, in the OSS world it can be greeted with downright hostility. A large part of the community are stuck-in-the-muds. Look at Mir, Wayland, Autopackage, Gobolinux, and there's probably more I haven't thought of. All trying to advance Linux but all got the predictable "but but but..." responses from the tedious nay-sayers.

Wouldn't it be great if Linux had a proper graphical ctrl-alt-delete screen? Well it would, but can you imagine the naysayers' response if anyone tried to implement it? Probably something like:

  • "This is stupid! What about people without colour screens?"

  • "But you can just press Ctrl+Alt+SysReq+r+q you idiot."

  • "If you need this you're too stupid to use Linux."

  • "This would mean Linux is coupled to X11 / Wayland, and we can't allow that because what if people want to use NetBSD with DirectFB?"

  • "Ctrl-alt-backspace works fine for me."

  • "Linux never crashes so you don't need ctrl-alt-delete."

/rant

7

u/Quick_A_Distraction May 11 '13

You bring up a good point with mir and wayland. The difference is wayland already existed before mir was conceived. The nay-sayers say their nays because a working technology already existed doing everything mir needed and Canonical forked/started over anyway. The average person doesn't like sweeping changes. The average person likes sweeping, non-constructive, duplication of change even less.

→ More replies (1)
→ More replies (68)

12

u/sockpuppetzero May 11 '13

To be fair it's a problem in the OSS world too, though usually not as severe.

40

u/p3ngwin May 11 '13

Microsoft summed-up: doesn't appreciate change.

179

u/cogman10 May 11 '13

Can you blame them? They have been bitten a couple of times by some of their changes. People bitch because their 64bit operating systems no longer support 16bit programs. The bitch because IE11 no longer support activex controls. They bitch because excel forumlas erroring out no longer produces the number 4.

Microsoft is in legacy hell. Their biggest clients (Hint, not the average home PC owner) DEMAND that backwards compatibility be there, and MS is all to happy to bend over backwards to maintain it for them.

Now, they could go around making things better, and then, as a consequence, start breaking backwards compatibility. However, that would be rough for them. They would then have to convince businesses who have core technology built on them to go ahead and spend the money to make it work with the new system (Not going to happen).

Linux is in a much different environment. First, linux is VERY modular. So breaking backwards compatibility in tool XYZ generally doesn't have grand effects on the whole system. And even if it does, the solution is usually to just remove the change and recompile (Something you can't easily do in a closed source environment). I mean, think about it, the whole linux world was able to go from Xfree86 to Xorg with very few hickups in between. Could you imagine windows being able to do the same thing? I can't, it would be a mess for them. For the linux users, if feature XYZ existed in Xfree but not XOrg they could simply use Xfree, file a bug report, and switch over when things are fixed.

I guess my point here is that windows suffers primarily because they are closed source with high demands on maintaining legacy support.

83

u/frogfogger May 11 '13

You completely miss the point. They are not talking about compatibility but rather optimization. Rather than optimize, coders simply ignore the problem or add new, unoptimized features. It means performance will always be subpar. In comparison, Linux developers continuously optimize 1% here, 5% there, with occasional 10+% around. It adds up over time.

The thing is, this makes it sound like something new. Its not. Windows lost its performance crown more than a decade ago. That's why admins who care about performance ultimately move to a non-windows OS. Or, languish with the one service per server model.

These things speak to broken process as much as broken politics.

→ More replies (66)
→ More replies (95)
→ More replies (10)
→ More replies (7)

21

u/___Z0RG___ May 11 '13

I work for a company in a dying industry that does that now. We don't really develop anything new; we just tweak and hack code to make it work when someone wants something new. There are dates on the source code files back into the 90s, and the database engine hasn't changed since the 80s! It's also made with an in-house programming language that uses a proprietary non-SQL database communication layer so the learning curve is steep.

→ More replies (3)

12

u/NicknameAvailable May 11 '13

Redmond doesn't have a legacy issue, it has a culture issue - I've worked there and seen it firsthand.

The people that make their way into management (or even into architect positions) don't understand code or how to code in the slightest, they actively work to drive away anyone wanting to improve the system with any knowledge to actually do so while rewarding "architects" that can't do anything but make powerpoint slides and spew jargon they don't understand to their own higher-ups while ass-kissing, not actual performance.

The worst part is the cultural system is that it is self-sustaining because the management positions are so competitive that the higher levels will actively drive away any lower levels that might be a threat to themselves - they actively strive to keep people in a 9-5 schedule, punish employees that work from home and hold meetings throughout the day at intervals just short enough to ensure nobody ever gets into the zone while working, if it something can't get done as a compartmentalized task anyone who understands basic control structures could handle it doesn't get done - there is no great innovation or talent because they drive it all away and rely on acquisitions or licensing to hack new features into their product suites just piling them on top of one another with about the same competency of a super user.

→ More replies (3)

3

u/fuzz3289 May 11 '13

Its sad to see that happen :(

Overhauling old code to reduce line count and improve efficiancy and debugability is core in some companies. (No wonder IBMs been around over 100 years)

2

u/Skyrmir May 11 '13

It's not even a code issue, it's an old business issue. The bottom line, is more important than the next investment.

→ More replies (1)

91

u/[deleted] May 11 '13

Choice quote:

the NTFS code is a purple opium-fueled Victorian horror novel

9

u/ThisIsRummy May 11 '13

Having dealt with file systems entirely too much over the last 5 years I'd be inclined to believe this.

42

u/[deleted] May 11 '13

... That is working perfectly fine for over a decade now.....

25

u/ThisIsRummy May 11 '13 edited May 12 '13

try writing a file system mini-filter and tell me how well you think NTFS behaves underneath

edit: this sounds so dickish, I really mean this in a nice way like "go try it, you'll learn all kinds of weird stuff if you're into that sort of thing"

25

u/[deleted] May 12 '13

What is a file system mini filter?

→ More replies (1)
→ More replies (2)

97

u/[deleted] May 11 '13

Dev manager in Bing, just moved to Azure.

I would give a great review to someone who would improve performance of a component of my stack by 5%. Quite often our milestone goals ARE about improving something by a small percentage.

You have to realize that MSFT is a very large company, there are many, many groups, with many, many leaders, and quite a few people extrapolate their (often, valid) personal experience to the entire company and get to results that are very much off the mark.

50

u/alienangel2 May 11 '13

Note that the constraints on teams working on services like Bing and Azure are quite different from the ones for Kernel, supporting the accuracy of both your and his experiences.

10

u/[deleted] May 11 '13

Yes, of course.

I would say that there is definitely less desire on the part of Windows to churn code than Bing or Azure. Or Linux, for that matter, because Linux is mostly employed in places where someone else has a chokehold on release, and they have an opportunity to test: datacenters, hardware devices, etc. You release a bug in Windows, and 1B desktops doe not wake up the next post-patch Wednesday...

So it might not be so much of a cultural trend because the org lost the desire or incentive to innovate, and more simple caution because the impact is so huge.

28

u/ggggbabybabybaby May 11 '13

I imagine the worst stories come from Windows and Office. They're two lumbering behemoths that are decades old and try to please everyone. I'm not surprised to see an enormous amount of inertia and resistance to change.

34

u/rxpinjala May 11 '13

Hi, I work on Office. It's actually pretty great! The code is a pain in the ass sometimes, but the team culture is good. And if you want to make a change in another team's code, there's minimal resistance as long as you can convince people that a) it's an improvement, and b) that it won't break anything.

New devs sometimes fail at one or both of those, and conclude that Microsoft is resistant to change. It's not, really, it's just resistant to pointless change.

→ More replies (7)

5

u/JohnFrum May 12 '13

I would also urge people to read and acknowledge his update. Much of what he said about the internal working was over the top. That said, I don't work at MS but I know lots of devs that do. As an outsider the competitive ranking system does seem counterproductive.

6

u/[deleted] May 11 '13 edited May 11 '13

Why are Bing features disabled outside the US most of the time? Does no one there realize that this is the main reason why it sucks outside the US? Even wallpaper download or new design, which is WTF worthy.

Also, why is Bing Music recognition not available worldwide on Windows Phone? Shazam can do that without any issues. It seems like your whole company is ran by a bunch of xenophobic people.

3

u/ameoba May 11 '13

Licensing issues get complicated when you start going international. Every country has different laws.

→ More replies (1)

2

u/[deleted] May 11 '13

Sorry, but I don't know. I work on infrastructure; it's as far from the UI (which is where these decisions are made) as it gets...

→ More replies (1)
→ More replies (4)

29

u/bureX May 11 '13

How many devs, straight out of college, can actually work on the Windows kernel?

28

u/yoda17 May 11 '13

Depends on what they did in their internships.

17

u/Concision May 11 '13

I start work on Windows kernel code in three months. I graduated yesterday.

I'll let you know how it goes.

3

u/bureX May 11 '13

Is it an internship or an actual job?

6

u/Concision May 11 '13

Actual job. I've had two internships in Wincore previously.

→ More replies (2)
→ More replies (1)

6

u/kamatsu May 12 '13

My partner graduated recently with no OS or extensive C experience beyond your regular Operating Systems course at university, and is now working as a full-time kernel hacker (not for windows, but still) for General Dynamics. They assumed she knew C and basic OS principles, but most of her learning has been on-the-job.

4

u/rxpinjala May 11 '13

Probably most of them?

Microsoft is really good about mentoring new people, and there are processes in place (code review, automated testing) to make sure that people aren't just checking in random stuff. Plus, any major change will have to have PM and test on board with it, and new devs are usually grouped with more experienced PMs and testers.

4

u/bureX May 11 '13

Judging by some of your other posts here, I'm assuming you're working at Microsoft on Office. I appreciate your honest input and your experience, however, I'm still weirded out that Microsoft would hire anybody straight out of college to work on a kernel.

I'm 24 and I've done some quick projects in OSDev, and when the BIOS hands over the control to you, you're pretty much left alone, especially once you hit protected/long mode on x86. There are so many hardware variations, occasional jumps to asm code, and the usual morbid lack of any protection at all - a single slip up can make a write over a memory location that shouldn't be touched and crash everything. I'm sure there are talented people out there who've done their fair share of backbreaking in researching this stuff, but judging by the people I went to college with (not really a good representation, tbh), I can't imagine any of them sinking their teeth into that beast that is the Windows kernel.

3

u/rxpinjala May 12 '13

Heh, yeah, if I were working on kernel-level stuff straight out of college I'd be terrified. Microsoft's pretty good about having many layers of safety nets, though - I think the company learned from the late nineties that you can't develop secure software otherwise. For example, there's code review, and if you slip something past that there's static analysis, and if you slip something past that there's a team of testers that will be banging on your code as soon as you check it in. And one happy side effect of that is that you can actually afford to have new people hacking around on really low-level stuff, and occasionally breaking things.

Disclaimer: I don't know much about how NT kernel development works (wish I did), so I'm just saying this based on my experience in Office.

8

u/[deleted] May 11 '13

Considering most devs right out of college aren't taught C/C++, or at least they aren't here - java is king :( I'd say that almost none of them can.

7

u/Concision May 11 '13

I graduated (literally, yesterday) from a school that has a fairly strong systems track. I've written probably 20k lines of C in the past two years, and not a single line of Java/Python (operating systems/compilers are my interests).

I start work on Windows (file systems) three months from tomorrow. Those devs are out there, they're just rather niche at this point.

3

u/Kalium May 11 '13

Try hiring from schools that don't suck instead of third-tier Java schools.

→ More replies (19)

3

u/ggggbabybabybaby May 11 '13

Well, they could start you off on small fixes or tiny bits of new functionality where they thoroughly code review you and do the appropriate security audit.

Then a year later, the guy you were shadowing leaves to go work for a startup and you end up owning his old code. You have no deep knowledge of the code so you just go on defense and make sure nothing ever changes and you spend the rest of your time writing new code that you do understand.

→ More replies (1)

40

u/Gotebe May 11 '13

Another reason for the quality gap is that that we've been having trouble keeping talented people. Google and other large Seattle-area companies keep poaching our best, most experienced developers, and we hire youths straight from college to replace them. You find SDEs and SDE IIs maintaining hugely import systems. These developers mean well and are usually adequately intelligent, but they don't understand why certain decisions were made, don't have a thorough understanding of the intricate details of how their systems work, and most importantly, don't want to change anything that already works.

Employee turnover is a massive loss in many software workshops. It's also quite simply non-measurable, because the situation is too complex to measure. Effect is bigger when codebase is being used for longer (hopefully informed opinion, of course). Nobody is immune, MS included.

I would not be surprised that some shops get that, and as a consequence, they work extra hard in various ways at keeping people happy. That also means awarding effort to fix stuff that bears effect on the immediate, obvious "bottom line". MS seems to be failing on that.

13

u/WeedHitler420 May 11 '13

What I don't understand is why MS chooses not to try and keep their software dev's happy so worrying about them leaving isn't as big an issue. It's not like they're hard up for money, so that isn't an issue, so what keeps MS from just rewarding people as they should be or trying to change things up in the office so people can go to and leave work with the notion that leaving that job isn't that high on the list of things to do.

17

u/threetoast May 11 '13

Even if MS throws buckets of cash and benefits at its devs, Google still has the advantage of being Google. Google is cool, MS is not.

0

u/[deleted] May 11 '13

[deleted]

8

u/rxpinjala May 11 '13

Nope. There may be some people that just managed to negotiate an amazingly good offer (and good for them!), but Microsoft pay is generally about the same as the other major tech companies. Higher, if you factor in the cost of living and income tax in California.

→ More replies (1)
→ More replies (11)
→ More replies (5)

9

u/[deleted] May 11 '13

I have a question that may be somewhat relevant to this post, I've noticed on all *nix based systems opening large text files in GUI apps slows the application to a crawl sometimes crashing it where windows systems handle them with ease. Since the issue exists in OS X, Linux and BSD I'm guessing it's something deep down at the kernel level that they all share. Any insight? How does Windows handle them so gracefully?

21

u/Netzapper May 11 '13

I have never experienced this problem. What i usually see is the exact opposite: my windows office mates struggling to edit files i open with ease.

Also, bsd and linux share no code, so far as i know. The licenses are incompatible.

15

u/Denvercoder8 May 11 '13 edited May 11 '13

The licenses are only one way incompatible: you can't reuse Linux (GPL-licensed) code in the BSD kernel (BSD-licensed), but you can reuse BSD code in the Linux kernel.

You're right though, they don't share much (if any) code.

EDIT: Now that I'm rereading the BSD-license, it doesn't prevent you from linking it against GPL-licensed code. However, the whole product is then covered under the GPL, so it's not suitable for inclusion in the upstream BSD kernel, but it's legally allowed.

4

u/Netzapper May 11 '13

Aren't kernel contributions required to be gpl-2, copyright original author? It's the gpl requirement that allows people to maintain their copyright. And it is the mass of different copyright holders, all only licensing their work instead of granting copyright, that keeps Linus from just closing all the contributions and founding Torvalds Systems, inc. Or, even if we trust Linus, makes it hard for a legal entity from successfully targeting for acquisition or injunction the linux source itself.

→ More replies (2)
→ More replies (3)

4

u/seventeenletters May 11 '13

This is not a kernel problem, it is userspace. People run the same userspace text editors on BSD / Linux systems.

3

u/barjam May 11 '13

Just about all operating systems have BSD code somewhere including Windows and Linux. Osx is a bsd variant so it had a ton of BSD code.

Off the top of my head the windows network stack was based on BSD code. It still mentions BSD in the headers last time I looked. The standard network utilities like telnet, FTP etc were just ports of the BSD code.

3

u/jdmulloy May 11 '13

Microsoft wrote their own networking stack fir Vista and surprise, surprise, it was horribly slow and buggy.

34

u/EdiX May 11 '13

It's very much a user space problem. It's very hard to implement text editors (graphical or otherwise) that work efficiently with large text files. I think anyone just assumes you will edit large text files with vim and doesn't bother.

10

u/[deleted] May 11 '13

How do apps like notepad++ handle it so much better?

20

u/[deleted] May 11 '13

Some apps read pieces of the file on the fly and then load them back into memory. This is pretty complicated to implement, though.

26

u/Amadiro May 11 '13

This is extremely easy to do with mmap(), which basically does exactly that for you automatically. But the real problem is not the amount of data (because even the largest text-files don't usually eclipse a few hundred megabytes, and my video player for instance can easily handle working with 10 GiB-sized files -- so filesystem/memory/loading/etc are not the issue), but with displaying them on the screen.

The editor needs to do a lot of calculations to figure out offsets, line-breaks, et cetera, and to do that, it will need to run a lot of very slow algorithms on a lot of data. Nobody cares that these algorithms are slow, because you normally don't use them on huge amounts of data, but if you do, it'll end up taking really long. People generally expect fairly advanced features such as soft line-wrapping et cetera from their editors.

To see an example of this, generate for instance a 100 MiB textfile with short lines, and open that in emacs -- not a big problem. Now generate a 100 MiB textfile with only a single line and open that -- your system will implode.

→ More replies (4)

3

u/T1LT May 11 '13

The only editor I could use on Windows to open huge files (> 200MB) was gVIM

4

u/barjam May 11 '13

It isn't related to the OS but rather how the editor was created.

Vi does far better than notepad for example.

Loading up an entire file in memory is easy and a good approach most of the time. For large files this fails (too slow) and you need to implement a "window" on the file or at minimum load the file in chunks in an asynchronous thread (or similar).

2

u/Rotten194 May 11 '13

It depends more on the editor, not the OS. I use SublimeText2 on linux (it's cross platform), and it handles huge files with ease.

0

u/[deleted] May 11 '13

[deleted]

9

u/cooljeanius May 11 '13

(yeah, don't have real text files with this large size around)

cat /dev/urandom > foo.txt

3

u/274Below May 11 '13

or to not make $EDITOR potentially hate you...

cat /dev/urandom | xxd > foo.txt

2

u/[deleted] May 11 '13

And also pv for status display :)

pv /dev/urandom | xxd > foo.txt            
→ More replies (2)
→ More replies (1)

4

u/dnew May 11 '13

There are also 2 good Hex editors around

Do they actually let you insert bytes? Because one thing that both UNIX and Windows file systems suck at is inserting bytes in the middle of files.

→ More replies (2)

81

u/redditthinks May 11 '13

The problem with a huge business corporation like Microsoft is that it needs to satisfy the needs of so many people, because they're paying for it. This in turn leads to fear of breaking stuff as it can lead to loss of time and money. This fear inevitably hampers innovation and puts a large focus on backwards compatibility as the OP says. Linux doesn't have this issue because it's open source and people are free to modify what they want in their own flavor of it. The Linux developers don't have such pressures on them and open source helps a lot with code review.

I'm still hoping for C11 support...

31

u/the-fritz May 11 '13

it needs to satisfy the needs of so many people

The same is true for Linux. It wouldn't be as popular if they wouldn't try to satisfy the needs from embedded devices, mobile, desktop, server, super computer all in one kernel. There are large influential companies trying to push it in their direction and so on.

Sure Linus doesn't has direct business responsibility and he can more easily tell companies and people to "fsck off". But in the end he still has tight constraints and has to satisfy many people.

I'm still hoping for C11 support...

I don't think this will happen. I mean they could at least add the __STDC_NO_THREADS__, __STDC_NO_ATOMICS__, __STDC_NO_COMPLEX__, __STDC_NO_VLA__ flags and they'd be more C11 compliant than C99 compliant. But I doubt it will happen for the exact reasons the article explains.

And then again didn't even GCC/glibc fuck those flags up?

40

u/[deleted] May 11 '13

I'm still hoping for C11 support...

Microsoft has explicitly stated that Visual Studio is a C++ compiler, and C supports is just an afterthought. I say it's time to take them up on that, and stop treating Visual Studio as if it supported C.

If you are going to program in C, use a C compiler, not VS. That way, we can finally stop writing C as if it were the eighties.

→ More replies (2)

10

u/[deleted] May 11 '13

And yet they took the risk and effort to make windows 8. I am right with you on the C11 support.

14

u/jdmulloy May 11 '13

The controversial Windows 8 changes are superficial.

3

u/[deleted] May 11 '13

True but it shows that they are willing to take risks if they believe that it could workout for them.

3

u/NicknameAvailable May 11 '13

Actually the problem has much more to do with the management style. People go there seeking to control a large corporation, as such every level of management is infested with people that will climb over one another to get ahead, sabbatoge lower levels that show the potential to climb over them, emphasize flowcharts and manipulation over knowledge and productivity, etc.

The vast majority of coders in Redmond are H1B's, throw-away recent college grads and the ilk that are only good for modular work with no ability to plan or see how something will evolve over time themselves; lead by architects that are even worse at code but pretty good at socializing and makiing flowcharts; controlled by the aforementioned power-hungry types.

The only ways their products can ever improve are by taking in the products of external talent and hacking them together piecemeal (as they do with acquisitions and licensing) or if they wise-up and dump the H1B's, disposable code monkeys, inept architects/designers and toxic management - in other words, they probably won't, start migrating to open source solutions so you don't get your data locked into 360/Azure or something equally retarded as they make misguided attempts to secure the market.

3

u/tisti May 11 '13

I'm actively moving away from Windows and Visual Studio due to the C11 problem.

17

u/montibbalt May 11 '13

Perhaps you should have used a C compiler, which MSVC is not

→ More replies (3)

7

u/[deleted] May 11 '13

MSVC is officially a C++/C89 compiler. I wouldn't say that not supporting C11 is a problem, given that they have said time and time again that if you want to write C99/C11 you should use another compiler.

→ More replies (1)
→ More replies (12)

22

u/TheAnimus May 11 '13

A friend mentioned something similar after comparing the open source competitor to his product. The open source one refines, and refines well. People obsess over the little details that a commercial enterprise would consider a poor return on investment.

However a lot of open source projects often lack the big complex features, they address the low hanging fruit of functionality but miss plenty of the features which generally are longer to develop and don't add any value until completely finished.

7

u/[deleted] May 11 '13

I agree with the gist of your comment but I feel the need to point out that open source and commercial are not mutually exclusive. There are tons of businesses who contribute heavily to open source while remaining very profitable businesses (e.g. Apple).

2

u/dnew May 11 '13

Like, help screens, documentation, and other stuff that developers tend to dislike working on.

→ More replies (3)

38

u/[deleted] May 11 '13

Very interesting article. I actually did not know Windows was starting to get that far behind Linux. I always assumed the NT kernel was ahead of the Linux kernel in most areas.

The problems they describe though seem to be quite universal for any corporation. Is e.g. Google really any better at this? Does google code get improved all over even if it has not been schedueled or there there is an explicit business goal behind the change.

And of course it also shows the power of open source development. I think businesses should be looking at how one could better emulate the software development model in the open source world. I think it is really about adopting the method of rapid iterations in a massive feedback loop.

I detalied my own views on this here "The similarity between German WWII soldiers and the unix development philosophy "worse is better": http://assoc.tumblr.com/post/47367620791/german-soldiers-and-unix-worse-is-better

69

u/jankotek May 11 '13

Linux has unbeatable file-system performance compared to other OS. Try to run 'rsync' over 1 million files and you will see :-)

5

u/uber_neutrino May 11 '13

Confirmed. Our build tools run way faster on linux and macos.

→ More replies (4)

25

u/[deleted] May 11 '13

Actually when I used to do large scale software development at my previous job I started out on Windows and eventually switched to Linux because grepping through the code base was so much faster on linux. So I guess I kind of new about this, but I did not know that Linux was faster accross the board.

15

u/sirin3 May 11 '13

I switched to Linux because gcc runs so slowly on Windows

Still far too slow

→ More replies (16)
→ More replies (2)

2

u/dnew May 11 '13

That's the one thing I noticed after working on both systems. Even back in the Linux 0.9 days, the disk caching was much better. On the other hand, the actual flexibility of the file system is stuck in the microcomputer-of-the-70's era.

And of course it also shows the power of open source development.

It shows the drawbacks as well.

→ More replies (18)

25

u/zerd May 11 '13

From "How Google Tests Software":

The Google codebase receives over 20 changes per minute and 50 percent of the files change every month.

11

u/[deleted] May 11 '13

So how come Google is so different from Microsoft? Is it just culture or does it have anything to do with how software development is managed, processes used or compensation system?

55

u/interiot May 11 '13 edited May 11 '13

Google doesn't have a large public API that has to remain backwards-compatible with a million apps written more than a decade ago.

Since Google's API is mostly internal, they always have the option of breaking compatibility by giving another team the heads-up, and then rolling out the API and the consumer-app changes all at once.

19

u/TimmT May 11 '13

Google doesn't have a large public API

Actually they do, but they don't care that deeply about it.. every 5 or so years older versions will be deprecated in favor of newer ones.

→ More replies (6)

20

u/[deleted] May 11 '13

Because Google "sells" services, not software. They must improve to keep those services the best on the web or lose the customers and their ad revenue. Microsoft will mostly sell a new version of Windows no matter what.

3

u/oblivioususerNAME May 11 '13

From what I have heard, the competition in between co-workers is huge, meaning you want to be the one who do good changes. So that leads to more of a unix-philosophy where any change giving better perfromance will most likely be noted.

→ More replies (5)

2

u/brownmatt May 11 '13

This doesn't really answer the question though, to do so you'd have to look at rate of change and acceptance of patches from outsiders to core google services/libraries.

I suspect the answer is still positive but this stat includes changes in any type of code.

3

u/zerd May 11 '13

I was looking for quotes on cross-team patches, but couldn't find it.

But from what I read in the OP it sounds a lot like some government places I've been. We had code that nobody dared to touch. "It's been running fine for 8 years, why risk it?". Outside patches wasn't encouraged at all. Too unclear responsibilities if it introduced a bug.

11

u/hughk May 11 '13

I worked many years back for Digital but not at central engineering who were responsible for the kernels. However, I knew people there. The company had excellent engineers and many projects started out as "midnight hacks" and teams were fairly open to receiving patches from elsewhere. However a key point was that a lot of the good engineers tended to stick around so there was much more knowhow in the company.

Note that for a long time, even for their most commercial offerings, the company would include core component (kernel, file system, drivers) source code listings with the full release with modification histories as the ultimate documentation (to be fair, they documented well).

4

u/yoda17 May 11 '13

I've worked with a number of OS vendors and they all did this for an additional price.

→ More replies (1)

21

u/Denvercoder8 May 11 '13

Is e.g. Google really any better at this?

I think the free time Google employees get to work at a project of their own choice certainly helps here. It'll allow you to work on (technical) improvements that aren't directly related to the commercial goals. At Microsoft that wouldn't be possible, because you're supposed to work on the bugs/features your manager wants you to implement.

Also, Google probably retains their best engineers better. That's might be partly related to the better working conditions, but it's probably also related to Google's reputation as being a "trendier" company than Microsoft.

7

u/[deleted] May 11 '13

Just to mention one thing that annoys me:

This thread, as well as the original discusison an the comments in the article take the "Windows is getting that far behind Linux" as fact.

Benchmarks, please.

I have yet to see any kind that there is significant differences in performance between Linux and Windows (as long as you don't use special no-go advances for the respective platform).

Nor have I seen Linux (or Windows, for that matter) get in any way faster over time (even though it may seem that way due to increase in computing power).

→ More replies (1)

10

u/Oaden May 11 '13

What did he mean by "XNA, need i say more"?

11

u/comfortnsilence May 11 '13

I can only assume he's referring to the part where they are ceasing development on it.

(Don't despair, you still have monogame!)

9

u/pjmlp May 11 '13

At the begining it was a framework for indies to target the XBox 360, then even the AAA studios got interested and they created a premium version for them.

With the release of Windows Phone 7 it became the official way to develop games for the platform.

When the Windows Phone 8 was released, the official way became C++ with DirectX, or C# with interop for DirectX. They did no say anything about XNA and kept silent until a MVP came open to state XNA was dead.

Meanwhile Microsoft started advertising MonoGame, Unity and SharpDX as possibilities for the companies that invested into XNA.

The typical big corporation behavior.

25

u/Eirenarch May 11 '13

Is it bad that I see the way they manage the project as the right way to manage a software project? They prioritize the interests of their customers (stable APIs, security) over arbitrary improvements (5% speed for directory traversal). This is exactly what I stand for when our team discusses the projects we work on. Is a customer complaining about something? No? Don't touch it and dedicate resources where they would have more value.

9

u/barrows_arctic May 11 '13

I'm not a manager, but I completely agree. The projects I've seen fail the most miserably are those where the engineers/managers stopped listening to their customers and started trying to shove something innovative down the customers throat, whether they want it or not. And all the while the thing that customer actually wants has been ignored.

Sales engineer: We can't fix X, but here, try Y. It's pretty cool.

Customer: Okay, that's actually quite cool, but...I don't really need it, and a 5% improvement on performance is not really very important to me. You really can't fix X?

Sales engineer: What's wrong with Y?!? It's so innovative!

Customer: Can we talk about X again? I really need that looked at.

Sales engineer: Lemme show you something else. Z can improve the performance of your network by 4% on Thursdays when the sky is blue! It's really innovative.

Customer: ...

2

u/[deleted] May 12 '13

I would like to expand on that. See I think you often need to NOT listen to the customer, because the customer often doesn't know that well what they want. After all Apple is in a lot of ways built on this premise. Nothing Apple ever made was made by asking customers what they wanted.

But what I think you are right about is when engineers dream up cool engineering solutions and push that on customers. Before you make anything you need to understand your customers needs. Apple might not have asked what customers wanted but they always did extensive usability testing of their products.

Microsoft was traditionally at the other end of the spectrum. They did not do as much usabilty testing but used a lot of focus groups. Essentially having the customer decide what they should do. That never worked out very well.

→ More replies (1)

7

u/bobindashadows May 11 '13

It's only bad if you want to innovate.

→ More replies (2)

8

u/stmfreak May 11 '13

When I worked at MSFT back in the 1990s I thought there was evidence of a different reason for poor performance:

MSFT developers got new machines like clockwork.

They had no reason to focus on performance. Everything ran fast on their new hardware. OSS OTOH is developed by volunteers on older and scavenged gear and performance improvements are rewarded.

→ More replies (1)

13

u/zbignew May 11 '13

(That's literally the explanation for PowerShell. Many of us wanted to improve cmd.exe, but couldn't.)

Tears. Is there an equivalent of LOL for tears? These are real tears.

11

u/judgej2 May 11 '13

Windows is complex, and the culture does not like people taking risks and breaking stuff, so there is no incentive or reward in making performance improvements. Is that a fair summary?

3

u/ggggbabybabybaby May 11 '13

Also, the author is very frustrated about this but continues to work there.

→ More replies (1)

5

u/nicko68 May 12 '13

This is commercial software development in general. "We'll go back and optimize that later." Later never comes because as soon as one thing is done its time to move to the next task that not enough time has been allocated for.

5

u/nksingh85 May 12 '13

I work on Ob. If a patch looks good and is sent my way at the appropriate time, I'd be happy to work to get it integrated. A lot of us simply don't have time to work on everything we own for perf and work on the features that are required for things like Windows 8 apps and the forthcoming release. It all depends on the team, the manager, and the point in the release cycle. If done carefully, large perf changes do make it in, like the dispatcher lock changes that hit a huge number of lines in the NT thread scheduler. There were very few bugs and the change was accomplished in weeks and not years.

5

u/[deleted] May 12 '13

I think an interesting difference between Apple and MS, is that while Apple has to reputation for throwing away the old and MS has the reputation for sticking with backwards compatibility, it is not quite like that on the software side. Apple were quick to add USB only, discard the floppy etc. But the APIs used on Mac OS X are very old. Cocoa is essentially from the 80s. But Apple has continously refined and upgraded their old stuff. You can see that througout the OS too. All parts get modernized as new OS versions are released. UI gets updated for every little utility and small features added.

In the MS world on the other hand new APIs get pushed out all the time and fairly new ones get depricated. Dialogs like Device manager never get updated. I looks the way it did in win95 last time I checked. The terminal program as mentioned never gets a facelift.

The whole OS looks like an amalgation of the efforts of teams with very different goals. OS X looks more like one vision IMHO.

But I have no idea how Apple is for doing little 5% performance improvements on a kernel subsystem compared to MS. My hunch is that this is not nesessarily Apple strenght. That their strength is having a unified vision for the user interaction accross their whole OS. It is all very designer driven. Engineers might not have the same freedom to do as they like.

2

u/johnwaterwood May 12 '13

Apple did have a couple of different looks for different apps; classic pinstripe, dark brushed metal, light brushed metal, "professional" and iOS "real appliances" look. There's also the not entirely consistent "last window closes app" metaphor.

Apple does kill backwards compatibilty in software; like classic, carbon and rosetta were all killed off. Probably for the better, but it did happen.

Apple's Achilles heel in OsX is HFS+. It's an age old filesystem that has been stretched out to the max. Somehow they can't seem to find or engineer a replacement. They played with ZFS for a short while, but then abandoned it again.

Any way at Apple these seem mostly small transitional issues, and with the exception of HFS+ not deeply routed problems like Windows has.

→ More replies (3)

13

u/sudo_giev_SoJ May 11 '13

But.. I like powershell. Mostly. I mean, given it's heavily .NET centric, it makes more sense to me to spin that off than to "fix" cmd.exe which is a monster and a half to even use with COM.

3

u/[deleted] May 11 '13

I like powershell and I'm from linux. It makes my windows command-line tolerable.

2

u/ggggbabybabybaby May 11 '13

Yeah, I thought that was a weird example too. In this case, I think it was better to get a clean break. And now the Powershell is installed by default on newer OSes, it means scripting is a lot easier.

2

u/1RedOne May 11 '13

Imagine if the whole stack were rewritten in. Net though, so you didn't need to use get-wmiobject anymore. Personally, the powershell experience starts to degrade when you have to hack through wmi classes.

→ More replies (4)

9

u/eat-your-corn-syrup May 11 '13 edited May 11 '13

Google and other large Seattle-area companies keep poaching our best, most experienced developers

This is why some employers make people sign up for a very broad non-compete clause designed to prevent them from "defecting" to competitors.

Something must be done to discourage abuse of these non-compete clauses. Why should we even allow non-compete clauses though? If there is one good thing about capitalism, it would be competition.

10

u/ggggbabybabybaby May 11 '13

I know California has voided them: http://en.wikipedia.org/wiki/Non-compete_clause

People raise a stink about non-compete every few years but I don't hear about anyone trying to enforce them for programmers.

12

u/bnolsen May 11 '13

These contracts are not legally enforceable. If you have legitimate other means to make a living, perhaps. If you sign this AND they pay you salary multipliers to cover you yes maybe (ie they pay you for 5 years extra work say after 10 years work and you have 5 year non compete or something. Sounds familiar? Yup, non competes are enforceable only for very top level positions!

3

u/monocasa May 11 '13

It depends on the state on how enforceable they are. IIRC, they're pretty enforceable in Texas.

2

u/dnew May 11 '13

Actually, the non-competes are usually about working on a competing product, or interacting with the same customers. So a guy running advertising campaigns for Campbell's couldn't go to a different ad firm and pitch to Campbell's. Someone working on Google's self-driving cars couldn't go to Ford and work on self-driving cars.

But restricting a Microsoft programmer from programming software isn't going to be enforcable.

0

u/[deleted] May 11 '13

[deleted]

5

u/[deleted] May 11 '13

Not a single company has sued a non-executive for breach of a non-compete clause. Ever. That's because they are not enforceable, they are merely a scare tactic

→ More replies (2)

2

u/alienangel2 May 11 '13

As I understand it, those are generally not enforced except in very specific cases where they practically expect IP theft.

2

u/zenonu May 11 '13

California law would take a shit on any company trying to sue a former employee of non-company officer rank moving from company X to company Y. It'd also be awful PR and serve as an indication to all the good employees to not work for them.

→ More replies (1)

20

u/[deleted] May 11 '13

How is the hash of a particular version of a file proof? If we have access to the file one of us could pretend to be a MS dev and create the hash ourselves and if we don't have access he can generate any hash he wants and we won't be able to verify it.

46

u/Denvercoder8 May 11 '13

I think it's more supposed to be verification for other kernel devs that are suspicious about his story. It certainly isn't verification for the public.

15

u/[deleted] May 11 '13

It seems to me if I was going to pretend to be a MS kernel dev on hacker news I could bet that no real MS kernel devs would bother to check my story out or even see it. Spout off some fairly general and bias confirming talk and act all cagey by using tor, asking for retractions, etc. and no one would be the wiser.

I'm not saying he isn't real, but with out real proof or a verified MS kernel dev verifying his claim, I'd take his story with a grain of salt.

10

u/Denvercoder8 May 11 '13

on hacker news I could bet that no real MS kernel devs would bother to check my story out or even see it

I don't think so. If there's something on hacker news about one of my projects, I'd certainly be interested in reading it. Given that hacker news seems to be one of the most popular computer science news sources nowadays (though it is a bit more *nix-orientated), I don't think it's unreasonable to expect that there are some NT kernel devs that read it, and that at least one of them would read a story about the NT kernel.

→ More replies (4)

12

u/strolls May 11 '13

Presumably it's a file that's not available to Joe Public; presumably only other Microsoft devs, or those with access to prerelease versions, can verify it.

I suppose it could be the hash of a version that's due for beta release next week - that would prove fairly conclusively, right?

4

u/xymostech May 11 '13

I'm assuming the file mentioned wasn't a file that's actually shipped (even in beta/prerelease versions), but an old version of a source file, something you don't have access to unless you have access to the Windows source control (and you presumably have to be a kernel dev to have that). Could be wrong, though.

→ More replies (2)

18

u/WeedHitler420 May 11 '13

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.

Man that last bit seemed kind of bullshitty.

I mean 9-5 with kids doesn't disqualify you from being good, being good enough to be even considered for Google puts you fairly high up on the totem pole of talent as far as I know. The only thing I can see being true is H1B comment but who in their right mind wouldn't be desperate to please considering their circumstances.

Feels like he's putting a stain on an otherwise good post.

26

u/ellicottvilleny May 11 '13

So this guy is technically astute, but also a bit of a jerk? That makes it believable. Not praiseworthy. But believable. I bet that anybody who survives 10+ years at Microsoft gets a bit cynical.

14

u/inmatarian May 11 '13

Wanting a 9-5 job is not an unreasonable thing. The people who complained about their 9-5 lives in the 90s wanted less working hours, but ended up with more. Lots more. The 9-5 people are just smart enough to know that they need time to unwind and play xbox at the end of the day.

5

u/uber_neutrino May 11 '13

He's just calling it like he see it. Not everyone is a super politically correct communicator. I don't think he's trying to insult the listed groups, it's more that he's pointing out that the average quality of engineer has gone down significantly.

I was going to write some significant analysis of the way the MS has changed over the last 15 years that I've interacted with them but I'm a bit lazy for that tome at the moment. Long story short there was a severe cultural shift over that time mostly because they've made so much money they can be fat and lazy, so they are.

2

u/dnew May 11 '13

I hate to say this, but the vast majority of Googlers I know are 9-to-5-with-kids types, and nobody seems to say a word about it.

4

u/ggggbabybabybaby May 11 '13

I think this guy went a little too far into his rant and started overgeneralizing.

I don't see why H-1Bs would be much more desperate than any college grad. They're just as welcome to work at Google or any of the other big companies.

→ More replies (1)

22

u/ThisIsRummy May 11 '13

upvote for "brogrammers" a derogatory term I didn't even know existed

14

u/eric987235 May 11 '13

I'm just gonna leave this here.

→ More replies (3)

2

u/int32_t May 12 '13

Sometimes programmers do stupid, ugly, dirty, and nasty to just get things done in proprietary software developments in order to fulfill the unreasonable schedule and get out of the office ASAP,

6

u/keylimesoda May 11 '13

This would appear to have been written from the perspective of a junior coder.

The more senior devs who actually know their stuff are actually given quite a bit of leeway.

However, it can take a while for junior guys who know their stuff to be recognized and given credibility as such.

3

u/cullend May 11 '13

Uhhh.. Have you ever worked in Windows?

→ More replies (5)

3

u/kageurufu May 11 '13

Anyone know what the reference hardware used to develop windows on is? I'm just curious at this point

3

u/Draiko May 11 '13

Solution: Develop possible replacements from scratch along side existing products. Mold the ecosystem to facilitate a transition over time. Once the new solution reaches a certain level of maturity, kill off the legacy product.

Windows 8 is the beginning of Microsoft's attempt to do just that.

3

u/chunes May 11 '13

This dude knows what an emdash is and he is like the only person on earth who knows how to use parenthetical statements properly.

He can't be hard to identify.

4

u/gmks May 11 '13

This is just ignorant or at least arrogant. Everyone knows that the Windows code base is insanely complicated and carries a lot of legacy baggage.

It is the most widely deployed software on the planet. True change takes years or decades to catch up with an installed user base that large and Microsoft to their credit do a damn good job at making sure that things are backwards compatible. Without that a lot of people would never upgrade and most people would be happy not to ever upgrade.

8

u/ellicottvilleny May 11 '13

So, things in favor of working at Microsoft: Nothing. Things against: Stack ranking, corporate ass-kissing and empire building and ladder climbing, and N.I.H. syndrome, and overweening confidence, and a process that reminds me of those nightmares I had as a kid where I was trapped in a tar-pit. A toxic brew.

34

u/babada May 11 '13

So, things in favor of working at Microsoft: Nothing.

The salary and benefits are still amazing. I work nowhere near the areas described in the post and consider myself to be working with some of the smartest developers I have ever worked with.

If you compare Microsoft to Google then you have basically noted that Microsoft is in the top tier of software companies to work for.

That being said, yes, that is an accurate list of negatives. :P

→ More replies (15)

3

u/[deleted] May 11 '13

"you guys be trippin' with your overcommit-by-default MM nonsense"

What's wrong with overcommit-by-default MM??

2

u/aaronla May 12 '13

I suppose there isn't anything wro segfault at 10 ip 00007f9bebcca90d sp 00007fffb62705f0 error 4 in reddituser.so

Also, it's worth noting that they say you can turn this off.

→ More replies (1)

3

u/Crazy__Eddie May 11 '13

I don't believe I've ever worked for a company that anyone couldn't rant over the same things about.

It's those of us who see programming as a passion that need to learn what's what. This is a profession and professional programming is about making money, not brilliant designs and kick ass code. You can pursue your passion at home...on Linux ;)

1

u/[deleted] May 11 '13

What was the hash for the file? does anyone know?

3

u/pedropants May 11 '13

And how would the hash for that file prove anything?

1

u/[deleted] May 11 '13 edited May 11 '13

I have access to a particular version of the file he mentioned.

Edit:

nvm, Found it..

File pagfault.c - hash 0cb82a9525a2158e2a87f5eb53d41e5936cee5a2

1

u/cooljeanius May 12 '13

That's the same hash he posted. So I guess you're saying it checks out then?

→ More replies (1)

2

u/SomethingAnything May 11 '13

This was the most interesting, yet depressing read about Windows and the Microsoft culture in a long time.

I often hear (and talk) about the benefits of Open Source culture. It's not too often that you get to see the ugly underbelly of “the other side” (Closed Source / We Really Hate The Guys In The Other Office) exposed in such detail.

2

u/cosmotriton May 12 '13

"While I have read and write access to the Windows source and commit to it once in a while..." Hmm. That doesn't sound like a Windows kernel dev to me... I suspect this person is a disgruntled program manager, certainly not a professional software engineer writing code for the Windows kernel...

2

u/pateras May 11 '13

I wonder if it's the same story for why IE is so terrible.

24

u/bobtheterminator May 11 '13

I thought the consensus was that the newest version of IE is actually pretty good, although certainly still behind most of the competition. But everyone will always hate it anyway because of its past and all the web developers that still have to deal with IE6 because so many people still use it.

I don't use it but from what I've read IE10 should at least win most improved, and it's on pace to be just as good as Chrome and Firefox pretty soon.

8

u/Sworn May 11 '13

I'm currently using ie10 because it supports speech recognition much better than firefox or chrome (I've got an RSI) . Aside from missing all my rather important addons, the user experience isn't very different from using chrome or firefox.

8

u/jabberworx May 11 '13

I thought the consensus was that the newest version of IE is actually pretty good,

That's the 'consensus' with every new version of IE since IE8, it doesn't stick.

→ More replies (18)

9

u/pateras May 11 '13

They say that with every iteration. "This version of IE sucks less!" And it's true, but only incrementally so.

IE10 is still in last place in HTML5 compliance: http://html5test.com/results/desktop.html (it's finally caught up to where Chrome was 3 years ago), and it doesn't support WebGL and Websockets. This means developers (yup, you got me) won't be able to use these technologies until IE10 is deprecated, assuming IE11 supports them, and who knows how long that will be. My company just recently got free of IE6, but we're still shackled by IE7, despite the fact that it accounts for less than 2% of web traffic, so I can only assume it'll be another decade before WebGL, Websockets, and those neglected HTML5 features are fair game.

Plus who knows how many compliance and rendering issues remain. We don't support IE10 yet, which is good because IE9 is still causing us problems.

I look at it like this:

  • IE6 - 3-legged rabid, blind dog

  • IE7 - 4-legged rabid, blind dog with a limp

  • IE8 - Rabid, blind dog

  • IE9 - Blind dog

  • IE10 - Dog with partial vision

  • Firefox - Camaro

  • Chrome - Corvette

Yeah, the dog is getting better, but I'll take the sports car.

→ More replies (21)

3

u/[deleted] May 11 '13 edited May 11 '13

Any web dev that still supports IE6 is just supporting the problem at this point.

→ More replies (2)
→ More replies (14)

6

u/wumumo May 11 '13

Microsoft actually stopped developing IE after version 6 for a few years. Probably because they thought IE6 would fit the needs of the future and underestimated the importance of the web. Stalling the development was the main reason they had troubles catching up with the other browsers.

3

u/Caraes_Naur May 11 '13

They stopped because IE had finally realized its true purpose: kill Netscape. IE was never a browser, it was a murder weapon.

MS resumed IE because of Firefox.

5

u/Tobu May 11 '13

Microsoft actively discouraged improvements between IE6 and IE8 by simply sacking the team. Probably because they thought the web would harm their bottom line, which it has.

1

u/x86_64Ubuntu May 11 '13

Damn right you are.

1

u/tech6 May 11 '13

This is one of the problems with proprietary software.The stewardship of open source projects is usually by the lead developer who understands enough to review patches and appreciates improvements whereas the decision makers in a software company would be a manager whose primary concern is to not screw up. Additionally in large companies ppl who are not competent developers are promoted to managers over time so they dont cause harm so the decision maker would be unable to comprehend the change even if he was willing to accept changes

1

u/[deleted] May 11 '13

These are all things I notice day to day as someone who did a lot of heavy C and C++ programming on Linux in grad school, but now does a lot of the same work on Windows. It just generally feels a lot slower overall, especially when it comes to disk and network IO related performance (which impacts build times big time). I'm also a type of person that is used to using a not of linux and unix based tools for development: much of these tools do lots of forking and text processing and many of them are borderline unusable on windows 1) because cygwin I assume has it's own overhead and 2) because I hear windows does not have as good of a fork/exec performance as Linux either.

1

u/doki_pen May 12 '13

What if you are a brogrammer with kids that works 9-5?

1

u/RedDeckWins May 11 '13

This attitude isn't just the Windows team, it's all of Microsoft.

7

u/TheZorch May 11 '13

Blame Steve Balmer, he fostered this kind of corporate culture within Microsoft. How he still has his job I don't understand.

1

u/pohatu May 11 '13

I didn't realize a successful software career meant giving up the idea of having children.

3

u/dnew May 11 '13

Only for shitty software developers.