C # (lenguaje de programación): ¿Por qué Microsoft no contratará a algunos desarrolladores sólidos de la comunidad node.js / Python / Ruby y hará de Mono una versión completamente abierta y compatible oficialmente de .NET?

Por lo tanto, el momento de sus preguntas es muy importante.

Escribo esto en junio de 2014, aquí está el estado del juego.

Los lenguajes dinámicos

  • Python : ¿has oído hablar de IronPython (IronPython.net), ¿sabes que Visual Studio tiene complementos específicos de Python? (Herramientas de Python para Visual Studio)
  • Ruby : hola IronRuby (IronRuby.net)
  • Node.js : oye, Visual Studio también tiene complementos específicos de Node.js (Node.js Tools for Visual Studio), ahora si solo pudiéramos implementarlos con MS … oh mira Azure trata a Node.JS como una primera clase citizen (Node.js Dev Center | Azure), pero no son tan solidarios … oh, espera, incluso escribieron su propio azure-cli en node.js para hacerlo multiplataforma (La interfaz de línea de comandos multiplataforma de Azure )

Mono como primera clase

  • Microsoft en realidad ha abierto su compilador .NET bajo el nombre Roslyn (.NET Compiler Platform (“Roslyn”))
  • Los bits se unen con Mono para proporcionar una mejor experiencia para todos los involucrados. ( Mono y Roslyn – Miguel de Icaza )
  • ACTUALIZACIÓN Mayo de 2015: a partir de noviembre de 2014, .NET ha abierto las bibliotecas principales (.NET Blog). Esto significa tener bibliotecas principales de .NET disponibles en Linux y OsX (Anuncio de código abierto de .NET Core Framework, .NET Core Distribution para Linux / OSX y Free Visual Studio Community Edition).
  • Mono es compatible con una fuente de ingresos diferente, originalmente era propiedad de Novell y ahora se divide en su propia empresa (Xamarin). Por lo tanto, MS no puede “abrirlo”, ni siquiera lo poseen.
  • ACTUALIZACIÓN: a partir del 1 de abril de 2016, MS adquirió Xamarin y lo están incluyendo como una parte de primera clase de su línea de productos. Están realineando su producto principal alrededor de las bibliotecas .NET core 1.0 que serán multiplataforma por defecto. (Original: no estoy claro si MS ha intentado adquirir Xamarin o si están contentos de dejar que sea su propio proyecto. Dado que Xamarin tiene un conjunto de productos pagos, creo que es lo más cercano a ” apoyado “como lo vas a conseguir. )

En general

MS se está moviendo claramente en la dirección que quería aquí, de hecho, su plataforma Azure tiene “centros de desarrolladores” y un código de ejemplo centrado en todos los idiomas que ha mencionado.

Supongo que la verdadera pregunta aquí es ¿qué más quieres ?

La plataforma .Net es un líder en pérdidas cuyo verdadero propósito es aumentar las ventas de los sistemas operativos de Microsoft haciéndolos más atractivos para los desarrolladores. A veces es útil regalar una cosa para vender más de otra. La implementación de .Net para sistemas operativos de terceros es contraria a ese objetivo.

Además, básicamente se pregunta por qué Microsoft no hace con .Net lo que Sun hizo con Java. Si la pregunta se plantea en esos términos, la respuesta es que Microsoft vio lo bien que funcionó para Sun.

técnicamente, muchas API de Microsoft son de “código abierto”, si se hace correctamente, puede depurar la mayoría de .NET Framework.

El título de esta pregunta se puede dividir en algunas subpreguntas:

1) ¿Estás insinuando que Microsoft no tiene desarrolladores sólidos? 🙂

2) ¿estás insinuando que Microsoft no tiene desarrolladores sólidos que entiendan bien Python / Node.js / Ruby?

3) ¿Estás insinuando que usarás Mono si está completamente abierto y es compatible oficialmente con Microsoft? ¿Deben cumplirse ambas condiciones?

4) ¿Estás insinuando que no estás usando .NET porque no puede ejecutarse en otra cosa que no sea Windows?

Personalmente, no veo la necesidad de que Microsoft admita Mono “oficialmente”. Será como usar un zapato de cuero para correr 10k. Las personas podrían hacerlo si lo desean, pero simplemente incómodas. Como alguien más indica, no hay valor.

Sin embargo, si desea preguntar si Microsoft debería tener más proyectos de código abierto; bueno, es una pregunta difícil, porque tienen muchos “proyectos” de código abierto. También hay muchos proyectos abiertos creados por otras personas. ¿Qué tipo de “abierto” estás buscando?

A veces, el código abierto no es lo mejor. Por ejemplo, recuerdo que cuando trabajaba en consultoría de negocios, un cliente está particularmente en contra del uso de cualquier proyecto de código abierto, como NHibernate. Su argumento es que este es un proyecto multimillonario, ¿y me está dando un producto de código abierto?

Disfrutar de la programación es una cosa, trabajar es otra, trabajar en realidad es un 3er. Todos tenemos que comprometernos de alguna manera …

Porque tendría que abrir el código fuente. Y debido a que si se espera que admitan .NET en Linux, se espera que lleven Mono al mismo nivel de rendimiento que .NET en Windows, lo que no pueden hacer bajo (L) GPL sin costos adicionales.

Implementar cosas como .NET o CLR generalmente requiere algunos algoritmos complejos que Microsoft probablemente ya haya patentado. Para mantener la ventaja tecnológica, Microsoft seguramente no permitiría que estos algoritmos se conviertan en GPL o cualquier otra licencia de código abierto.

Además, ¿por qué lo harían? Quieren vender tanto Windows Server como sea posible, para Microsoft Mono sería 0 ingresos. ¿No harías lo mismo?

Un paso mas cerca…

Microsoft toma .NET de código abierto y multiplataforma, agrega nuevas capacidades de desarrollo con Visual Studio 2015, .NET 2015 y Visual Studio Online

1) Microsoft tiene algunos de los mejores desarrolladores del planeta.
2) Mono no es su producto, no pueden simplemente quitárselo a los creadores y llamarlo suyo.

MS admite todos los aspectos de Mono, Nodejs, Python y Ruby que posiblemente puedan.

No se trata de desarrollar Mono o cualquier otra herramienta, se trata de poner su nombre encima. Si lo hace, asume la plena responsabilidad de la herramienta y su comportamiento. No existe un descargo de responsabilidad de OpenSource “Instálelo bajo su propio riesgo” en un mercado confiable.
Si MicroSoft quisiera poner su nombre en Mono, deberán revisar y corregir TODO el código de Mono.