Okay, this is tangential to your point, and I'm no fan of Microsoft's, but I really have to defend MSDN here. MSDN is by a wide margin the best and most complete API documentation I've ever seen. Yes, it's wrong sometimes, but that's because it fucking exists. Almost every function, and certainly every function a typical developer is going to care about, is documented. Even crazy obscure shit like wmvcore COM interfaces[1]. You don't even know what that is, but look at all that fucking documentation! Oh my god. My life would be so much harder as a Wine developer if it weren't for MSDN. Every win32 API developer at Microsoft deserves a gold fucking star for actually writing documentation. They certainly don't deserve chastisement for not being perfect.
[1] https://msdn.microsoft.com/en-us/library/windows/desktop/dd7...
Maybe MS has tried to clean that up recently, but it has a track record of inaccuracy, at best.
I wouldn't be surprised if the Wine developers were the ones submitting the corrections to the MSDN, anyway.
$ cat src/wine/*/*/tests/*.c | wc -l
1085766
But we don't live in that world and it's far more interesting to compare like with like. When you take into account its scope, in terms of completeness and usefulness, MSDN is head and shoulders above every other API doc I can think of except maybe Java, which is also excellent. Certainly better than Apple, and don't even get me started on most open source APIs.That's not the purpose of MSDN documentation though.
Either way, its clear vendor lockin
There's the documented, public functionality that Windows implements and wants all the applications to adhere to. This should be documented and it is.
Then there's the functionality that Microsoft had to implement behind the scenes because some important application used it in an incorrect way or it worked by accident. They didn't want that application to break with a new release of Windows. Now Microsoft doesn't want new applications to use this, so they don't document it. I think that is absolutely correct.
MSDN API documentation is meant for people that write applications the way Microsoft wants the applications written.
Wine isn't an application. They want to emulate what Windows does. The API documentation is not for that purpose and it shouldn't be.
That being said, there are APIs in Windows that are secret and undocumented. Those should not be used by applications. Windows isn't open source. Accept it.
The documentation is shallow, it does not even consistently describe all the parameters of everything. It's often wrong, it does not carry any information about bugs and lacks an easily reachable diff for older versions.
Yes, it has a page for everything. It's just that most of the pages are useless.
It used to be the best thing around, but it's not the 90's anymore. Almost all mainstream development platforms out there have better documentation than MS. (And it does not help that almost all of them also have saner APIs.)
Companies are not people. Companies can't have nor lack a moral compass that tells them right from wrong.
Companies are run by people. These people are the ones making the business decisions and doing the work that enables the company as a whole to do ethical or not-so-unethical things.
The people running these companies can and do get replaced. And when enough of them get replaced, the past actions of a company will no longer be representative of its potential tendencies from that point onwards. This is very simply because a new set of people will be the ones making business decisions and doing the work, and these new people will become the real moral compass behind the company's decision making.
And let's not forget the fact that even people can change. So what's stopping them from changing while running a company, which would thereby be reflected in the actions of the company itself?
All of this change tends to happen slowly and gradually, but change itself, for better or worse, is inevitable as long as a company remains solvent.
Of course, I'm certainly not suggesting that I know for a fact that Microsoft itself has turned an entirely new leaf. In fact, I find all of their recent actions toward limiting user freedom and privacy as disgusting, exploitative and unethical as most others in this thread.
My point is, however, we should try to judge each individual action of a company on their own merit or lack thereof, rather than always viewing them through a lense tinted by some extrapolation of their actions from 20 years ago into some fundamental measurement of the company's intrisic goodness or evil. At the very least, we should try to make an effort to calibrate our lenses to weigh new information more favorably than old, because otherwise, even when the company itself may have long moved on, our opinions of them will forever be stuck in the past.
That's only true to a certain extent. Don't forget companies are mainly run by profits. That's what really ends up deciding how the company is run.
Do you think a "good guy CEO" would stop Microsoft from extracting billions of dollars worth of royalties for bogus patents from Android and Linux vendors? Of course not. If there was such a CEO, he'd be quickly shut down by the board. And if the board were "sweetheart angels" that would ask for that, too, they would be replaced by investors.
So companies are really more like a machine, and the people are more like cogs in it. The machine's main goal is to produce profits. If one of the cogs says "no, that's not what we primarily want!", it will very likely get replaced. It takes a tremendous amount of will power to fight against the machine's desires, and it's usually only strong founders that can do it (Steve Jobs, Jeff Bezos, Elon Musk).
But those are the exception, not the rule. And even then, it's more about delaying profit gratification, rather than foregoing some profits altogether. It's about them knowing that if they do it their way, the company would be even more successful and profitable in the long term, while the machine's forces demand the profits right away.
In fact, ethical behavior is just another knob in the machine that people running a company can turn either way in their quest to maximize profit.
Erring on the side of too much ethical behavior can certainly impact profit in the form of lost efficiency and market opportunities, but we have to recognize that companies' customers are people too, and people generally have a distaste for unethical companies, and a fondness for ethical ones, that may influence their decision do business with them.
So turning the knob too far to either side can have direct and indirect implications for profit, and it's up to the people running the company to calibrate that knob in either direction.
Oftentimes the courses of actions a company can take on any given issue will not be a simple sorted array of choices with an obvious straightforward relationship in the form of less ethics -> more profit, but rather a complex decision matrix of causes and effects for which the outcome of any single option will be impossible to fully predict, and investors can generally see that too. So the people running the company will usually have some degree of freedom to experiment with which direction to turn the knob on ethics, and how far.
> The only way ethical behavior affects profit is when it causes projecting the appearance of being an ethical company to become less expensive. To whatever extent that "people" prefer doing business with companies that they see as ethical, what they see is a company's image and branding, not their actual behavior. The balance is between ethical behavior and PR costs, not ethical behavior and unethical behavior; and that's even a gross simplification, because unethical behavior doesn't immunize you from good PR.
Maybe the effects of good PR can be less easily measured and felt than the obvious and immediate repercussions of bad PR, but the effects are certainly real and build up with time, so reasonable people can disagree as to what degree a company should pursue building up goodwill through ethical (likable) acts. Ethical decisions and behavior is the foundation upon which good PR is built. Even the most obviously opportunistic PR stunt must have some backing in an action the company has taken that can be construed by their audience as doing good.
Companies take on the behavior of the personalities of the people at the top. Nadella, like Gates and Ballmer before him, was selected based on shrewdness, and everything flows from there. It's simple. The company will continue to bear the culture born of Gates because of their board (at the top), and their HR department (everywhere else).
However, shrewdness is just one trait, and I think it's disingenuous to insist that we can reasonably ignore all other consequences of having a different human being running the company because their shrewdness makes them as interchangeable as planks on a wooden boat.
Personalities and management philosophies can't be reduced into some simple measure on a shrewdness scale, and the other differences between these real human beings that you don't seem to be taking into account can and do bring real change in how the company behaves and operates. Maybe not a lot of the change is concentrated on the axis that you've cherry-picked, but that doesn't mean we can dismiss all the other change that may have resulted from this change in management as "next to nothing".
They in fact back fill the role with someone they think should be in charge of the future of the position (which is very often in a radically different direction), or more often than not eliminate the role altogether.
By your estimation, when Steve Balmer retired, the board would have hired another Steve. No, that's not the case. They hired Nadella who is different.
Microsoft still sells (almost) no hardware, PC sales are dropping like a stone, corporate sales are lagging (my Fortune 150 switched to Windows 8 a YEAR after 10 was released), and Microsoft has to monetize seats of Windows somehow. What's left? Collecting and selling user data and advertising. This sort of thing has to have been approved by Nadella. Is this the move of a "kinder, gentler" CEO who just loves open source and freedom? No, it's a move by a shrewd person who is desperately trying to keep his company relevant in the face of phones, tablets, clouds, and social media.
I think whether a company can change is the right question, because it stands to reason that if a company can change, then given enough time, it will change. How much time is "enough" for any given company is anybody's guess, and as stated in my original post, I'm certainly not claiming that in this case Microsoft has in fact changed for the better. But to rule out that possibility completely because of what they've done in the past strikes me as irrational.
Microsoft is changing, and how far they are changing is to be seen.
Calling them villains unable to change or calling them as innocent as new lambs is strawmanning.
The point people are making is that the only thing that has changed so far with Microsoft is their methods. And that their new methods still align with their old tactics and goals.
Would you call a gang member that now uses guns instead of knives a "changed man"?
The IRA stopped using bombs and guns, and took up pens and microphones. Their political goals never changed, but their methods did.
I'd say they're changed men. Using arguments instead of violence is ultimately a good thing.
Gang members often don't have a goal of "I wanna rob people". They want money. If they put on suits and ties and become software engineers because the pay is better---they're changed men.
So what does Microsoft want?
The most trite statement would be that they want market dominance and money for their shareholders. A "good" Microsoft would be one who due to government regulation or social approval cannot do bad things to achieve dominance.
This is the balancing act that we play with all companies---they want money, and society forces them to only gain money in socially approved ways thus we all benefit.
Does this analogy really fit? Microsoft put an advert in their file explorer and now we're comparing them to violent criminals?
That's not just HN. It's the state of discourse in general in 2017, particularly among internet strangers. You're either on my side 100% or you're wrong.
A classic example is Apple under Jobs. They weren't ethical (locked down iPhone) but they weren't obtuse.
WSL is a classic "shut up and take my money" - it's not open source, it doesn't let me write cross platform GUI, it just let's me keep windows as a desktop when me server is Linux.
The only thing is that MS (under Ballmer) was obtuse and didn't realize they lost the server, and now they do.
VSCode isn't cannibalizing their existing VS installations, its cannibalizing Sublime and Atom. So the most they spend on it is a team of programmers? It pays with mind share.
With .NET core also, they realized that no startup will touch .NET on the server because they don't want to spend money on a windows license. As MS isn't interested in being Oracle, they OS .Net for the server.
Note, they didn't OS .net for the desktop.
What will happen when they'll be be on top again? Will they keep Open Sourcing things (like Google is doing) or will it go back to Closed Source vendor lockin?
Look at how they're behaving with Windows 10 (and 8 before it). That should be enough to tell you that they have no desire at all to change.
Now maybe people will also start looking at the current "gate is a fantastic person" trend from the PR perspective as well.
I mean, it is unsourced, but it's not an unheard of idea, and should be quite Google-able. Microsoft has engaged in astroturfing many times (last in 2014 AFAIK) so it's entirely possible.
NeoGaf discussion with a list of news reports on MS astroturfing:
http://m.neogaf.com/showthread.php?t=579641
(I'm not associated with NeoGaf, I found it on Google, I vaguely recall it having some GamerGate-related stigma attached to it so I added this disclaimer)
They win whatever happen. It's a bit depressing.
Google is at the top in Mobile. Yet Android is 90% Open Source. It's not that even that.
If I want to install an APK, I can do it. No need to be a Enterprise or pay $100 for a developer license, anyone can install FDroid. And they let people write competitive software (Firefox, etc.) and set them as default. Actually, as a user, I don't have to see anything be Google if I don't want to.
And don't forget open sourcing TensorFlow.
It's open source in name only. All development is done behind closed doors and essentially dumped out in the open when Google determines it's ready for a release. No one else has say in the development process and you can't contribute changes either.
All the other things you mentioned, can also be done on Windows. I am not sure how that's different than what Windows does/is doing.
2. MS took apple's approach that everything (on their new platform) must go through the store.
Even if right now they give exceptions, it's as I said above an example of them trying to build market share. Will they have an "Unknown Sources" button when they get 80% of the market?
For a long time even the GNU project had a similar cathedral-style approach of secretive development processes and no outside contributions.
You might have a point when there is a CyanogenMod/LineageOS equivalent for Windows.
compared to the openness of Edge/IE, Google are saints with Chrome
Chromium was based on Webkit which actually came from Apple (and who forked it from KHTML from the KDE project). It's not Chromium that's the "basis" of competitors, it's Webkit that was the base.
It's not a binary option (nice vs. not nice) but a range from nice to not nice. Companies fall at different points on that spectrum. As examples; Apple, Google, Microsoft, IBM and Oracle all fall on very different points on this not-nice spectrum when they are/were at the top. The relative positions are subjective depending on who you relate to each (developer, competitor, user, recipient of legal threat or bystander), but in my circles there is a general consensus on the relative positions.
We need to prevent companies from controlling the market, and keep the powerful ones honest and accountable. Hating IBM, Microsoft and AT&T is all about fighting tyranny.
Apple was not Tone Deaf under Jobs, but weren't really ethical.
If Google would block Amazon on search, there'd be such a scream.
I judge companies on how they behave when they're "at the top" - MS in the late 90s-early 00's or Google (Android and search) in the late 00's - now.
The reason is that companies at the bottom have to behave nicely (Cyanogen learned that the hard way), community-cred is literally all they have. You judge companies behavior once they get to the top and can do whatever they want.
Now, back to the topic, MS was losing developer cred lately(and don't want to become IBM), so what do they do? They Open Source some developer tools and part of their language (less than Java, BTW). Oh, they also realize that developers were switching to Apple and Linux, so they added WSL.
It's not they became ethical, it's not that they're stopping vendor lockin, it's not that they're going to finally fully document the Win32 API (their online documentation is quite often inaccurate), it's not that they're going to allow you to stop their spying (unless you're a huge business who had enough purchasing power to actually leave - try telling the CIA that if they're using Windows, everything they type is seen at MS). They're at the top there and don't need to do any favors to anyone.
MS is simply business as usual.