Sun vs Microsoft

Hola amigos, estoy muy contento de que exista una comunidad como esta. Estoy en etapa de aprendizaje y actualmente el mundo del software se esta dando entre Sun, Microsoft y Adobe según mi punto de vista. Pero la pregunta del millon, actualmente la lucha entre Java y C#/.Net, esta muy de moda, algunos amigos estan programando en C# y pues me hablan maravillas de este lenguaje y del poder que tiene .Net, pero yo oy de la idea de que todo de lo que venga de Microsoft es como esclavizarte a su plataforma y pues ahora que Sun libero Java pues el crecimiento en cuanto a actualizaciones, seguridad, y un gran etc, ya que la comunidad es grande y por tal siempre van a estar al tanto de lo que pase con Java y su rival Microsoft, pero me gustaria que dieran su punto de vista sobre este tema desde un punto de vista neutral, ¿Ustedes creen que la tecnología .Net llegue a desplazar a Java? ¿Cual es su punto de vista entre la tecnologia Java y la .Net? ¿Creen que con el proyecto Mono Microsoft logre amplitud de plataformas por medio de este proyecto? ¿Mono es rival de Java....aunque sabemos que mono en si no es un lenguaje de programación, pero que a su ves implementa varios lenguajes entre ellos Java y que su "fuerte" es la tecnología .Net pero para linux...y repercutirá en cuanto a que las empresas se inclinen a .Net utilizando Mono?.

Espero no volver con lo de siempre de quien es mejor si Sun o Microsoft, esto lo quiero ver desde punto de vista neutral porque en varios foros se inclinan de una tecnologia a otra, y pues espero que en este forno no sea así. Desde mi punto de vista y por lo que me "cuentan" creo que .Net es un gran "invento" de Bill Gate, pero conforme se mueve el mercado laboral ustedes que piensan sobre esto.

Esta guerra esta empezando y el gran ganador serán los programadores que tendremos tecnologías a escoger pero tu por cual te irías.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

.NET vs Java

