¿Por qué usar Mono?


33

¿Cuáles son los principales beneficios de usar Mono sobre Java (o cualquier otro lenguaje/tiempo de ejecución "libre" o compatible con Linux)?

Mono siempre estará detrás de los últimos desarrollos en el framework .NET, ¿por qué querría usar Mono sobre otro lenguaje/framework tradicional de código abierto (Java)?

EDIT: Como alguien mencionado a continuación, supongo que la pregunta de raíz es, ¿por qué querrías usar .NET en la plataforma Linux?

+19

Debido Mono tiene C# y C# no es Java. 22 feb. 092009-02-22 00:11:56

+1

Simplemente curioso, esta pregunta ya tiene 2 votos a favor, ¿por qué? 22 feb. 092009-02-22 00:29:04

  0

subjetivo y argumentativo? ;) 22 feb. 092009-02-22 00:32:07

+4

No creo que sea subjetivo, solo quiero razones específicas por las que desearía "luchar" con .NET en Linux, en lugar de utilizar un lenguaje que estaba destinado a ejecutarse en Linux.:) 22 feb. 092009-02-22 00:40:18

+2

"Mono siempre estará detrás de los últimos desarrollos en el framework .NET" ¿Qué quieres decir? Mono ya es más rápido que el tiempo de ejecución "oficial" de MS en algunos casos. 22 feb. 092009-02-22 00:40:25

+2

Estoy hablando más sobre características del lenguaje, como LINQ, WCF, etc. Cuando MS lanza nuevas características, siempre habrá un retraso antes de que Mono las soporte. 22 feb. 092009-02-22 00:42:03

  0

Además, existen características específicas (como compatibilidad con MSMQ en WCF) que nunca se admiten (limpia) en Mono. 22 feb. 092009-02-22 00:42:58

  0

Andy White, por favor disculpe las respuestas estúpidas que está recibiendo aquí (las mías incluidas, tal vez): 1) las personas adecuadas aún no han visto esta Q y 2) su pregunta podría ser 20 veces más clara para que la gente sepa EXACTAMENTE lo que usted NO estoy preguntando. Buena suerte. 22 feb. 092009-02-22 05:50:30

  0

No, está bien, fue una pregunta bastante horrible. (Podría ser argumentativo, supongo). Debí haber sido más especifico. 23 feb. 092009-02-23 00:16:10

62

La respuesta es bastante obvia: porque desea utilizar .Net en Linux.

Esto, por supuesto, plantea la pregunta (que creo que es realmente a lo que te refieres): ¿por qué querrías usar .Net en Linux (sobre Java)?

Por muchas razones:

  • El código común entre el servidor y, por ejemplo, una aplicación de WPF o WinForms;
  • Uso de un lenguaje .Net particular, como F #;
  • Características del lenguaje que no están en Java (cierres, sobrecarga del operador, clases parciales, genéricos de tiempo de ejecución, indexadores, delegados, LINQ, tipos de var, etc, etc.);
  • Sus habilidades o las de su equipo ya están en C#;
  • etc.
+2

Una de mis aplicaciones favoritas de Linux "Gnome-do" (similar al Mac Quicksilver) está escrita en mono. http://do.davebsd.com/ 22 feb. 092009-02-22 01:02:45

+10

Solo para identificar el uso correcto de 'beg the question': http://begthequestion.info/. Jeff Atwood comete los mismos errores todo el tiempo en los podcasts ... 22 feb. 092009-02-22 02:29:28

+2

Sí, hice filosofía introductoria en la universidad y esto también surgió. El uso que Jeff, yo y otros atribuimos al término ha sido (me guste o no) aceptado en la lengua vernácula moderna. 22 feb. 092009-02-22 02:30:53

+3

Me gusta que hayas rogado la pregunta (uso correcto) en una conversación sobre tu propio uso indebido de la frase. Bien jugado, cletus, bien jugado. 28 abr. 092009-04-28 17:06:47

  0

