Java vs. .NET

Estaba revisando mi Facebook y por allá alguien dijo a propósito de la salida de su creador James Gosling de Oracle:

“Es que Java le lleva mucha ventaja a .NET!”

OMG!

Abrió la caja de pandora… y entonces comenté algo similar a lo siguiente, dado que soy NINJA (Not INcluding JAva):

En lo personal me parece que decir que Java le lleva ventaja a .NET, ni siquiera aplica.
Java es solo un lenguaje. Más bien tendríamos que comparar JDK con .NET aunque tampoco me parece muy apropiado...
.NET es toda una tecnología.
Una tecnología basada en código administrado.
En eficiencia;
en productividad
en hacer todo desde un solo lugar.
En confiar en un solo esquema de librerías bien conocido, documentado y creado bajo los mismos principios.
Alguién más apuntó:

“…he programado en los dos lados y eso de que java le lleva a .net mucha ventaja lo discuto.. JAVA cambia sus paradigmas a toda hora… o será muy fácil pasar de EJB 2 a 3 o integrar plugins y librerías en Eclipse: Algo así EJB 2.0 Hibernate jax-ws y jboos 5… eso es un show con una pila de errores que a veces ni idea y después te das cuenta que solo era por una versión menos de alguna librería x ... en fin Calidad de vida mata Esquizofrenia(enfermedad generada por apagar el modo NINJA)…”

No tengo que importar paquetes extraños. Todo me lo resuelve el IntelliSense.
Aún SDKs de Javascript tan robustos como JQuery se resuelven en segundos y me dejan programar a la velocidad del.. hum... sí.. del programador .NET... que sin ser exagerado caballeros, siempre será más alta que la de java. A .NET no le gusta "echar pedal" (y no mencionemos la velocidad de ejecución).”

Pero Java es multiplataforma!


Y .NET no? Solo hablemos de Mono y ya. O de Silverlight que ahora me permitirá correr la misma aplicación en Linux,. MAC o Windows en modo full trust out of browser o en otras palabras, en modo escritorio... Y me pregunto... cuándo con Java podremos crear algo aunque sea ligeramente parecido a Silverlight? A WPF?

Además, pienso que la interoperabilidad no es correr sobre todos los sistemas operativos (cosa factible con .NET) Sino más bien la capacidad de interoperar con otras aplicaciones existentes... y .NET está super preparado para esto con WCF que hoy día da amplias capacidades de interconexión comenzando por REST, JSon, OData, y los otros viejitos como SOAP, WSDL...

Pero Java es gratis!!!

Y .NET no? Toda la especificación de .NET es abierta. Y tenemos herramientas altamente sofisticadas y SOPORTADAS que son free... si no, pregúntenle a las versiones Express de Visual Studio.
Existe también el sitio https://codeplex.com donde miles de desarrolladores comparten su código de manera OPEN SOURCE y se encuentran proyectos geniales de código libre.

Pero Java es Java!!!

Sí... los programadores se enorgullecen de saber Java... no digo que sea malo... por el contrario rescato la idea original que se tuvo de la JVM y del código administrado y del lenguaje altamente formal y completamente orientado a objetos que en gran parte le dieron vida a mi amado C#...

Pero C# pertenece a .NET y .NET es una cosa con vida propia que permite crear nuevos lenguajes orientados a su funcionalidad (F#, IronPython, IronRuby. APL.NEXT) y además permite la inclusión de elementos avanzados como expresiones lambdas, métodos y clases parciales, métodos extendidos, LINQ, lenguajes dinámicos, automatización en la generación de capas de datos, de negocio y hasta de interfaz de usuario; MVC, Entity Framework, Cloud Services desde su proyecto en Visual Studio derechito pa’ la nube…

