Microsoft ha pasado los últimos 10 años adoptando software de código abierto y, en varios puntos, incluso admitiendo que ama Linux y la comunidad de código abierto. La Fundación Linux incluso elogió a Microsoft por trabajar con la comunidad de código abierto después de que la empresa se uniera a la fundación hace casi cinco años. Toda esta buena voluntad podría estar a punto de derrumbarse, gracias a una tormenta que se está gestando en la comunidad .NET, el conjunto de herramientas de desarrollo insignia de Microsoft y el marco de software central.
Una controvertida decisión empresarial dentro de Microsoft ha dejado a muchos cuestionando el compromiso de la empresa con el código abierto. Varias fuentes en Microsoft cuentan El borde que también ha enfurecido a muchos desarrolladores dentro de la empresa, pero que efectivamente se les ha dicho que no se quejen.
:no_upscale()/cdn.vox-cdn.com/uploads/chorus_asset/file/7105443/microsoftloveslinux.0.jpg)
Microsoft ha eliminado silenciosamente una parte clave de Hot Reload en la próxima versión de .NET 6 esta semana, una característica que esencialmente permite a los desarrolladores obtener comentarios instantáneos cuando están creando un proyecto y cambiar el código para ver los resultados de inmediato. Es un gran argumento de venta para el lenguaje de programación rival de Google, Dart, y el kit de herramientas Flutter, y Microsoft se ha puesto al día para llevarlo a .NET y Visual Studio.
Microsoft describió sus planes originales como «un proyecto ambicioso para llevar Hot Reload a tantos desarrolladores de .NET como sea posible», pero un cambio de último minuto lo ha dejado principalmente limitado a los desarrolladores de Windows y Visual Studio en lugar de estar abierto y disponible en múltiples plataformas. . Microsoft ha estado probando versiones casi definitivas «Release Candidate» de .NET 6 que permitieron a los desarrolladores usar Hot Reload en una variedad de entornos y plataformas con dotnet watch, incluido el popular entorno de desarrollo Visual Studio Code. Un Release Candidate generalmente significa que Microsoft lo considera listo para producción, con funciones completas y que la gente debe tener cuidado con los errores antes de que se publique por completo.
Pero un cambio de último minuto anunciado a principios de esta semana significa que Microsoft “habilitará la funcionalidad Hot Reload solo a través de Visual Studio 2022 para que podamos enfocarnos en brindar las mejores experiencias a la mayoría de los usuarios”. Dmitry Lyalin, un administrador de programas que trabaja en la función Hot Reload en Microsoft, dice que la empresa «tuvo que priorizar» y, como resultado, abandonó Hot Reload como una función de la herramienta de vigilancia dotnet. Un hilo en GitHub cuestionar la eliminación destaca la frustración de la comunidad, junto con comentarios sobre Hacker News y la publicación de blog de Microsoft.
Perdón por cualquier confusión. Para aclarar, dada la cantidad de escenarios en los que estamos trabajando, tuvimos que priorizar :(. Como resultado, Hot Reload no se lanzará como una característica de la herramienta dotnet watch. Estamos duplicando VS 2022 con soporte para VS4Mac más adelante.
– Dmitry Lyalin (@LyalinDotCom) 21 de octubre de 2021
«Es aún más decepcionante mirar el código fuente para ver que el soporte para él era ~ 1-2k líneas de código, y ese código ahora ha sido arrancado en el último momento», dice Phillip Carter, un ex empleado de Microsoft en la empresa. Equipo de F #. “Este es un claro retroceso, especialmente porque la recarga en caliente no comenzó siendo solo para Visual Studio. Realmente espero que este no sea el comienzo de un patrón «.
El borde entiende que la decisión de eliminar la funcionalidad de .NET 6 fue tomada por Julia Liuson, directora de la división de desarrolladores de Microsoft. Las fuentes describen la medida como una decisión impulsada por la empresa, y está claro que la empresa pensó que pasaría desapercibida y no generaría una reacción violenta. Los ingenieros de Microsoft que han trabajado en .NET durante años con la comunidad de código abierto se sienten traicionados y temen que la decisión tenga efectos duraderos en los esfuerzos de código abierto de Microsoft.
«Si desea una buena experiencia de desarrollador, se ve obligado a utilizar Visual Studio, lo que parece ir en contra de todos los esfuerzos multiplataforma del equipo .NET», dice Reilly Wood, un desarrollador independiente que originalmente planteó el problema de eliminación en GitHub. .
La decisión también viene después semanas de disturbios en la comunidad .NET por la participación de Microsoft en .NET Foundation. La fundación se creó en 2014 cuando Microsoft creó .NET de código abierto, y se supone que es una organización independiente que existe para mejorar el desarrollo de software de código abierto y la colaboración para .NET. Un miembro de la junta que dimitió cuestionó el papel de .NET Foundation recientemente, preguntando si está «aquí para hacer cumplir la voluntad de Microsoft en .NET Open Source, o estás aquí para ayudar a fomentar y promover una comunidad saludable».
Microsoft también una solicitud de extracción bloqueada y limitada para eliminar esta funcionalidad de Hot Reload en .NET 6 para dotnet watch. Esto efectivamente impidió que la comunidad comentara o rechazara los cambios de última hora. La comunidad ahora ha enviado su propia solicitud de extracción a revertir los cambios de Microsoft, pero es poco probable que se apruebe.
Una controversia reciente también llevó a la directora ejecutiva de .NET Foundation, Claire Novotny dimitiendo recientemente y otros cuestionando la independencia de la Fundación .NET gracias a los privilegios especiales de Microsoft. Esta última controversia sobre .NET 6 no mejorará la tormenta que se ha estado gestando en la comunidad .NET.
Nos comunicamos con Microsoft sobre los cambios de .NET 6 y .NET Foundation, y la empresa no pudo emitir una declaración a tiempo para su publicación.
Actualización, 5:18 p.m. ET: Artículo actualizado para aclarar los detalles del bloqueo de solicitud de extracción de Microsoft en GitHub.
