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