En integración transparente con Office, con XNA para hacer videojuegos, con Robotics, con Sharepoint, Biztalk y servidores de DB de toda índole. Con todo eso un simple Enterprise Library (lo que más se compara con la mega colección de paquetes de Java) no es nada… es solo una pequeña porción de todo lo que tiene .NET. Sin olvidar el poderoso C++ que aún está disponible para ejecutar aplicaciones que realmente vuelan porque no son administradas. Además hoy día tenemos librerías específicas para hacer programación en paralelo y hypercomputing sin necesidad de hacer un curso para usarlas! en fin... esta cajita de pandora llamada .NET, me daría para escribir un montón de líneas más....

Para estos días que estamos de lanzamiento de la nueva ola de nuestra plataforma: Visual Studio 2010 (que además ahora incluye modelamiento UML y un manejo de arquitectura que ni en mis sueños me imaginaba) .NET Framework 4.0, Silverlight 4.0, Sharepoint 2010, Windows Azure para Colombia y muchos otros... podría decir que en mis años de experiencia con .NET jamás había presenciado una oleada tan grande de innovaciones que nos va a permitir verdaderamente desarrollar todo nuestro potencial antes de tener que pelear para únicamente mostrar un botón en la interfaz gráfica…

Y ahí terminó la discusión… luego Willy remató con un brillante chascarrillo acerca del asunto:

Michael Schumacher llega a casa después de un duro día de entrenamiento en el circuito.
Su mujer le recibe con un beso y le pregunta:
- "¿Cómo ha ido hoy el día, cariño?"
- "Bueno, cuando he llegado al circuito, he ido a boxes y el F1 no estaba en su sitio. En su lugar había un burro."
- "¿Cómo?", se sorprende la mujer.
- "Si, así es. Le he preguntado al jefe de equipo y me ha confirmado que habían cambiado el monoplaza por el burro."
- "¿Y tu que le has contestado?"
- "Pues yo le he dicho que quizás no seria tan rápido como el F1. Él ha dicho que ciertamente es así, pero que ahora tenemos una ventaja y es que podremos correr en todo tipo de circuitos: F1, rally, motocross, trail sin... Y bueno, al menos hoy he podido venir montado en él hasta casa, cosa que no podía hacer con el F1."
- "Ya. Pero si tu sólo corres en F1, ¿para que quieres poder correr en otros circuitos?"
- "Pues no lo se, la verdad. Además, después de montarme en el burro le he dicho al jefe de equipo que no era ni la mitad de cómodo que el monoplaza."
- "¿Qué ha respondido el?"
- "Simplemente ha dicho que eso no importa porque ahora podemos correr en todo tipo de circuito."
- "¡Ay Señor!, ¿Y no corres más riesgo de hacerte daño si te caes?"
- "En realidad no, porque le han puesto al burro las mismas protecciones que tiene la cabina del F1. A pesar de que hace que todavía vaya un poco mas lento. Según el jefe eso ya no tiene tanta importancia, porque ahora podemos correr en todo tipo de circuito."
- "Esta bien, enséñame el burro."
Tras salir al jardín y quedarse estupefacta con la imagen de un burro pintado de rojo, con el escudo de Ferrari pegado en la frente y una protección de F1 encima de la silla de montar, la mujer le pregunta a Michael:
- "¿Y como se llama el animal?"
- Se llama ....
- Se llama ....
- Se llama ....
- Se llama ....
- Se llama ....
- Se llama ....
JAVA !!!!!!!!
X-DDDDD
Según apunta Willy además no es cierto que Ferrari use Java. Los leguajes oficiales para desarrollo en el equipo Ferrari son VB.NET y C++, tal y como se indica en una entrevista concedida a CNET NEWS"
https://tiny.cc/42f73

image

Y ahora otro más cortesía de @Caycedo:

- Knock Knock...
-Who's there?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- Java!
:P

A lo cual le agregué el siguiente escenario (un poco más abstracto):

Knock Knock...
-Who's there?
-Dont worry, I'm Just Leaving
(espero aquí sepan de quien estoy hablando)

.NET Rocks!!! Felices lanzamientos 2010!!!