Java vs .Net

Juan C. Olivares juancri en juancri.com
Mar Jun 12 19:23:55 CLT 2012


2012/6/12 Javier Garay <javierzgaray en gmail.com>

> Hola Lista.
>
> Hola


> Quisiera saber su opinión respecto a estas plataformas de desarrollo. Sé
> que muchos de ustedes preferirán el software libre y se inclinarán por
> Java, pero tal ves no es así y me gustaría saber su postura frente al tema
> o por qué escogerían .Net.
>
> Yo no soy un experto en ninguna de las dos plataformas, pero las he
> utilizado y las conozco, tengo mis propias impresiones, pero no está demás
> saber que piensan mis colegas.
>
> Se viene una guerra santa.

Hay que considerar varias cosas:


   - Máquina virtual: La máquina virtual de Java debería ser
   intercambiable, pero generalmente se uytiliza la de Sun (Oracle?). Es
   buena, pero va un poco más atrás que otras. La máquina de .NET fue diseñada
   para optimizar el rendimiento, permitiendo declarar estructuras por
   ejemplo, evitando hacer boxing. Llevó la ventaja con cosas como generics
   reales, delegates (punteros a funciones) y últimamente LINQ, una maravilla
   (IMHO). En Windows, se usa la máquinavirtual de MS, pero en otras
   plataformas (Linux, OSX, etc), corre Mono.
   - Lenguaje: En la JVM (Java Virtual Machine) puedes correr Java (duh) y
   otros lenguajes como JRuby o Groovy. En .NET, los principales lenguajes son
   C# y VB.NET, pero hay maś como F# y Java (IKVM). Si se comparan los
   lenguajes principales, Java y C#, creo que no hay mucho que decir. C# es
   claramente más potente. Incluye características como: lambda, LINQ,
   expression trees, métodos anónimos, using (patrón disposable) y otras
   chorezas, bastante atadas a la VM.
   - Desktop: En desktop, Java nunca se ha destacado mucho. La verdad es
   que no conozco los toolkits qaue se utilizan (¿AWT parece?.. o algo así),
   En Mono/.NET puedes usar Gtk#, que son bindings de Gtk+. En varias distros
   hay aplicaciones conocidas usando Mono, como Tomboy (notas), Banshee
   (música), MonoDevelop (el IDE) y F-Spot (fotos). Entiendo que hay un par de
   bindings para QT, pero nunca han sido muy po9pulares.
   - Web: En Java hay frameworks como JSF o Struts (MVC). En .NET, hay
   varios frameworks. ASP.NET webforms es similar a JSF y ASP.NET MVC es
   como struts. El MVC 2 está incluido en Mono. Hace un par de meses,
   ASP.NET es open source y puedes incluso hacer pull requests, pero no lo
   he visto integrado en mono todavía. La última vez que probé, el compilador
   se cayó al compilar Razor (el view engine).

¿Se nota que me gusta más Mono/.NET?... :D

-- 
Atte,
Juan Cristóbal Olivares

*La disposición a admirar, casi a adorar, a los ricos y poderosos y a ....
descuidar a las personas más pobres … es la mayor y más universal causa de
corrupción de nuestros sentimientos morales (**Adam Smith)*


Más información sobre la lista de distribución Linux