------
Code being copied isn't an issue. I knew full well what it meant to release something opensource and I don't regret it one bit. What was copied with no credit is the foundation of the project. How it actually works. If I were the patenting type, this would be the thing you would patent. ps. I don't regret not patenting anything. And I don't mean the general concept of package/app managers, they have been done a hundred times. If you look at similar projects across OSes, Homebrew, Chocolaty, Scoop, ninite etc; you'll see they all do it in their own way. However, WinGet works pretty much identical to the way AppGet works. Do you want to know how Microsoft WinGet works? go read the article (https://keivan.io/appget-what-chocolatey-wasnt/) I wrote 2 years ago about how AppGet works.
I'm not even upset they copied me. To me, that's a validation of how sound my idea was. What upsets me is how no credit was given.
> Do you want to know how Microsoft WinGet works? go read the article I wrote 2 years ago about how AppGet works.
I try to assume no bad intentions these days.
It would a futile endeavour, a realization acknowledged by the author, any further dev cycles on it would be wasted & are better spent elsewhere.
The manifest format is particularly egregious.
And the icing on the cake is the "btw, we are giving you the exclusive so keep it secret".
Like, wtf. He ain't TechCrunch. Why the fuck are they giving him that exclusive? Nothing yells "we stole your stuff, but dude it was open source so you really can't complain, and thanks for the idea" more than that.
You can't make up this shit.
> I'm sure there was a reason they decided to not hire me. Maybe I had a shitty attitude? I don't know. I'm not questioning that. But I think an email letting me know and some credit would be fair to expect.
Not clear if they were trolling or just tone deaf.
Last year a huge game company released something built on my tiny open-source game engine (uncredited), and I only found out about it later from a kind internet stranger. All things considered, better to know in advance so you can at least have your own response ready, so you can comment in the relevant HN/reddit threads, etc.
That said, the "keep it secret" part of the mail here does sound weird, but given the other history there may have been an NDA in place.
> Do you want to know how Microsoft WinGet works? go read the article (https://keivan.io/appget-what-chocolatey-wasnt/)
But that alone doesn't particularly strike me as a completely novel approach on its own. Looking at package definitions for firefox across various package managers, you can notice that they all look somewhat similar to some degree. Though one could argue that appget and winget looks more similar than others, I'm not sure this is wholesale copying without digging into more details. But again, I'm not trying to argue that it's not, and I also agree the OP should've received more credit.
appget: https://github.com/appget/appget.packages/blob/master/manife...
winget: https://github.com/microsoft/winget-pkgs/blob/master/manifes...
scoop: https://github.com/lukesampson/scoop-extras/blob/master/buck...
homebrew cask: https://github.com/Homebrew/homebrew-cask/blob/master/Casks/...
That being said, the fake interview process explained in the article is totally unacceptable and deserves some explanations from MS.
In the past, I've been in talks with an employer about a job, and my enthousiasm was only so-so, and that tended to put a brake on the proceedings.
Robert patented it but still megacorps tried to screw him over because they thought they could. He did win but only after an exhausting trial that took years.
Really sucks when credit is not given where due.
It's literally the new cuddly microsoft Embracing, Extending and Extinguishing this guy's work.
Adding “UPDATE:(date)text” either in the footer - with a brief dip in the header saying there’s an updated in the footer is an easy way to accomplish this.
Does Microsoft select for assholes or something? There's a thousand other package manager names [1] in the wild and they chose that one.
So much for "developers, developers, developers"...
[1] https://en.wikipedia.org/wiki/List_of_software_package_manag...
- "NuGet" is super-popular in .NET circles (included in Visual Studio by default)
- "apt-get" is the classic tool for Windows Subsystem for Linux
So "WinGet" certainly "makes sense" as a name without being a direct ripoff of AppGet
That said, in my case the summary makes it sound better than it actually was. The game they released was a one-off promo thing, which made a big splash for a few days but was effectively dead by the time I heard about it a week or two later. Then there followed a dialog with a separate team inside Microsoft, about hopefully updating it, which dragged on for a while and basically resulted in their bit getting updated but not mine, etc. etc. Altogether it was a big distraction and a pretty dreary episode.
I realize I'm missing some context here, but I can't see how your life would work out better from _not_ receiving a heads up that the process has ended.
So they did this and... it looks even worse.
Your job is to create an App Manager.
There is already a code base under a MIT license.
You use it.
I'm not seeing the issue.
The meat of this blog post, to me, seems like the terrible hiring pipeline with no feedback. That seems like a really bad experience. I can only imagine that someone really dropped a ball somewhere.
APT is the classic tool for debian-like Linux distributions. FTFY
The issue is when they didn't just fork the codebase, they repeatedly flew the person who wrote the code out to Seattle on false pretenses, implying a job offer and additional money for their work, then picked the developer's brains until Microsoft learned all they needed from him, then just ignored all communication from him.
The issue is that it was dishonest and scummy behavior.
And you keep the copyright notice, otherwise you're violating the license.
If it's based on the same design (i.e. same file formats, mechanisms, etc.) then the issue is still not giving credit and pointing out the design it's based on. Doesn't cost them a thing and gives a lot of goodwill from people.
Like, if someone uses my code, I'm happy, if they copy the idea and present it as their own that's dishonest.
You just milk him for information and let him go without any further communication.
FWIW, I agree with you that WinGet is an entirely logical choice, catchy, and ultimately unrelated to AppGet. Yeah, it may seem like the choice was made intentionally / in spite of AppGet, but anyone who knows a bit about big company dynamics will tell you that the explanation for situations like this is usually mundane, innocent, and often dysfunctional — much like a toddler. A toddler that happens to have a billion dollars and can reshape the world with its decisions, but still similar. “The name is catchy and I like it” is akin to “I see red ice cream and I want it,” and it’s probably nothing deeper than that.
It was rather unfortunate to use apt-get as an example and then say it was for Windows, though. :)
Hello darkness, my old friend…
It reminds me of the way secure boot was rolled out where Microsoft said that this was all about "trust" and yet OEMs who are always keen to keep Microsoft sweet would strangely only bundle windows keys.
Context matters. That's the key point here.
Plus your two examples out of a hundred or so examples doesn't make it common either (or maybe one in a half examples since apt/apt-get/apt-cache are the three Debian programs under APT umbrella).
[1] there was no way this project was going to continue despite their nonsense about "broadening the options in the community", they knew what they were doing
As opposed to the other tech bloggers who will have a scramble to write it after hearing about it with the rest of the world
Edit: Imo not a bad thing, it's just how it is. A lot of people will learn (of) Linux through WSL. Linux as a runtime.
And lets not forget - they had similar open source project and community. They decided not to participate but create their own. This new project will overshadow existing and eventually kill community.
I am really sorry this happened to you. On the scale of Microsoft, or even on the scale of what they're putting into this effort, it would have cost approximately nothing to give you an "acquisition" you would have been happy with. If the job didn't work out, they could have given you a fat consulting contract for a year or two. Or they just could have written you a check.
And it would have cost them actual nothing to just treat you with respect. Say how much they loved your work. Credit you publicly as a leader and an inspiration. Arrange a smooth transition for your users.
For what it's worth, I'm glad for you that the job didn't happen. Much better to be far away from people like this.
In 1990, they put out Stacker, which did transparent disk compression, effectively giving people twice as much disk space. It was a huge hit, so Microsoft called them up about an acquisition, entered discussion, and as part of the due dilligence process, even looked at the source code.
In 1993, Microsoft released their own version of Stacker as part of the OS. No thank you, no money for Stac, just a giant middle finger. Stac sued and eventually won some money, but it was never the same.
Everybody keeps telling me that Microsoft is different these days. About how they love open source now. And it's true that after decades of erosion of their primary monopolies, they can't get away with being as lazy and awful as they were in, say, the early IE era. But this suggests to me that deep down they haven't really changed.
I feel for the guy, but someone who called their package manager "app get" in 2014 when "apt get" has existed for since 1998 is in no position to take umbrage at a competing package manager having a six-letter name ending in get.
I would have preferred irrelevantGet but WinGet is unambiguous enough.
Don't work for free on proprietary systems or single sponsor opensource is a lesson cheaper learned by watching others.
I too have been in a similar situation (being interviewed at a startup and being clearly not super enthusiastic about the position being offered) but they decided to go with somebody else they gave me a courtesy call letting me know about it. I think it's the right thing to do.
My last meeting ended at around 6 pm. I took an Uber to the airport and was back in Vancouver.
And then, I didn’t hear anything back from anyone at Microsoft for six months.
For what it's worth – and I'm not really sure whether it's helpful to say this, or whether it's even true – this situation often means "you didn't pass the interview."
The reason I mention it, is that it took an embarrassingly long time for me to understand this. Maybe it's common knowledge. But an identical situation happened to me at Magic Leap. I hesitate to mention their name, lest it sound like I'm calling them out or something, but I'm not. And in general I no longer feel negatively towards companies that end up doing that, so I don't think any particular stigma should be attached to Magic Leap for doing that.
I'm trying (and possibly failing) to share a personal experience of "I used to feel awful in situations like this; now I realize it's just business, and the decision of pass/fail has extraordinarily little to do with the skill of the programmer being interviewed, so don't take it as a sign of anything."
None of this is to undermine your overall point that it's generally not cool to ghost a candidate (to put it mildly), and that it's a doubly not-cool move to then clone the product of the candidate in question. But, it happens, and I just wanted to reassure you that yes, it does happen. It would've helped me to hear that at one point, so here it is, just in case.
I wouldn't say that. It's a big company thing.
It does not matter if Nadella is a nice guy. It does not matter if everyone reporting to him is a nice guy. They are still forced to operate with a megacorp filled with lizard people.
On the other hand, it might be just the usual confusion that large administrative structures needed for megacorps cause.
Many OSS projects (and pretty much all of mine) were started to scratch a particular itch, so if that itch gets scratched by another project, I'm not terribly concerned.
It's more problematic if the competition is a half assed solution that, by virtue of being backed by a larger company, still sucks the oxygen out of the space you're trying to serve.
Apache license requires to preserve copyright notices, did you have any?
I thought it was better named than Chocolatey or Scoop.
Edit: plan > pun. (no idea why I wrote plan, i think I wanted to write play)
I think I had a 200MB hard drive at the time.
I mean, not to shoot the messenger, you're right, that's exactly what it meant, but it isn't acceptable behaviour.
Looks like all the bigger companies are doing this now.
1. https://arstechnica.com/information-technology/2017/05/micro...
2. https://www.theverge.com/2020/5/18/21262103/microsoft-open-s...
At least in that instance, there was never anything overtly malicious happening. It was just your garden variety "banality of evil" situation. The existing corporate decision-making structures - that is, the bureaucracy - had no real mechanism to make sure that things like this are handled in an ethical manner. It's really hard to accomplish something that the bureaucracy isn't designed to handle, because that means that it's not really anybody's job to keep that particular ball rolling. So all it takes is one person not really giving a damn (perhaps only because they don't understand why they should) to scupper the whole thing.
If that experience is similar to how these things happen at Microsoft and Apple and IBM, then the problem isn't Microsoft, the problem is American workplace culture, and we have a responsibility to change how we work. Not in reaction to specific instances like this that have already happened, but in anticipation of, and in order to prevent, things like this from happening in the future.
Probably, but it's not limited to Microsoft.
Any company where revenues are the highest goal (and all publicly traded companies should be this way; it's an obligation to share holders) will, generally speaking, select for assholes and sociopaths.
How strong that selection is, how pervasive, and how quickly it happens are variables in the equation, but the effect is the same, and it sucks.
Well in the author's case the tool was just as useful for them than for the others. Nothing wrong with helping the community, regardless of the ecosystem.
To put an even finer point on it, a business is made of people. Individuals. The individuals involved behaved exceptionally poorly (to be charitable) toward another human being. How shameful of these individuals to act that way, and then (presumably) hide behind the collectivist shield of "the business".
I just think Microsoft should have found a way to credit the guy. Even just a footnote in their WinGet announcement blog post would have been better.
It's pretty compelling, I predict they will pull in a lot of Apple (who use it for the terminal) devs and make a lot of Windows first devs very happy. And there are a lot.
Btw, am I downvoted because my original comment in not constructive or do people not agree with me?
[0] https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk...
pretty subjective, I'm guessing most people find terminal-based stuff easier/nicer on a computer with an actual keyboard, rather than a (relatively) small phone screen with a touchscreen keyboard.
I believe Termux is also pretty majorly restricted by Android 10 (can only run binary code included within the application package, so no downloading additional linux packages or compiling things locally, I believe)
This "Andrew" is isolated from everything by multiple levels of bureaucracy and regulations. Even if he wanted to make right, he would've just burned his accumulated clout it vain. Hire as a contractor? No matching position. Write a check? No such budget line item. Give a shout-out? Leave marketing to the marketing dept.
This seems like genericisation in trademarks to me. Sometimes things grow to be useful more broadly -- that seems like something to celebrate.
If you're railing against capitalism in general however, then I'm with you! Distribution of wealth shouldn't be left to a fight between a small cadre of corporation owners vs. the populous.
They could have approached the project owner, said they'd like to use the structure under the MIT license and offered a job/cash as a thank you for his dev time.
They could at least send the guy a fish, if his contribution was significant.
You and countless other made impossible. Created community Microsoft could not ignore. It had to adopt, it had to change. Scary beast really. It does not know how to work with, it knows how to ride.
It took path you've paved. I see it - there is no dependency resolution, no make dependencies - as simple as possible so people can participate. More like Flatpack than apt.
Microsoft does not like fragmentation. There would be a big pull of users. It's interesting how they are going to fight mallware, spyware, ransomware. Issues like chrome Stylish and npm leftpad. With all respect it is not clear you could manage it, there is quite a list in the queue [0].
Please don't despair, you've made gift to community not Microsoft.
[1]https://en.wikipedia.org/wiki/Go!_(programming_language)#Con...
'WinGet', a direct copy of 'AppGet', is not a friendly reference IMO.
I've also heard it expressed as "Never attribute to malice that which is adequately explained by incompetence".
Although in this case I'm not sure organisational incompetence is necessarily a good enough explanation given there are ex-Microsofters in the discussion suggesting that people would actively have been weighing up whether or not to screw over Keivan. (Obviously I have no idea how likely that is to be true either.)
Microsoft has unusual ability to move swiftly, with all its weight it may be not graceful. That said they do not always extend and extinguish. Often they make clone and ride it
Oracle => MSSQL
Java => C#
AWS => Azure
To make objective decision it would be nice to have a list of Microsoft inspirations with their fate and Microsoft actions.
This furor is a surprising flip-flop given the usual "information wants to be free" and "patents for software are dumb" cheerleading that we usually see around here.
However, Microsoft specifically has a history of being aggressively terrible in exactly this way, which is what I was referring to. For example, the time they talked with a company about an acquisition only to ghost them and totally steal their work: https://en.wikipedia.org/wiki/Stac_Electronics#Microsoft_law...
If that's all the innovation that MSFT has supposedly 'copied'...
To my mind, it also means the interviewers didn't pass.
A company that's indifferent to the people it's hiring is unlikely to be magically different once you're in the door.
At least they were nice enough to pay you a trip to Seattle and (briefly) mentioned your project in the release announcement, I didn't even get a "thank you".
As a result of this I re-licensed my code from MIT to OSL-3 and reduced my involvement in this project a lot so I focus on the things that actually matter in life: my wellbeing and spending the time with my family.
I think I will not credit everyone on my comparison tables. I only credit who inspired me hugely. MS hasn't implemented everything AppGet had. I bet MS is waiting for public feedback for the next point. Acutally MS has its Roadmap: https://github.com/microsoft/winget-cli/blob/master/doc/wind...
For the spec, only two common options: YAML & JSON. And every YAML spec looks this way.
MS has other experiences like TypeScript Definition also. https://github.com/DefinitelyTyped/DefinitelyTyped/tree/mast...
On the other hand "WinGet" sounds like "wing-it" i.e. release any piece of junk and fix later. Maybe. Which TBF does seem to be how Microsoft works anyway.
And what would be the benefit if Microsoft gave you credit for it? Most likely their lawyers would reject it since you may then be able to sue them for...I don't know what, but money in any case.
It's a very Microsoft-thing to do to copy someone else's idea and improve on it (C#, RDP, Excel). If you release something as open-source you have to ask yourself if your doing it out of altruism or for money? In case of the latter you have to plan accordingly, by patenting or with restrictive licensing.
You don't strike me as the kind of person that would litigate such things, but I would like to think that if the right people at Microsoft became aware of such a liability, they might choose to give you credit (to be on the safe side).
https://en.wikipedia.org/wiki/Stac_Electronics#Microsoft_law...
Regardless of the legal case, the idea that concerns of reputation or credit are irrelevant to open source work is a crock. People may be working on open source because they genuinely want to help others, but if you deny them credit for the work they did then you can very well expect the well of open source innovation to dry up pretty quickly. And for a company like Microsoft, reputation is exactly why they are contributing to open source in the first place.
That's what I don't get about people who don't think this is a big deal. That a license is open source does not mean it is without conditions.
I'm an architect, so just keen to understand your architecture on the backend :)
MS and many others don't love OSS or contribute them back. Few really do it. But instead, they are leveraging software because OSS licenses allow it. One example, see GPL, they didn't ever accept it. But they embrace any other software without restrictions on top of "OSS", if not so, they just create its own "permissive" licenses (MSPL).
Many of us are creating software even without expecting to get money back from users of any kind. Money back in many situations can be just a gentle retribution from community (E.g voluntary donations).
So, No MS, you don't really "love" OSS.
I think the simpler explanation is that US v Microsoft and other anti-trust action combined with their declining fortunes scared them for a while, causing them to perform goodness. But now that the heat's off and they're on the upswing, they're returning to old patterns.
We'll see which explanation fits better over time. But it was all of two days ago that the Slack CEO, not given to hyperbole, said that Microsoft is "unhealthily preoccupied with killing us": https://www.theverge.com/2020/5/26/21270421/slack-ceo-stewar...
So I don't think my view is unreasonable.
Firstly, with the shift to the cloud, cross-platform was inevitably going to become more important - Linux is much loved in the server space.
Secondly, they realised the importance of developers in the shift to the cloud - their cloud, Azure, and also their DevOps tooling, Azure DevOps (and later Github).
Do I think their positive moves were altruistic? No, of course not - they are a corporation, a public one at that, and ultimately must generate money for their stakeholders.
But that doesn't mean their positive moves can't benefit me, or the development community, at the same time.
Honestly, the embrace & extinguish thing became a tired meme long ago; Microsoft are not somehow special in occasionally fucking someone over - every large corporation does this. It doesn't excuse it, of course, but the point is it's not a "Microsoft thing", and it doesn't invalidate all the goodwill they have generated in the past decade or so.
> Code being copied isn't an issue.
I looked at both repos and they share no code at all.
In his article, the author claims that " If I were the patenting type, this would be the thing you would patent. ps. I don't regret not patenting anything."
That's really not how patents work, and looking at the repo, a second year CS student could do the same really. I don't see anything that could remotely be patented. It reads where to find the installer from a config file and determine what to do based on an enum.
Throughout the article the author uses the term acqui-hire but it seems Microsoft was simply considering him for a PM position (and he failed the interview). There's nothing to acquire since there's no patent, no IP and no brand. Only a registered domain and what seems like an anemic userbase, if any.
Being featured in The Verge[0] and on HN's front page will probably bring a lot more eyeballs to the startups he's trying to promote. So congratulation for the free advertising!
[0] https://www.theverge.com/2020/5/28/21272964/microsoft-winget...
Microsoft doesn't let any open source build of VS Code access the VS Code Marketplace. Heavily reduces the benefit of VS Code being open source when you can't use any extension or service built for it without building it yourself.
https://github.com/cdr/code-server/blob/master/doc/FAQ.md#di...
My former employer is still using it and saving yearly multiple times my previous 6 digit salary, so I got a nice promotion out of it before I left.
It also helped me get my current job at AWS(pretty much half of the interview I was just talking about how I built it), and I now make some $500 monthly (before tax) from a few users who pay for official binaries.
I'm now only working on it occasionally, just enough to maintain this income stream, but previously I put a lot of time and effort into building it.
My motivation to work on it plummeted when I saw those companies reap the benefits of my hard work without giving anything back.
after all this is over, I'll probably do a write up of hall it all worked behind the scene + all the server code.
As to the reason for the change I think we're saying the same thing. If they could have snuffed out Linux, they would have. Their ongoing antitrust problems helped prevent that, allowing the Linux ecosystem to flourish. They have since been unable to abuse the power that they no longer have.
Again, time will tell if you're right thinking that Microsoft is merely just as awful as other large companies. But reasonable people can assume that it will be just as bad as before if they regain their power.
It's been a while, but I managed to corrupt oneget/package management on windows within a month of it being released; I spent about a week trying to fix it and eventually figured out what the problem was (though I've since forgotten the details) only to find it unfixable without reinstalling Windows.
Unfortunately, reinstalling Windows means Office won't reactivate--I've taken it into a Microsoft store, and they couldn't help me.
Apache 2.0 by the looks of things.
Interesting question would be whether WinGet is a "derivative work" of AppGet.
I wonder if things would have been different, if the product was licensed under Gplv3. If so, he could demand to check if Microsoft violated the license https://www.gnu.org/licenses/gpl-violation.en.html (to check if this is a completely new rewrite for example).
Update: Ah looks like Winget was sourced in C++, and Appget is in C#
I'm not even sure if the author's idea was original anyway. It looked more a CLI program to download and run installers.
Also, they have now corrected the credit: https://devblogs.microsoft.com/commandline/winget-install-le...
They don't share any code. As far as copyright law is concerned, it is not a derivative work.
They didn't use any of AppGet's code.
Though nobody is questioning whether what MS did was legal. The issue is whether it was moral.