Aha! ¡Cletus debe ser un altísimo secreto de Jeffs! 26 mar. 102010-03-26 06:46:32

  0

Tenga en cuenta que F # es una versión ligeramente modificada de Objective Caml, que * puede * usarse de forma nativa en Linux, sin toda esa mierda de .NET. 26 mar. 102010-03-26 06:54:07

  0

¿Funciona F # en Linux? No vi ninguna opción para ello en MonoDevelop. 10 may. 122012-05-10 05:05:41


1

en una palabra? Multiplataforma

+4

Java es un lenguaje de plataforma cruzada más confiable que cualquier cosa provista por Mono. 22 feb. 092009-02-22 00:16:32

+2

Sí, pero si quiere codificar en C# fuera de Windows, puede :) 22 feb. 092009-02-22 00:17:59

+2

@fmsf: Entonces su respuesta debería ser "Porque quiere codificar en C# en Linux" y no "Forma de cruce" 22 feb. 092009-02-22 03:28:45

  0

solo por curiosidad : p obtuve 4 upvotes y 5 downvotes con esa respuesta, sí lo sé, pero fue para mantener la respuesta simple :) 24 feb. 092009-02-24 22:34:21

+3

Cheater. Puede dividir en guiones cualquier cosa y convertirla en una sola palabra. : p 24 feb. 092009-02-24 23:10:00


11

Personalmente, tengo más confianza en la plataforma Linux como servidor, pero desea utilizar C# como lenguaje de programación.


7

A algunas personas les gusta C# mejor que Java. Además, considere que C# es un lenguaje estándar ISO, mientras que Java no lo es. ¿Tal vez quiera ejecutar código ASP.NET en un servidor Linux? Hay muchas razones, de verdad.


2

Trabajé para una empresa cuyo producto principal se escribió en ASP.NET. Se dieron cuenta de que probablemente podrían aumentar su cuota de mercado si pudieran hacer que su producto se ejecutara en servidores Linux. Esto, por supuesto, sería bastante difícil si no fuera por Mono. Me dieron la tarea de pasar algún tiempo viendo cuánto (si alguno) de su código se ejecutaría bajo Mono. Esto habría sido hace aproximadamente 2 años, la mayoría compilados, pero el apoyo de Mono a los genéricos en ese momento dejaba poco que desear. Creo que ha madurado desde entonces, pero parte del código ni siquiera se analizará. El código también hizo uso de p/invoke un poco para llamar al código nativo, por lo que hizo las cosas un poco interesantes también. Sin embargo, fue divertido intentar hacerlo funcionar.


8

Quiere usar C# en el iPhone, Wii y posiblemente Android en algún momento futuro. Ver este enlace http://arstechnica.com/open-source/news/2009/01/open-source-mono-framework-brings-c-to-iphone-and-wii.ars


2

Dado que Microsoft presenta cambios en el estándar C# ISO antes de que los hagan, en teoría, Mono no NECESITA rastrear .NET. En realidad, el gran presupuesto antiguo de MS llega primero a la línea de meta.


4

Creo que todo se reduce a las preferencias personales. Me siento cómodo con C#, y quiero desarrollar aplicaciones que pueda ejecutar en mi computadora portátil Ubuntu o mi computadora portátil Vista. Por lo tanto, uso mono. Si estuviera más cómodo con Java, probablemente sea eso lo que usaría.

Sólo mis 2 centavos.


2

Como todos dicen, "ejecutar C# en Linux" o "ser multiplataforma" o lo que sea.

