AppGet Creator Says Microsoft Stole His Product

Posted on May 28, 2020 by Paul Thurrott in Windows, Windows 10 with 43 Comments

Last week, Microsoft released its new Windows Package Manager, called WinGet. But as it turns out, they stole it: Keivan Beigi, the creator of a popular package manager called AppGet, describes how Microsoft wooed him last year and discussed employing him, only to later ghost him and release WinGet, which he says is basically identical to AppGet.

As a result, Beigi is killing AppGet.

“Microsoft released WinGet (Not to be mistaken with AppGet) earlier this week as part of their Build 2020 announcements,” he writes. “I’m no longer going to be developing AppGet. The client and backend services will go into maintenance mode immediately until August 1, 2020, at which point they’ll be shut down permanently.”

Here’s what he says happened.

In July 2019, Microsoft contacted him to discuss AppGet and package managers in person, and that meeting finally took place in August. He told Microsoft about the ideas behind AppGet, what he thought was broken about package managers in Windows, and what he planned for the future of AppGet.

After the meeting, Microsoft discussed the possibility of Beigi coming to work for the software giant.

“My team is … looking to make some significant changes to the way that we enable software distribution on Windows and there’s a great opportunity … to help define the future of Windows and app distribution throughout Azure/Microsoft 365,” an email from Microsoft explains. “With that in mind have you considered spending more time dedicated to appget and potentially at Microsoft?”

After a bit of discussion, Beigi agreed to what he called an “acqui-hire” where Microsoft would hire him and pay him to keep working on AppGet, and Microsoft would decide whether it wanted to rename the product.

Months passed. Beigi was told that the hiring process would take “a very long time” and Microsoft offered to “to speed up the process [and] just to hire [Beigi] with a ‘bonus’ and then work on migrating the code ownership after the fact.” He agreed.

Beigi interviewed at Microsoft all day on December 5, meeting with four different people. He thought it went well.

“And then, I didn’t hear anything back from anyone at Microsoft for six months,” he writes. Six. Months.

On the eve of Build 2020, Beigi finally did hear back, however. And Microsoft had some bad news.

“I’m sorry that the [Program Manager] position didn’t work out,” the email reads. “I wanted to take the time to tell you how much we appreciated your input and insights. We have been building the Windows Package Manager and the first preview will go live tomorrow at Build. We give AppGet a call out in our blog post too since we believe there will be space for different package managers on windows. You will see our package manager is based on GitHub too but obviously with our own implementation etc. Our package manager will be open source too so obviously we would welcome any contribution from you.”

Beigi wasn’t all that surprised by this given the six months of silence. But when he examined the WinGet repositories on GitHub, he was surprised to see that it was just a copy of AppGet, but called WinGet.

“The core mechanics, terminology, the manifest format and structure, even the package repository’s folder structure, are very inspired by AppGet,” he writes. “The part that hurts the most was the announcement. AppGet, which is objectively where most ideas for WinGet came from, was only mentioned as another package manager that just happened to exist; While other package managers that WinGet shares very little with were mentioned and explained much more deliberately … Do you want to know how Microsoft WinGet works? go read the article I wrote 2 years ago about how AppGet works.”

This is a stunning f$%^ you from Microsoft, not just to Beigi, but to the open-source community.

And it comes at a bizarre time in which the software giant isn’t just embracing open source but appears to be subsumed by it. This isn’t 1992 when this kind of behavior was common at Microsoft, and it led to sweeping antitrust charges in the late 1990s. It’s 2020. This should never happen now. Never.

I can’t explain this behavior. But I hope whoever he interacted with at Microsoft—he lists the name only as “Andrew,” and/or whoever OK’ed this behavior and strategy is summarily fired. This is inexcusable.

OK, Microsoft. It’s your turn. Respond. Set this right.

Tagged with ,

Join the discussion!

BECOME A THURROTT MEMBER:

Don't have a login but want to join the conversation? Become a Thurrott Premium or Basic User to participate

Register
Comments (51)