C# es uno de los lenguajes de .NET pero puedes usar otros como C++ o VB.NET, aunque lo mejor es usar C# porque es el lenguaje diseñado especialmente para .NET; cuando salio .NET la verdad es que sí traia varias mejoras comparado con Java, pero ahora con Java 5 podria decirse que ya están parejos en cuanto a performance y cosas asi.
La diferencia para mi sigue estando en los frameworks disponibles. Hay muchisimas librerias y frameworks completos para Java que todavia no terminan de migrar a .NET (como Spring o Hibernate), o que simplemente nadie ha tenido el interés de migrar. En .NET no existe algo similar al contenedor J2EE, esa arquitectura la hacer con los web forms y otros componentes que registras en el web server pero está totalmente amarrado a IIS, o a windows en caso de publicar componentes como servicios de COM+. Prefiero la arquitectura de JNDI y cosas asi, tiene más sentido para mi pero tal vez sea porque tengo ya muchos años programando en ambientes tipo UNIX.
En cuanto a la cuestión filosófica, prefiero Java que .NET porque Java lo puedo correr en mi mac, o hacer deployment en Linux o Solaris, o en el peor de los casos pues ponerlo en Windows si se requiere. Pero .NET nada mas jala en windows. Lo de Mono, pues no le veo mucho futuro porque la comunidad de desarrolladores en Linux no lo han querido adoptar por el miedo (bastante real) a que Microsoft un dia saque de la manga unas patentes de software que forcen a Mono a cerrar hasta que cambien todas las clases afectadas (o el CLR incluso). En Mexico las patentes de software no son válidas, pero aun asi, el golpe seria devastador. Novell se ha protegido firmando un pacto con Microsoft en el que se comprometen a no demandarse por infringir sus patentes correspondientes, y tampoco demandar a sus clientes. Asi que si haces algo en Mono lo tienes que poner en SuSE porque si lo pones en RedHat podrian demandar al cliente (en USA al menos).
El principal problema de .NET es su creador, que es una empresa monopolistica que no es precisamente reconocida por sus prácticas de alta ética en el mundo de los negocios. Si usas .NET en la práctica estás amarrado al mundo de Windows. Tienes que programar en sus herramientas (Visual Studio), tienes que usar su runtime, tienes que usar el IIS para las aplicaciones web, puedes usar una base de datos que no sea SQLServer pero obviamente lo mejor es que uses SQLServer si quieres usar ObjectSpaces, etc. En general el problema es que Microsoft vende de todo (sistema operativo, base de datos, web server, plataformas de desarrollo, etc) asi que todos sus productos obviamente estan hechos para funcionar mejor cuando los integras con todo lo demas que tambien es de ellos. Sun no tiene una base de datos o un web server, asi que Java funciona con Oracle, PostgreSQL, MySQL, Apache, IIS, iPlanet, etc. Puedes programar en NetBeans, SunStudio, Eclipse, Idea, JDeveloper, etc. es mucho más abierto.
Yo trabajé con .NET en 2002 cuando apenas habia salido, y fue un dolor de cabeza por la falta de frameworks. Era como trabajar con Java pero sin JBoss ni Spring ni Hibernate ni Struts ni iBatis ni nada, no habia nada disponible, tuvimos que hacer nuestros propios frameworks. En aquel tiempo nos repetian mucho en donde yo trabajaba que Gartner (famoso por hacer predicciones que muchas veces son completamente erróneas) decia que en 5 años el 40% de todos los desarrollos enterprise iba a ser en Java, 40% en .NET y el 20% en todo lo demas que existia. Esto hoy obviamente no es asi; creo que .NET no ha tenido el auge que esperaban, no ha podido desplazar a Java como esperaban, y ese 20% es mucho más que grande en realidad, sólo hay que ver todos los sistemas que hay en PHP, Perl y Python.
En 2003 volvi a trabajar en .NET y seguia siendo un dolor de cabeza, porque Microsoft se opone terminantemente al software libre y le mete ideas en la cabeza a los clientes de que el software libre es satanico y tu hijo nacera sin ojos si lo usas, asi que si estas en un proyecto en .NET y llega Microsoft y le dice cosas al cliente, dile adios a poder usar cualquier libreria de software libre que haya para .NET; tienen que ser solamente los componentes que hagas tu asi que siempre estas inventando el hilo negro.
Actualmente no sé cómo siga eso. Checa SourceForge, hay gran cantidad de proyectos en C# pero no se comparan con la cantidad de proyectos en Java. Creo que uno de los grandes problemas de .NET es este (y mucha gente me va a odiar por lo que voy a decir, aunque tal vez nadie de este foro): Hay mucha gente que se dice desarrollador de software pero realmente nada mas saben medio programar en visual basic, que es una abominación de lenguaje. Cuando salio .NET y MS anunció que se terminaba VB como tal y tenian que migrar a VB.NET, pues muchos se empezaron a pasar a .NET pero sin tener la menor idea de lo que es la programación orientada a objetos, ni de arquitectura de sistemas complejos ni nada de programar en capas ni separación MVC ni nada de eso. Asi que cuando entras al mundo de .NET te encuentras mucho codigo bastante horrendo creado por estas personas, que ademas obviamente cobran bien barato y pues solamente alguien que te conozca estará dispuesto a pagar lo que vales si eres alguien que conoce bien de arquitectura de sistemas, buen diseño de aplicaciones, etc en vez de solamente alguien que repite lo que se aprendio de "best practices" y "design patterns" sin saber realmente cuándo aplicarlos.
Bueno, fue una respuesta larga, espero sirva de algo.

RE:

Que respuesta tan interesante la de ezamudio.

Antes que nada, he de aclarar que yo no he desarrollado sobre .Net a nivel avanzado, así que me pierdo la parte de enumerar las ventajas sobre esta tecnología.

De lo poco que he visto, es que los lenguajes .Net son lenguajes menos controlado, y es más fácil escribir cosas 'horrendas' como describe ezamudio. No como Java, que de alguna manera te obliga a tener un buen código escrito.

La batalla a mi parecer no se decidirá por quien es el mejor lenguaje o la mejor tecnología ya que ambas van muy a la par. La ventaja yo la veo (pensando como empresa que decidirá que tecnología implementar) es la flexibilidad en cuanto a la plataforma. El mayor número de recursos humanos a utilizar lo tienen las empresas grandes, así que por el momento dejamos fuera de esto a las empresas medianas y pequeñas para centrarnos en la necesidad de las grandes, quienes hacen la mayor parte de demanda de desarrolladores.

Es difícil ver una empresa grande con una infraestructura basada en el sistema operativo Windows (en cualquiera de sus versiones). Lo cuál de inicio descarta que los que ya tienen arquitecturas sobre Mainframes, Unix, AS400, etc... se decidan por .Net, ya que .Net solo corre en Windows salvo que utilicemos Mono, el cuál tiene muchas desventajas, principalmente su desarrollo muchos pasos detrás Microsoft con .Net. Viéndolo de esa manera, .Net es muy poco atractivo para la empresa grande, quien en estos casos solo opta por quien le genera el mínimo cambio en infraestructura, como Java.

