Ingresar:

programacion java :: Blog :: java vs c#: una comparación razonablemente objetiva

January 31, 2007

Muchas veces al calor de nuestras "religiones" opinamos sobre nuestras preferencias. A veces nos falta mirar objetivamente el horizonte para tomar alguna posición que vaya a beneficiar nuestro espacio de trabajo. Navegando por internet obsesionado por el "mito" de que Java es lento, encontré este artículo que hace una comparación sana de C# y Java. Hace hincapié tanto en el área técnica del lenguaje (comparaciones estructurales) como también en áreas más prácticas (comunidad, popularidad, mercado, etc). Está razonablemente al dia ya que menciona algo que se comenta bastante sobre la versión 7 de Java que es la introducción de clausuras (estructura de lenguaje que permite pasar como parámetros funciones, algo similar a los famosos delegates de C#), sobre C# 3.0 (funciones lambda y SQL empotrado), etc. Vale la pena echarle una buena mirada. Para los neófitos de lenguajes de programación: hay un vocabulario enriquecido que puede usarse para aprender.

Palabras clave: c#, java, lenguajes programación, programación orientada objetos

Enviado por Pablo Azero @ programacion java



Comentarios

  1. Me alegra que podamos ver las cosas mas objetivamente. Guiño

    user iconAlvaro Sejas on Thursday, 01 February 2007, 08:44 BOT # |

  2. Eso no cambia mi posición sobre el hack de los delegates :-) (no sobre la necesidad de ellos y su forma de integración en el lenguaje). La vida parece darme razón en el sentido que en C# 3 las funciones lambda los estarían supliendo y en java 7 las propuestas se denominan clausuras y se parecen a funciones lambda (hasta en su notación, pero hay que ver como aparecen en la versión oficial).

    user iconPablo Azero on Thursday, 01 February 2007, 08:58 BOT # |

  3. Mmm no me refer'ia a eso, yo no soy el paladin de los delegates, sino que le'i en otro post algo como ("el culpable debe ser el marketing de M$") y creo que decir "microsoft=malo, java=bueno" no es muy objetivo, no apoyo muchos productos de M$ pero tambien veo que hay algunas cosas buenas, como C# en las que si le puso ganas.

    user iconAlvaro Sejas on Thursday, 01 February 2007, 16:17 BOT # |

  4. Sipi, tantas ganas que, en una versión (2.0) uno puede que escribir este código:

    Func<int, int> f1 = delegate(int i) { return i + 1; };

    Y en la otra (3.0) ya lo puede hacer de esta forma:

    Func<int, int> f2 = i=>i+1;

    Dos cosas pasan en el último caso: funciones lambda en reemplazo de los delegates y segundo: inferencia de tipos! (valga la ocasión para redundar en el hechizo funcional sobre los lenguajes "comerciales" modernos :-) Todo esto se viene también en Java 7.

    El próximo gran problema tanto para diseñadores como para desarrolladores es la compatibilidad de código fuente: estas modificaciones son estructurales, cambian el lenguaje de programación. Esto quiere decir que un programa en versión 2, puede no compilar en versión 3, a menos que sean incrementos del lenguaje (añadan y no reduzcan la estructura del mismo). Este último caso significa complejizar el lenguaje, haciendolo en el peor caso redundante: con dos o más estructuras usadas para hacer exactamente lo mismo (aunque sea temporalmente).

    Juzgue el lector las ventajas y desventajas de evoluciones tan aleatorias.

     

    user iconPablo Azero on Friday, 02 February 2007, 16:23 BOT # |

Debes iniciar sesión para enviar un comentario.