How Microsoft Killed AppGet

How Microsoft Killed AppGet

Microsoft released a package manager last week winget as part of announcements at the conference Build 2020. Many considered this another proof of Microsoft's rapprochement with the Open Source movement. But not Canadian developer Keivan Beigi, author of a free package manager AppGet. Now he is trying to understand what happened in the last 12 months, during which he spoke with representatives of Microsoft.

Anyway, now Keyvan stops development of AppGet. Client and server services will go into maintenance mode immediately until August 1, 2020, after which they will be permanently closed.

In his blog, the author gives chronology of events. It all started a year ago (July 3, 2019) when he received this email from Andrew, the head of the development team at Microsoft:

keyvan,

I manage the Windows App Model development team and, in particular, the application deployment team. Just wanted to send you a short note to thank you for making appget - it's a great addition to the Windows ecosystem and makes the life of Windows developers so much easier. We will probably be in Vancouver in the coming weeks for meetings with other companies, but if you have time, we would like to meet with you and your team to get feedback on how to make your life easier in appget development.

Keyvan was excited: his hobby project was noticed by Microsoft! He answered the letter - and two months later, after an exchange of letters, he came to a meeting at the Microsoft office in Vancouver. The meeting was attended by Andrew and another development manager from the same product group. Keyvan says that he had a great time - they talked about the ideas behind AppGet, about what is not very well done in current package managers on Windows and what he plans for future versions of AppGet. The developer got the impression that Microsoft wanted to help the project: they themselves asked what they could do for him. He mentioned that it would be nice to get some Azure credits, some documentation for the new MSIX package format, and it would be nice to fix issues with individual download links.

A week later, Andrew sent a new email in which he actually invited Andrew to work at Microsoft: β€œWe want to make some significant changes to software distribution on Windows, and there is a great opportunity to help with what Windows and the application distribution system will look like in Azure / Microsoft 365. With that in mind, have you considered spending more appget time potentially at Microsoft?” he wrote.

Keyvan was a bit hesitant at first - he didn't want to go to Microsoft to work on the Windows Store, the MSI engine, and other application deployment systems. But they assured him that all his time he would only work on AppGet. After about a month of lengthy e-mail correspondence, they came to the conclusion that the agreement would be very similar to acqui-hire - Microsoft hires a developer along with his program, and they decide whether to rename it to something else, or it becomes Microsoft AppGet.

Keyvan writes that throughout the process he didn't fully understand what his role at Microsoft would be. What will be his duties? To whom to report? Who will report to him? He tried to clarify some of these answers during these slow negotiations, but never got a clear answer.

After another few months of again very slow e-mail negotiations, he was told that the hiring process through BizDev would take a very long time. An alternative to speed up the process would be to simply hire him with a "bonus" and then he would start working on porting the codebase. He didn't have any objections, so they scheduled a few meetings/interviews in Redmond.

The process has started. On December 5, 2019, Keyvan flew to Seattle - Microsoft headquarters - and spent the whole day there, interviewing various people and negotiating with Andrew. In the evening I took a taxi to the airport and returned to Vancouver.

He was told to wait for a call from HR. But after, Keyvan didn't hear from Microsoft for six months.. Until mid-May 2020, when an old friend Andrew announced the release of the WinGet program the next day:

Hi Keyvan, I hope you and your family are doing well - British Columbia seems to be coping well with covid compared to the US.

I'm sorry the project manager position didn't work out. I would like to take the time to say how much we appreciate your input and ideas. We've developed a package manager for Windows and the first preview will be live tomorrow at Build 2020. We'll also mention appget in our blog as we think there's a place for various package managers in Windows. Our package manager is also based on GitHub, but obviously with our own implementation and so on. It's open source too, so obviously we'd love any input from you.

Keyvan wasn't too surprised. By that time, it was already obvious that he would not be invited to work at Microsoft, this did not upset him, because he doubted that he wanted to work in such a big company.

But the real surprise awaited him the next day, when he saw GitHub repository: β€œWhen I showed the repository to my wife, the first thing she said was: β€œThey called it WinGet? Are you serious??" I didn't even have to explain to her how the basic mechanics, terminology, format, and manifest structure, even the package repository folder structure is inspired by AppGet."

β€œAm I upset that Microsoft, a $1,4 trillion company, has finally pulled itself together and released a decent package manager for its flagship product? No, they should have done this many years ago. They shouldn't have messed with the Windows Store as much as they did, Keyvan writes. β€œIn reality, no matter how hard I try to promote AppGet, it will never grow as fast as the Microsoft solution. I didn't create AppGet to get rich or famous or get a job at Microsoft. I created AppGet because I thought we Windows users deserve a decent app management experience too. What worries me is how exactly it was done. Slow and terrible communications. At the end, complete radio silence. But most of all I was touched by this announcement. AppGet, which is objectively the source of most of the ideas for WinGet, has only been mentioned as another package manager that just happens to exist in this world. At the same time, other package managers that WinGet has very little in common with have been mentioned and explained much more thoroughly."

Keyvan Beigi is not upset. He says that there is no evil without good. At least WinGet is built on a solid foundation and has the potential to succeed. And Windows users may finally get a decent package manager. And for him, this story has become a valuable experience: "Live and learn."

He explains that copying code is not a problem, that's the essence of Open Source. And he doesn't mean to copy the general concept of package/application managers. But if you look at similar projects in OS X, Homebrew, Chocolaty, Scoop, ninite, etc., then they all have their own characteristics. However, WinGet works in much the same way as AppGet: β€œWant to know how Microsoft WinGet works? Go and read an article I wrote two years ago about how AppGet worksβ€œ, he writes.

Keyvan was upset only that his work was not mentioned anywhere.

For reference. "Embrace, extend and extinguish" ("Support, build on and destroy") is a phrase that, as determined by the US Department of Justice, has been used by Microsoft to describe an industry's strategy for implementing software that uses widely accepted standards. The strategy was to expand these standards and continue to use these differences to gain an advantage over competitors.

In the case of AppGet, it cannot be said that this strategy was applied in its purest form, but some elements can be considered. Free software advocates consider it a morally unacceptable course of action and are still skeptical of Microsoft's initiative to introduce a subsystem for Linux into the Windows operating system (WSL). They say Microsoft fundamentally hasn't changed and never will.

How Microsoft Killed AppGet


Source: habr.com

Add a comment