Espero me haya explicado bien en mi comentario, que la discusión continúe :-)

Buenos comentarios

Ambos son muy buenos comentarios. Si acaso haría la observación de que Sun sí tiene un Web Server y si no me equivoco una muy primitiva Base de Datos. Pero no significa que solo puedas usar sus plataformas o servicios ( de hecho personalmente me gusta más cómo corren las aplicaciones JEE en WebLogic que en SJSAS :P ) .

Hay otro punto interesante respecto a C# vs Java. La disciplina que tomas como programador. En realidad la mayoría de los lenguajes de .net no te imponen una verdadera disciplina y buenas prácticas en el desarrollo. El hecho de que C# sea tan permisivo en el uso de goto ( estoy solo poniendo un ejemplo ) puede tentar a la gente que a penas comienza, a no pensar de manera tan estructurada y por ende provocar códigos difícilmente comprensibles, poco robustos y una cantidad tremenda de problemas de mantenimiento.

Por esos y otros muchos motivos, personalmente me quedo con Java.

Saludos,

Imagen de iberck

Hola a todos. Realmente no

Hola a todos.
Realmente no he programado cosas complejas en la plataforma .net, solo he probado las características fundamentales de c# y me parecen muy potentes.
Estoy completamente de acuerdo con sus comentarios en cuanto a los frameworks existentes en java contra los que hay en .net. (cuanta envidia le ha de dar a los desarrolladores de .net no tener apache) y en el soporte multiplataforma que da el lenguaje.
En cuanto al proyecto mono, escuche que no se ha migrado al 100% lo existente en el nucleo original (no se como vaya el status) pero de cierta forma los usuarios de linux tienen un soporte y se pueden sentir tranquilos mientras no entren los conflictos legales.

Desde mi punto de vista, la plataforma .net tiene ventajas y desventajas a comparación de java, las ventajas no las comentaré por que todos hablan de ellas. Sinceramente soy defensor del lenguaje java y encuentro más ventajas que desventajas a comparación de .net, por lo tanto, intentaré listar unas cuantas desventajas de java vs .net de acuerdo a mi experiencia:

Primer caso:
Hace poco desarrolle una aplicación que modelaba torres en tercera dimension, las cuales debían ser exportadas hacia autocad .... Nunca encontre una librería que exportara java3D hacia autocad en tercera dimensión (formato dfx). A lo cual tuve que hacer una librería desde cero para realizarlo (por cierto, por que no la he subido a sourceforge ?? jeje ) , algunos desarrolladores de autodesk me sugerían utilizar puentes hacia controles active x (introducir una capa de indirección y por lo tanto menor rendimiento), lo cual no se me hizo conveniente. Tal vez si hubiera sido un programador de .net, facilmente podría haber descargado la libreria de la página oficial de autodesk, pagar una licencia y empezar a programar sin los inconvenientes que les platico.

Segundo caso:
Desarrolle una aplicación desktop (en swing) la cual debía mostrar un calendario, pendientes, lista de tareas al estilo outlook.... Nunca encontré una libería open source en java que lo realizara de forma profesional :( .... solo hay para .net

Desde mi punto de vista, al ser .net una plataforma integrada para el desarrollo sobre windows, tiene un mejor soporte para tareas nativas (tal vez escaneo de documentos, lectura del registro, decoración de ventanas, etc ... ).

Otra de las ventajas que yo le veo a .net es la rapidez con que se ejecutan las ventajas a comparación de java.
Y por último, la estrella de .net .... los WIZARDS. El arma de doble filo que le da poder a los programadores inexpertos para presumir un status, pero que en verdad simplifican muchas tareas repetitivas y aburridas las cuales uno conoce de memoria.

Como comente anteriormente, no soy un programador de la plataforma .net ni trato de defendarla, el comentario solo es para platicar mis experiencias en cuanto java vs .net

iberck

Imagen de ezamudio

Contrapuntos

Hola a todos nuevamente, algunas respuestas a sus comentarios (pongo todo aqui para no tener que responder indivualmente a cada uno):

A lo que diijeron en cuanto a la facilidad para hacer cosas horribles en .NET vs Java: creo que un mal programador puede hacer porquerias en cualquier lenguaje :) y por otra parte, si eres un buen desarrollador, puedes hacer código elegante hasta en PHP. Por algo Microsoft está impulsando tanto los Design Patterns, Best Practices, etc pero a veces sale peor el remedio que la enfermedad y uno se encuentra con sistemas realmente monstruosos donde alguien decidió usar Design Patterns como si quien abre el refri con hambre y decide echar un poco de todo en una olla para hacerse algo de comer... de repente te encuentras singletons donde no deberian estar, simplemente porque lo decidieron usar, o factories donde no ofrecen ninguna ventaja y simplemente degradan el desempeño y complican el código innecesariamente... yo insisto en que el problema principal es que en .NET hay mucha gente metida que realmente no tiene experiencia en programación orientada a objetos.

