.NET Core - Volviéndose salvaje y de código abierto. Microsoft, ¿por qué te tomó tanto tiempo?

Publicado: 2022-03-11

“Algo misterioso se forma, nace en el vacío silencioso. Esperando solo e inmóvil, está quieto, pero en constante movimiento…”

Verdaderamente, dos de los eventos más grandes en la historia humana simplemente ocurrieron uno tras otro:

  • La misión Rosetta de la ESA aterrizó suavemente su sonda Philae en un cometa, la primera vez en la historia que se logra una hazaña tan extraordinaria.

  • Fuentes abiertas de Microsoft .NET

¡El primer evento es un gran paso para la humanidad, y el segundo es aún mayor para Microsoft!

La Misión Rosetta ocupará su lugar en los libros de historia y será recordada tan a menudo como recordamos a Laika. Fue imaginado y planificado cuidadosamente durante una década, llevó a la humanidad un paso más allá y demostró que la tecnología desarrollada hace una década todavía puede hacer cosas asombrosas.

El segundo evento fue una sorpresa para muchos. No se publicitó mucho, y estoy seguro de que cada detalle de su anuncio no fue planeado hace una década; pero era obvio que Microsoft tomó esta ruta hace algún tiempo, y .NET core no es lo primero que empujaron hacia el código abierto (Roslyn).

¿Es .NET de código abierto? Finalmente, el .NET multiplataforma que estábamos esperando.

Entonces, ¿realmente la humanidad necesitaba una sonda en un cometa? Tal vez no, ¡pero es increíble que haya aterrizado! ¿Microsoft necesitaba una epifanía para comenzar con el código abierto de .NET core? ¡Sí! ¡Lo necesitaban hace más de una década!

¿Qué cambió en una de las mayores empresas de desarrollo de software del mundo? ¿Qué los hizo seguir el camino de OSI?

Según el Blog de .NET Framework, hay dos razones para esto:

  • Sentar las bases para un .NET multiplataforma
  • Construya y aproveche un ecosistema más fuerte

Pero, ¿por qué querría Microsoft ayudar a los desarrolladores a crear software .NET multiplataforma? Esto va en contra de todo lo que han hecho antes. Microsoft ha estado impulsando sus propios sistemas de infraestructura durante años. Linux y Mac eran enemigos que debían ser derrotados, no aliados. ¿Qué es todo esto?

Cualquiera que sea su motivación real, los desarrolladores están sacando lo mejor de esto. Me gustaría agradecer a Microsoft por dar este paso. ¡Mejor tarde que nunca!

El impacto a largo plazo de la tecnología de código abierto de Microsoft será enorme. El verdadero .NET multiplataforma tendrá un impacto directo en el costo de hospedaje, licencias y mantenimiento. Esto simplificará la venta de aplicaciones .NET en una magnitud que ni siquiera puedo imaginar.

He pasado gran parte de mi carrera profesional escribiendo código. Mi primer amor fue Borland Pascal, y “Blue Screen” era algo que miraba con mucho respeto en ese entonces. Luego usé una variedad de plataformas y lenguajes de desarrollo, pero seamos honestos: desde que Microsoft lanzó .NET, Visual Studio es el mejor entorno de desarrollo disponible en la actualidad. Es una ventanilla única para todo lo que un solo desarrollador o equipo pueda necesitar para crear cualquier tipo de aplicación. Está estrechamente ligado a las excelentes funciones de los compiladores de .NET, y cada nueva versión de Visual Studio parece un producto que no se puede extender más; sin embargo, Microsoft logra sorprender continuamente al incorporar nuevas funciones interesantes con cada nueva versión de Visual Studio.

La creación de software es un gran proceso, que hace que todos los desarrolladores que he conocido se sientan creativos, inventivos y satisfechos. Pero, ¿alguna vez ha intentado vender o apoyar procesos de ventas? No estoy seguro de que todos los vendedores puedan decir lo mismo que los desarrolladores de software sobre su parte de la ecuación. Vender para una empresa de desarrollo de software es horrible: debe preocuparse por muchos factores que no tienen nada que ver con el desarrollo de software real. Las personas que trabajan en el departamento de ventas tienen que demostrar/convencer a los clientes de que el producto/servicio que se vende es el mejor que los clientes pueden obtener por el precio que se paga; por lo tanto, siempre es crucial reducir el costo del desarrollo y mantenimiento del software. El mundo real nunca deja de calcular valor versus costo.

Por otro lado, crear una empresa nunca ha sido tan fácil. Si tiene una buena idea, no es demasiado difícil recaudar fondos para crear "algo" (el nombre más reciente para "algo" es Producto Mínimo Viable, pero probablemente se actualizará en el futuro), mostrar "algo" al mundo, obtenga algunos comentarios positivos, obtenga más fondos y repita hasta que comience a ganar dinero, venda su empresa o fracase.

¿Cuál es la forma más fácil de reducir el costo de un producto de software? Bueno, el desarrollo es algo que debe pagar y, en la mayoría de los casos, solo pagará la tarifa por hora de sus desarrolladores, independientemente de la plataforma de desarrollo que estén utilizando; por lo tanto, la forma más sencilla de reducir costos es implementar su software en un entorno que no requiera licencias adicionales. ¡Aquí es donde Microsoft ha fallado una y otra vez! Podríamos tener debates acalorados sobre el rendimiento, la calidad del software, la escalabilidad, etc., pero es fácil ver que la plataforma .NET puede hacer frente fácilmente a cualquier desafío técnico que se le presente. En muchos casos, creo que muestra su superioridad sobre otras plataformas; pero no suelo ganar debates sobre implementación y licencias de infraestructura.

El mercado comenzó a alejar a los desarrolladores de la plataforma de desarrollo de Microsoft y sí, yo soy uno de esos desarrolladores. Adopté Node.js como plataforma de back-end principal, independientemente del hecho de que todavía no está lo suficientemente maduro para hacer frente a todo lo que necesito. Me encanta WebStorm y aprecio el gran trabajo que JetBrains hizo en él, pero me encantó Visual Studio 2013 aún más. ¡Sí, soy consciente de que puedo escribir aplicaciones Node.js en VS! Pero cuando lo empujan de C# a JavaScript, de SQL Server a PostgreSQL, de IIS a Apache, ¿por qué molestarse en usar PC basadas en Windows?

Yo era un verdadero evangelista de Microsoft, incluso antes de que saliera .NET y ciertamente antes de que .NET fuera de código abierto y multiplataforma. Pero todo eso murió cuando nos quitaron (el dedo) en Skype. Siempre me ha gustado hacer aplicaciones para plataformas Windows. Pasé mucho tiempo aprendiendo consejos y trucos del oficio, y creo que era muy bueno en eso. Sin embargo, el mercado de desarrollo de software cambió mucho en la última década. Las empresas emergentes están floreciendo en todas partes y cada nuevo cliente busca la solución más rentable. Microsoft no pudo mantener el ritmo en este nuevo mercado, y yo soy solo uno de los muchos desarrolladores de Microsoft que reemplazó su computadora portátil con Windows por una MacBook. Microsoft finalmente se dio cuenta de que al brindarnos la opción de implementar nuestras aplicaciones en plataformas de código abierto, las grandes comunidades de desarrollo de Microsoft mantendrán el uso de sus herramientas y, eventualmente, atraerán más clientes hacia ellas.

Microsoft ha dado un pequeño paso hacia un gran cambio y tiene las mejores herramientas de desarrollo y una gran comunidad de desarrollo. ¿Qué pasaría si recibiésemos un sistema operativo de código abierto además de un gran IDE? “Ni yo me atrevo a calcular las probabilidades”.