51 responses to “AppGet Creator Says Microsoft Stole His Product”

  1. Avatar

    JoePaulson

    I am with you on that Paul. The people involved in this need to be fired. This is not the company that Nadela reworked. I hope those involved are just left over goons from the old MS that just happened to make it through or some hot shot kids who are too stupid to realize what they were doing was totally unethical.

  2. Avatar

    Winner

    I'm SHOCKED I tell you, SHOCKED that Microsoft could have in their DNA the same behavior that got them anti-trust condemnation over two decades ago.

    • Avatar

      Paul Thurrott

      You should be. This is a very different company today. This was clearly the work of a bad apple or a small number of players, not a reflection of the broader company. Microsoft is not the same company that it was in 2007 let alone 1992.
  3. Avatar

    madthinus

    A company is many people, and some of them are just shitty people sadly.

    • Avatar

      Paul Thurrott

      Yes. We have this way of humanizing corporations as if this entity with 150,000+ employees is somehow a single, living being with one will and direction. This issue does not represent Microsoft as a whole and the most surprising thing about it is that it did happen there.
  4. Avatar

    reefer

    Yeah this is a level of dickiness that belongs to the Microsoft of past. Despite the best efforts under Nadellas management it seems that parts of Microsoft is still mentally lingering in the bad old days of the company.

  5. Avatar

    mikeharris123

    Let's hope they used good old grep, see and awk to make the code substitution and keeping it completely open source.


    Sad news but they have still made significant progress. They are a huge company and some shitty individuals will prosper (hopefully only for a while) and some bad decisions will be made. Hopefully with pressure applied some of these cause the right level of embarrassment within the company to stop more being made


    The problem with going all in with Microsoft, Google or Apple us that you are going to end up disappointed with the decisions they take



  6. Avatar

    wright_is

    I'm not defending Microsoft here, but, I have been saying for over 15 years that Windows needs such a package manager. When I saw the announcement last week, I thought it was a Windows version of apt-get.

    I don't know aptget, but this sounds like a copy of apt/apt-get, zypp, yum etc. that runs under windows.

    I will be very interested to see where the truth lies. Did they already have enough of the system written, that Beigi was no longer needed, or did they really steal his code and ideas? The basic principle has been in use for over 2 decades on Linux, so it isn't something new and secret.

    However, if they had built up a role for him and then pulled back, after they stole his ideas, that is a disgrace and should be punished.

    I'll be very interested to see how Microsoft reacts to this accusation.

  7. Avatar

    mikes_infl

    Beyond all the conflict about open source / github / nuget etc, if a guy was looking to be hired by a corp - why wait 6 months to let them get in touch with you? I scheduled a contact during my interview and didn't wait 2 weeks before I got back in touch. Something seems off about this, from many different angles.

  8. Avatar

    paulf

    Never heard of Appget before this article so do not know how it compares to Winget. Winget does not seem that impressive compared to Chocolatey which works well.

  9. Avatar

    Patrick3D

    He has grounds for a lawsuit as their was discussion of compensation for his work. (IANAL)

  10. Avatar

    Pungkuss

    This is why I laugh whenever Paul gushes about how Microsoft changed. Look, Google went OSS because when they started they were tiny and did not have a huge market share to protect. NONE of these companies are good or bad, they are just protecting profits. Microsoft is in the process of opening all the things that they are behind in market share, and keeping a Kung Fu grip on stuff like Office. Why is it still so difficult to convert from Excel/Word/Powerpoint document to any other competitors product? They are protecting the empire. In this case my guess is that these decisions were not made by any high-level person at Microsoft , as the company is going thru a positive PR cycle right now and wouldn't risk it. Culture is a hard thing to change though, especially when internally you need to pick and choose where you get to be the 'good guy'.

    • Avatar

      mebby

      In reply to Pungkuss: Microsoft changing as a whole for the better, and having something like this happen, can both be true. Well, maybe the senior managers at Microsoft get together and said let's steal apps...


    • Avatar

      Paul Thurrott

      Yeah, me and my gushing. Do you also still hold a grudge against Japan and Germany for World War II? I mean, nothing ever changes, right? This incident is most surprising BECAUSE it happened at Microsoft. An exception doesn't disprove the rule.
    • Avatar

      vernonlvincent

      In reply to Pungkuss:

      Given how Microsoft previous behavior within recent memory has, in fact, been pretty dang decent - I think this is a bit of an overreaction.


      I'm willing to wait to hear Microsoft's response before I trash them wholesale. Now - if that response isn't forthcoming, or if it's a garbage response or easily disproven - I completely agree that they need to be called out vigorously for. But given the incredible progress they've made in becoming a good company and good steward of technology, I personally think they've earned (from me, at least) the courtesy of not immediately bashing them.

  11. Avatar

    prifici

    Oof, as a recent Linux-to-Windows convert who has put a lot of trust in Microsoft, this is a bit rattling. I hope this was a once-off failure and doesn't become a repeat act by Microsoft. There are a lot of Linux greybeards feeling vindicated right now i'm sure...

  12. Avatar

    BigM72

    I have met many, many employees who rave about the change under Nadella, they really believe in it.

    You are still going to get some bad apples in such a large company, they slip through the net.

    Microsoft has a chance here to make things right and I'm sure they will do it.

  13. Avatar

    Craig.

    Seems a bit of a non-story really.


    Someone at Microsoft liked the way AppGet worked, pushed for them to work with that idea/employ him/whatever, presumably others in MS weren't as keen, probably knew they would be rewriting regardless.


    AppGet is written in C# which I don't think is that popular in the MS OS division.

    The AppGet and WinGet names are clearly an homage to apt-get.

    The manifest being yaml isn't that surprising, Azure uses it extensively and it's arguably the best 'markup' format.

    The repo's structure seems to be as inspired by other MS repos as AppGet's.

    The linked article doesn't really tell you how WinGet/AppGet works, I assume he's alluding to going the manifest route rather than the Chocolatey script route - which is obvious - no one's going to have arbitrary PowerShell scripts running doing goodness knows what when you can have a simple manifest pointing to signed binaries instead.


    I think you ought to rewrite this article as it contains some objective untruths (lies):

    "But as it turns out, they stole it"

    "But when he examined the WinGet repositories on GitHub, he was surprised to see that it was just a copy of AppGet, but called WinGet."


    It definitely wasn't stolen or copied.

  14. Avatar

    illuminated

    There are 20+ year old apt-get and yum package managers on linux. Maybe package manager looks like a very original and revolutionary idea on windows but it is nothing new. I could see that Microsoft did not consider the idea of the package manager really worth that much. They were looking for an implementation that they could quickly buy and integrate instead of developing themselves. AppGet appeared not that well suited for them or it was just cheaper to develop their own than trying to modify AppGet.


  15. Avatar

    olditpro2000

    Someone named Andrew (same guy Keivan Bieig was communicating with?) posted a bit of an update to this saga. The comments are, well, what you would expect.


    https://devblogs.microsoft.com/commandline/winget-install-learning/


  16. Avatar

    red77star

    A guy should sue Microsoft for this.

  17. Avatar

    sherlockholmes

    lol. Going back to old times, eh? ;-)

  18. Avatar

    jkaivo

    In Microsoft's defense, WinGet is no more stolen from AppGet than your own .NETPad is stolen from Windows Notepad. About five seconds looking at their respective source repositories shows that AppGet is a C# program, but WinGet is written in C++. I'm sure there are similarities in design and function, but there doesn't seem to be any evidence of copying code. And even if there was, it would be permissable under the former's Apache license. I suspect that may be the origin of the issue, as Microsoft prefers the MIT license for their open source work (and indeed WinGet is under the MIT license).


    That being said, stringing a guy along with an employment offer only to end with a last-minute "Nah, we're going to use our own version" is a major jerk move.

    • Avatar

      techreader

      In reply to jkaivo:


      Major jerk move is absolutely right. And using the prospect of employment to entice him to share his ideas is infuriating. This is a disturbing abuse of power.

      • Avatar

        KPixel

        In reply to techreader:

        It is likely that Microsoft did want to acq-hire him when they started exploring this idea.

        Then, as they dug deeper, they made choices that were incompatible with hiring him (like going for C++ instead of C#).

        At that point, they failed to communicate this news back to the AppGet guy (which happens a lot when you have a "bad" news to deliver).

        • Avatar

          ElderOrin

          In reply to KPixel:

          Agreed. I took a look at the respective repos as well. They are totally different implementations (AppGet is C#, WinGet is C++). The manifest formats are different. The similarities that do exist between the formats are due to the normal requirements of a package manager. Many of the fields of the AppGet manifest are the same fields in a NuGet package. That doesn't mean that AppGet stole from NuGet, just like it doesn't mean that WinGet stole from AppGet. NPM has supported publishing packages from GitHub for many years. I'm sure that Microsoft did get some ideas from AppGet, but that is just the way that the open source community works. Open source projects learn from other projects all the time. For example, much of the .NET Core tooling is inspired by many of the great features in web development tooling, such as NPM. It's one of the things that makes open source such a powerful force for progress.

          • Avatar

            Paul Thurrott

            Let's say a guy named "Mike" copies something that "Bob" made. Let's just say it happened. We will just accept that. Now let's say that Microsoft or some other corporation that generations over $30 billion in revenues every quarter approaches Mike. Says, Mike, we really like your work. Let's talk. They do. Microsoft offers Mike a job. Microsoft wants to bring Mike's work---really Bob's---to the world at scale. Microsoft then goes silent for 6 months. Microsoft then releases a copy of the thing that Mike copied from Bob. It's exactly the same. Or not. It's very close. Doesn't matter. Those two events in which something was copied are not the same thing. Because two are just individuals that made free things, in one case as side project. And the other is a gigantic corporation with 150,000 employees, an army of lawyers, and worldwide economic and political influence. This is obvious, right? We can't use words like "inspired" here. It's pretty obvious what happened. Also, I wrote an app called .NETpad in Visual Basic and then ported it to C#. And then to WPF. And then to UWP. Those are not "totally different implementations." They are each derivative of---copies of---their respective predecessors. And that's code I wrote myself (mostly, I had some help). You can't defend what Microsoft did here. You can't.
            • Avatar

              jkaivo

              In reply to paul-thurrott:


              In this case, "Mike" wrote an open source program, the license of which explicitly allows anyone and everyone to copy it and make derivative works. He posted it to GitHub for the world to use.


              Someone at Microsoft, being a part of the set of "people with access to public GitHub repositories", made a very similar program. It's likely that they even referenced "Mike's" open source code, since, you know, it's open source. But given that C# and C++, despite the names, incredibly different languages, it's very unlikely that any actual code was copied. Which, again, to be perfectly clear, is absolutely permissible under the license. Even if Microsoft had literally just cloned the repo and did a global find and replace for AppGet to WinGet, it would be OK if they don't change the license. The fact that WinGet doesn't share code makes the difference in license acceptable.


              I cannot stress enough how defensible the copying is. Regardless of whom copied who, the license allows it. Some would even say encourages it.


              There are definitely problems with the employment offer. Was it in bad faith (possibly)? Was the intent to distract Beigi while they worked on their replacement (what would even be the point of that)? Did someone overreach their authority in making the offer in the first place (could be)? Those are the questions that you should be looking into. "Major corporation creates open source clone of open source tool" is not.

            • Avatar

              Craig.

              In reply to paul-thurrott:

              You copied the notepad idea, Microsoft may have copied some ideas from WinGet, Chocolatey, apt-get etc.

              You didn't copy Microsoft's notepad code, Microsoft didn't copy AppGet's code.

              Notepad is most likely written in C++, your clone is written in VB.NET/C#.

              AppGet is written in C#, WinGet is in C++.

              Nobody has copied or stolen code in these two instances (as far as I can see).

              Ideas are borrowed/copied all the time in software and Keivan is justified in being annoyed about it.

              Sorry if I seem overly pedantic.

  19. Avatar

    chuck willemsen

    Do you think a leopard cannot change its spots? Lets see how this plays out as this is not the the vision that Satya Nadella has for Microsoft and the future.

  20. Avatar

    techreader

    Thank you for writing this post, Paul. Let’s see what happens. Please keep up the pressure for a very clear response, and don’t let them bury this by silence.

  21. Avatar

    awright18

    I think it's great that you are sharing this story. There are several windows focused package managers, I think anyone who was aware of this had the same reaction to winger. All of this nuget, powershellget, and finally nuget stuff originated with mainly one person Rob Reynolds, @ferventcoder, who started the Nu project a long while ago. Microsoft consulted with him and brought NuGet to life. Nu was inspired by Ruby Gems. Later Rob created Choclatey NuGet, also known as Chocolatey, which is a premiere package manager on windows and windows server today.


    The first thing I thought when I saw this is they are screwing over Rob yet again in the exact same way. I do not have any information regarding any talks between Rob and Microsoft in reference to winget, I only know he was consulted prior to the release of nuget. I highly recommed if you like the idea of winget you should checkout Chocolatey. It might be a cool story to do an interview with Rob on this stuff as well.


  22. Avatar

    rh24

    Wow. Just. Wow. I feel that Microsoft has shown itself to be a better citizen in the Satya era. This is disappointing.

  23. Avatar

    skborders

    How many times has Apple done the same thing. While Paul will call them out on it, most won’t. Jerk move? Yep. Unethical? Absolutely! Uncommon or illegal? Apparently not

  24. Avatar

    PanamaVet

    There has to be a court in Seattle that would jump at this opportunity to dip into Microsoft's deep pockets without regard to the law.


    My son's pet peeve is being interviewed with the intent to harvest his ideas.



  25. Avatar

    GT Tecolotecreek

    The Who say it best:

    ...the new boss same as the old boss

  26. Avatar

    BizTechSherpa

    This is disturbing. if it is not responded to by Microsoft leadership, it is systemic and then how can we trust our data to them?

  27. Avatar

    grsdev

    Timeout!


    So this guy open sources his software! Posts it to the world on github under APACHE V2 to grab and use/fork/print on toilet paper if they choose to/etc.


    Microsoft creates a similar product, whether inspired, forked, copied, or whatever you wanna call it. Microsoft also open sources it under MIT licenses for the world to use/fork/print on toilet paper if they choose to/etc.


    Where is the issue here?


    Must be a slow day...

Leave a Reply