En cuanto a las empresas grandes que tienen mainframes y cosas asi... efectivamente alguien que ya tiene una inversión fuerte en sistemas UNIX o cosas similares, está más con SUN o IBM y por lo tanto verá a Java como el camino a seguir. Pero desafortunadamente en México sí hay varias empresas de tamaño considerable que tienen infraestructura completa en Windows, con su correspondiente departamento de sistemas lleno de gente que esta todo el tiempo instalando antivirus, parches de seguridad, reiniciando equipos, aplicaciones, etc. Y créanme que algunos son sistemas críticos para la operación de la empresa. Y esos sistemas pues están migrando a .NET o simplemente todos sus desarrollos nuevos tienen que ser en .NET y Microsoft está metidísimo ahi, llevando consultores que a veces proponen malos diseños porque siguen ciegamente los best practices y design patterns (y prácticamente obligan a hacer las cosas como ellos dicen). No he tenido el gusto de trabajar con consultores de SUN así que no sé si hacen algo parecido y quieren convertir cualquier desarrollo en un showcase de todo lo que se puede hacer con Java y sus herramientas y frameworks.

Y en concreto para iberck: efectivamente, si ya hiciste la librería y tu cliente y tú no tienen problema con liberarla, pues ponle un LGPL o GPL, o ASL o alguna licencia que te agrade y súbelo a SourceForge! así la siguiente persona que tenga que resolver algún problema similar al tuyo, no tendrá que armar una librería desde cero, sino que podrá usar la tuya, incluso expandirla si es que no cubre por completo sus necesidades, o avisarte si descubre algún bug, incluso mandarte la corrección y así te beneficias de que alguien más lo utilice.
En cuanto a la disponibilidad de librerías para resolver tareas muy concretas: en .NET tal vez haya muchas pero como dices son comerciales, no hay nada abierto, y por supuesto solamente funcionan en Windows, que tal vez no sea un gran problema porque si estas haciendo algo en .NET seguramente trabajas en Windows y vas a hacer deployment en Windows, pero si por ejemplo estuvieras usando Mono en Linux no podrias usar tampoco esa libreria.
AutoCAD solamente corre en Windows, así que es más fácil para ellos hacer plugins y cosas así en .NET que en cualquier otra cosa.
En cuanto al app de contactos, outlook, etc, no te servia nada de esto? También hay librerías comerciales para Java, no solamente software libre:
jpim (libre)
Java Calendar Tools (libre)
Java Calendar Component (comercial)

Y por último, en cuanto a los wizards: esos no son parte de .NET sino de Visual Studio. Si usas MonoDevelop no trae los mismos wizards... en Eclipse vienen algunos wizards estandar para creación de clases y proyectos, y los plugins por lo general traen sus wizards también. NetBeans, JDeveloper, Idea, etc todos traen sus wizards. Tal vez no has encontrado tu IDE ideal, o los plugins para tu IDE que te faciliten las tareas que realizas cotidianamente?

Exelentesta

OK. Esperaba opiniones encontradas, pero la verdad el punto de vista que tiene cada uno hace que este tema tenga mucha tela de donde cortar...

Espero que no sea el fin de este interesante tema y esperamos mas de todos los que pertenecemos a este portal. Y muchas gracias por sus comentarios

Imagen de iberck

Re: Contrapuntos

Hola ezamudio, gracias por los comentarios:

De acuerdo contigo en el tema de las best practices. Me he topado con
desarrollos donde los patrones de diseño agregan niveles de indirección
inecesarios a los proyectos, y así como he visto porquerias de código en asp,
las he visto en jsp.

En cuanto a la librería que exporta elementos 3D hacia autocad:
Tengo presentes las ventajas que implica subir un proyecto a sourceforge, la librería no
la he liberado por custiones legales con el cliente pero estoy realizando una pequeña
replica =P. El punto era poner una ventaja real en manifiesto.
Efectivamente las licencias son comerciales, pero especificamente
para ese proyecto, rogaba que por lo menos existiera algo comercial en java y nada!
Tal vez asi como autocad, existan algunas otras aplicaciones que solo corran en
windows y sus componentes esten escritos solo en .net

