Microsoft почти подорвала большую часть того доверия, которое они получили от open-source разработчиков, поэтому компания скорректировала свой курс.
Десять лет назад Microsoft заявила, что любит open-source. В 2014 году гигант из Редмонда пошел еще дальше. Генеральный директор Microsoft Сатья Наделла сказал: «Microsoft любит Linux». Мало кто в Linux и в кругах сторонников открытого исходного кода им поверил. Прошли годы, и по мере того, как Microsoft осваивала проекты с открытым исходным кодом, открыла свои патенты разработчикам Linux и выпустила подсистему Windows для Linux, некоторые, наконец, поняли, что Microsoft больше не является врагом открытому исходныму коду. Как сказал основатель Linux Линус Торвальдс: «Я полностью отверг все мысли против Microsoft». Однако многих разработчиков ПО с открытым исходным кодом это не подкупило. Они по-прежнему считают Microsoft Империей Зла. Их мнение стало еще крепче, когда Microsoft удалила из предстоящей .NET 6 функцию Hot Reload. из его open-source выпуска.
Hot Reload (горячая перезагрузка) позволяет разработчикам вносить изменения в исходный код программы во время ее работы. Нет необходимости вручную приостанавливать программу или ставить ее в точку останова. Вы можете вносить изменения на лету и смотреть, что будет дальше. Благодаря этому вы можете сохранить много перезапусков приложений между изменениями, чтобы сделать вашу работу более продуктивной, сократив время, которое вы тратите на ожидание восстановления, перезапуска приложений, повторного перехода к предыдущему месту, где вы были в самом приложении, и т. д. Это большой выигрыш для многих программистов.
Hot Reload уже стало популярной функцией на других языках, таких как Dart, Nextjs, и React. Сообщество разработчиков .NET с нетерпением ждало возможности использовать его в своих реализациях .NET с открытым исходным кодом.
Но затем Дмитрий Лялин, менеджер программы Microsoft, работающий над Hot Reload, заявил, что в ближайшем будущем она будет доступна только для Windows и Visual Studio 2022 разработчиков и не будет доступна, например, для разработчиков Xamarin.Forms; F #; и .NET Native. В частности, он не будет доступен пользователям интерфейса командной строки .NET Core «dotnet watch». Для них не будет горячей перезагрузки.
Почему? Лялин написал в Твиттере объяснение: «Учитывая количество сценариев, над которыми мы работаем, мы должны были расставить приоритеты :(. В результате Hot Reload не будет выпущен в качестве функции инструмента для наблюдения за dotnet. Мы сосредоточимся на VS 2022 с поддержкой VS4Mac, которая появится позже ».
Сообществу разработчиков .NET Core это не понравилось. Core, преемник .NET Framework, представляет собой бесплатную управляемую программную среду с открытым исходным кодом. Он доступен для пользователей Windows, Linux и macOS. В бета-версии они использовали Hot Reload, а потом его удалили.
Как написал Филипп Картер, бывший менеджер программы Microsoft F# на сайте блога Microsoft: «Прискорбно видеть, что та существенная поддержка dotnet, которая имелась в течение долгого времени теперь упала. Они хорошо справлялись. Это откат назад, особенно потому, что горячая перезагрузка началась не только с Visual Studio. Я действительно надеюсь, что это не тенденция. Другие согласились: «Это огромный шаг назад для .NET как признанной кроссплатформенной экосистемы. . »
За пределами Microsoft другие программисты были более откровенными. На Ycomb Рейли Вуд написал: «Это ужасающе недальновидное решение, которое заставило меня испугаться за будущее .NET. Я испытываю огромное уважение к команде .NET, и я уверен, что не они стоят за этим ».
В Reddit были менее понимающими. «Microsoft удалила функцию, ранее доступную в предварительной версии .NET 6 (доступной в Linux), и заблокировала ее везде кроме как в Visual Studio 2022, которая работает только в Windows. Это влияет на тех пользователей Linux, которые пишут код на .NET. Все больше и больше .NET возвращается на платформу, которая не является кроссплатформенной и не является частью open-source сообщества разработчиков».
Но, прежде чем вы достанете факелы и вилы, за последнее время Microsoft осознала, что они подрывают оказанное им доверие по отношению к open-source. Скотт Хантер, директор Microsoft по управлению программами .NET, публично отступил и написал: «Прежде всего, мы хотим извиниться. Мы допустили ошибку, приняв такое решение, и ответили сообществу не сразу, чем ожидалось. Мы одобрили запрос на включение и он будет в сборке GA для .NET 6 SDK.
Итак, когда .NET 6 будет официально выпущен, все разработчики .NET, включая разработчиков Linux и других платформ с открытым исходным кодом, смогут использовать Hot Reload.