La razón por la que estoy interesado en Mono, y aún no me he convencido de tocarlo, es la posibilidad de aprovechar todas las ventajas de .Net que Java no ofrece. Básicamente, su pregunta se reduce a una comparación Java vs. .Net, y no voy a comenzar a recorrer un millón de puntos de comparación entre ellos (en Google encontrará decenas de comparaciones de J2EE vs. ASP.NET, que es una parte, y Java vs. C#, que es otra).

Pero, ¿cuál es la gran diferencia entre .Net y Java? Tiene que ver con la fuerza monolítica detrás de .Net (Microsoft y Novell está tratando de traducir eso a otras plataformas) o el enfoque de múltiples proveedores de Java. Solo el proceso de elegir un servidor de aplicaciones puede ser suficiente para que algunas personas elijan Mono.

¿Qué un gran proveedor monolítica como Microsoft le dan que Java no parece tener:

  1. documentación centralizada (era "Sorprendentemente buena documentación, todo en un solo lugar", pero varias personas me han dicho que soy mal)
  2. no hay necesidad de tomar decisiones de plataforma individuales (por ejemplo, ASP.NET o ASP.NET, no servlets JSP + + JSTL? + Eje)
  3. otras cosas que estoy olvidando

Y entonces t Aquí están las otras diferencias masivas: Java es un lenguaje único y Mono (creo) puede ejecutar código compilado CLR desde una variedad de idiomas.

  0

FWIW, creo que el doco de .Net chupa al lado de Java. Extraño. 22 feb. 092009-02-22 07:19:38

  0

Sí, pensé que algunos podrían sentirse así. Tendríamos que hacer algún tipo de comparación, o hacer otra pregunta sobre SO al respecto :) 22 feb. 092009-02-22 12:45:51

  0

Estoy de acuerdo con el mono ... Estoy tan pendiente de Java Doc. 24 feb. 092009-02-24 17:41:12

  0

Hmmm ... podría ser que Java ha avanzado y he estado jugando en otros idiomas todo este tiempo :) Solo recuerdo que Winforms estaba muy bien documentado y que los Javadocs de Swing eran incomprensibles. Pero estamos hablando de 2004/5. 24 feb. 092009-02-24 22:23:33

  0

Monkey and Joe, corrigió mi respuesta para dar cabida a los datos :) 24 feb. 092009-02-24 22:25:15

  0

@yar: Creo que su punto 1) no es correcto. Java también tiene documentación centralizada. Y, estoy de acuerdo con otras publicaciones que la documentación de Microsoft .NET apesta. 11 dic. 092009-12-11 23:45:17

+1

Además, Java es un idioma único, pero la JVM tiene muchos idiomas: Clojure, Grooby Scala solo por nombrar algunos. 11 dic. 092009-12-11 23:46:49


2

Mono está atrasado en algunas cosas, pero muy por delante en otras. Por ejemplo, Mono admite SSE y compilación completa por adelantado: integrada. Por otro lado ... a Mono le tomará algún tiempo implementar todas las novedades en la próxima versión de .net ... por ejemplo ... las bibliotecas paralelas bastante extensas.


0

¿Cómo es que nadie ha mencionado que Linux es gratis?

+1

Porque eso no tiene nada que ver con la pregunta. La pregunta no era por qué usarías Mono en lugar de .NET, pero por qué usarías Mono en lugar de algo más nativo de Linux. 04 nov. 092009-11-04 20:41:38

  0

más nativo? ... 01 jun. 122012-06-01 12:26:42


0

He usado mono como un compilador cruzado, en efecto. Agregué algunas líneas "ejecutivas" a un archivo existente de compilación java/ant para llamar a mono como el compilador, por lo que hubo un único proceso de compilación de línea de comando completo.

Tuve que escribir una capa de envoltura C# alrededor de un código de PC que tenía que usar nuestro código java-on-linux, pero no pude exigir que se iniciara Visual Studio (en una computadora separada) solo para hacer el proceso de salida y construcción.


1

Cualquiera que use Mono se enfrenta al peligro de patente de software de Microsoft.

Es por eso que no solo debe evitarse Mono para nuevas aplicaciones sino también C# en primer lugar.

La migración a Mono solo tiene sentido si ya te has quedado con Windows y quieres escapar.

Why free software shouldn't depend on Mono or C#