En cuanto al calendario estilo outlook: Me alegra que ya existan más herramientas, en
su momento (2005):

- jpim no me sirvio para lo que necesitaba
- Java Calendar Tools (aún no existia una release)
- Java Calendar Component (como lo comentas, era de uso comercial)

Por último:
Esta claro que los wizards no son parte de .net
si no del entorno de trabajo que existe para windows y que cada entorno de desarrollo
cuenta con un set de wizards para hacer x o y tarea.

El objetivo de ese punto era resaltar el poder que tienen
los wizards en .net. Ojo, este punto lo escribo de forma subjetiva, solo
fué por comentarios de programadores en .net que dicen que X o Y cosa
lo hacen en 3 patadas con un wizard.

Imagen de jali

Net vs Java

Bueno ps yo si he tenido experiencia desarrollando en ambos lenguajes. Jejeje se podria decir que a lo grande. Mis puntos de vista son estos:

Con conocimientos de Java .Net entra bastante ligerito.
Como dijo mi anterior jefe "Programemos en .Net por que los programadores .net salen de abajo de las piedras y no le pagamos lo que te pagamos a ti" jajaja y eso yo lo he visto que de java tambien. Hay cada porqueria de codigo jajajajaja . El nivel del programador es lo que cuenta, apoco no?
Wizards... Ahh como me facilito la vida generar grids en .net, lo cual en java me basaba en opensource para encontrar ibrerias o componentes ajax. O sino... a hacerlo desde cero como comento iberck. Y si, uso mi wizard de netbeans para generar clases y cosillas asi.

.Net me gusto jajajaja, pero prefiero mil veces Java.
La principal desventaja de .Net es la arquitectura cerrada (a huevo Windows) y Java podemos hacer nuestro deploy en tomcat..jboss, bla bla, los mencionaron antes.
y otra es todo el codigo "code behind" que no es mas que.... como decirlo....
Basura??
jajajaja es un buende codigo que el "Programador .Net" ni cuenta se da jajaja. pero site das cuenta y le mueves.... ps ya no jalo.

Arquitectos de sistemas, hay muchos en .Net(yo trabaje con uno) qye no sabia ni que era un patron de diseño, leia cosas de best practices y el al quererlo implantar el sistema perdia muchisimo performance. Feo!

Y pues ambos tienen ventajas y desventajas, simplemente es cual nos acomode mejor.

Yo soy Java, y que chido que se abran este tipo de espacios para discutirlo.

Jali

Mi punto de vista

Para aplicaciones de escritorio SIMPLES, se pueden desarrollar en JAVA, y portar a cualquier plataforma.

Pero al momento de desarrollar aplicaciones importantes (criticas en precisión y rapidez), lo más lógico sería desarrollarlo en .net que genera un programa objeto intermedio.

Microsoft se va a encargar de asegurarse que mono sigue en pie, en última instancia lo compraría, pero es mejor negocio para Microsoft que mono siga adelante. No se extrañen que muy pronto aparezca un software para migrar de java a .net.

Java es 100% decompilable, hay que tener huevos para realizar una aplicación completa redituable en JAVA, ya que fácilmente te la decompilan y se quedan con tu código fuente. Esa ventaja tiene .net que es mas difícil de decompilar.

Imagen de ezamudio

eh?

Yo pienso justamente alrevés, el escritorio siempre ha sido el punto débil de Java porque la interfaz gráfica de Swing apesta y la de AWT es insoportable. SWT es mejor pero es pesado y quita portabilidad.

De lo demás ya no te entendi nada. .NET genera genera un programa objeto intermedio? y Java no? cuando compilas un archivo .java y se genera el .class, qué crees que contiene dentro el .class? bytecode, que interpreta y ejecuta la JVM, compilándolo a lenguaje máquina la primera vez que lo ejecuta (just-in-time compiling no es invento de .net ok?)

Microsoft no puede comprar Mono porque Mono no está a la venta, es un proyecto de software libre. Pueden pagarle a programadores para que den mantenimiento, soporte, asistencia técnica, etc pero no pueden comprarlo.

.NET es 100% decompilable, yo he decompilado clases de .NET, no tiene mayor ciencia que bajar un decompilador y te muestra el codigo completo en C# (o VB o C++ si prefieres). Para entregar una aplicación en Java cuando hay riesgo de que te vayan a decompilar el código, haces lo mismo que harías en .NET: pasas tus clases por un ofuscador.

.NET no es más difícil de decompilar que Java. netdecompiler.com es un ejemplo; busca Salamander y Anakrino en Google para ver otros dos ejemplos de decompiladores de .NET. Para Java estan jad y jode (seguro hay mil más). Para ofuscar tu código en Java también hay varios proyectos, un ejemplo es ProGuard.

Creo que es importante mantenerse objetivos en estas discusiones y no meter FUD... te mandaron los de MS a echar falsedades aquí, o simplemente no conoces Java y por eso dijiste eso de que .net genera codigo intermedio y que Java es decompilable? Ambas cosas son ciertas, pero lo haces sonar como si .NET no fuera decompilable y como si Java no fuera portable porque no genera codigo intermedio...

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time.
Steve Riley

No creo que Microsoft saque

No creo que Microsoft saque tal patente (en referencia al mensaje de ezamudio) por un motivo: Ha liberado buena parte del codigo de .NET (al menos en su versión 2.0).

Microsoft está intentando con .NET ganar mercado y la única forma de conseguirlo no es creando un muro de hormigón entre los desarrolladores de software y las características de su plataforma. La idea de .NET es conseguir un codigo portable tipo JAVA. Si existe el proyecto MONO es precisamente porque han sido liberadas partes de dicha arquitectura ... en la Web de Microsoft encuentras enlaces a los documentos en los que se explica en profundidad como funciona la arquitectura, como se compila el código intermedio, sus características y sus normas.

Si MONO no está a la par de su homólogo para windows es sencillamente porque a la inmensa mayoría de los programadores que trabajan bajo Linux odian todo lo relacionado con Windows.

No digo ni que .NET sea lo mejor ni JAVA lo peor... son arquitecturas diferentes, cada una con sus ventajas e inconvenientes (odio java por gestionar los punteros por mi y con .NET ando picado con el mismo motivo porque para manejarlos tienes que recurrir a código especial).

Aparte de eso veo bastante positivo que estén las dos arquitecturas en el mercado, ya que ambas se benefician de ello (básicamente las mejoras de una plataforma sirven de inspiración a la otra) y luego, por otro lado, cada plataforma acaba teniendo un ámbito de aplicación en el que la otra flojea.

Que me deciis que .NET tiene mucho código comercial... si, por supuesto, pero eso es porque no hay mucha gente que saque códigos y librerías de código abierto (aunque cada vez hay más). Lo normal es que la situación se vaya equilibrando, para ello sería interesante que MONO se pusiese al día, ya que desde luego Microsoft no va a poner muchas pegas si consigue que programas .NET funcionen perfectamente en Linux (abre su mercado).

No defiendo mucho a JAVA porque, sinceramente, no lo necesita. Ha demostrado su grán funcionalidad al estar basadas multitud de aplicaciones en dicha plataforma (lavadoras, lavavajillas, programas, servicios, aplicaciones industriales, juegos para moviles, etc). Simplemente intento hacer ver que .NET no es tan mala opción, su defecto es que lleva varios años de retraso con respecto a JAVA, eso y que su nacimiento se debe a Microsoft hace que su implantación fuera de Windows sea más lenta de lo normal.

Y nada, he reavivado un poco este hilo porque acabo de verlo y me parecía oportuno dar mi opinión al respecto.

Un saludo.

Imagen de ezamudio

No es libre

No han liberado nada. Abrieron ya varias clases pero es una licencia "read-only", solamente puedes ver el código, no puedes hacer modificación alguna para uso personal ni comercial, y la licencia excluye a cualquier persona que esté desarrollando algo para competir directamente con .NET o clonar su tecnología (o sea, Mono). Eso no es libre.

Mono existe porque se han podido basar en el estándar que ECMA publicó, el cual abarca lo de la máquina virtual (CLR). Lo que hicieron recientemente fue permitir a los programadores ver el código de las clases básicas de .NET desde Visual Studio. Clases de System.IO, Windows.Forms, etc; lo único que ganarían los programadores de Mono sería ver si hay algún método mejor implementado ahí, pero por supuesto no pueden.

Todo esto no le impide a Microsoft patentar partes de .NET; es posible que patenten su implementación de las clases base, o ciertas partes del CLR; esto no nos afecta en México ni en Europa pero sí afecta mucho a Mono y a cualquier proyecto relacionado con él que esté basado en USA.

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time.
Steve Riley