C-sharp

He estado jugando un poco con C#, el lenguaje que Microsoft desarrolló para competir directamente con java. Digo jugando porque por ahora no he hecho mas que leer por encima un manual del lenguaje y escribir un par de extensiones de un programa que usan donde trabajo, en este lenguaje. Aca van algunas impresiones tempranas que me llevo.

Primero, me he encontrado con que el lenguaje cuenta con muchas de las cosas que siempre me hicieron falta en java. Para nombrar solo dos:  una manera de obtener multiples valores al invocar un metodo sin tener que crear una estructura de datos unicamente para ese fin (con output parameters) y el poder manipular funciones como objetos (con los delegates, aunque se supone que en java van a agregar closures tarde o temprano). Tambien hay algunas cosas simpaticas como poder darle significado a un operador cuando se aplica a instancias de cierta clase (operator overloading, bastante criticado, existe en C++), incluido por ejemplo el operador “[index]” (indexers). En fin, son cosas que tal vez hacen el lenguaje un poco mas complicado pero que a cambio hacen los programas mucho mas breves. Lo cual es en ultimas la mision fundamental de un lenguaje de programacion. En todo caso me falta programar mucho en C# para poder opinar de manera realmente informada.

El lado negativo es la sensacion con respecto a la comunidad alrededor de C# que me queda al navegar los sitios de documentacion, foros, etc. Se siente bastante la mono-cultura Microsoft. En este esquema hay un solo proveedor de tecnologia (Microsoft) y el resto son consumidores (los desarrolladores). Esto se siente en el hecho de que casi todo es proveido por microsoft, la documentacion, el IDE que todo el mundo usa, las diferentes librerias, etc. En ese sentido la comunidad alrededor de java se siente bastante mas diversa, o al menos me da esa impresion.

4 Comments

  1. Alfabravo (Nelson)
    September 29, 2010 #

    A medida que uno se hacemenos proclive a los extremos, tiende a ser más agradecido con los cambios que incrementan la productividad. Sin embargo, hay cosillas como los output parameters que al evitarse la construcción de un DTO, se hace perezoso mentalmente al desarrollador inexperto y seguro se transforma en problemas al traerse datos desde la capa de persistencia porque no se tiene claro lo que está haciendo.
    Como la “magia” en Rails que poco a poco me desagrada y me pone a mirar más hacia Django… cosas así.

    Cuando juegue más en serio con este último, haré un post similar. :)

  2. Sergio
    September 29, 2010 #

    Es cierto que los output parameters son de cuidado e incluso son algo bastante feo, pero hay ciertos casos en los que uno quiere hacer *exactamente* eso. (Prefiero algo como “values” en common lisp que retorna varios valores en vez de modificar el valor de variables)

    Entre la seguridad y la magia, tiendo quedarme con la magia (que casi siempre es opcional). Pero en eso no es bueno generalizar, es mejor mirar caso por caso. No conozco la magia en rails, pero me suena bastante esa filosofia de por ejemplo hacer los mappings entre clases y tables de la base de datos por convenciones de nombres, y no por archivos externos de mapeo.

  3. Mauricio
    October 1, 2010 #

    Hola vegete…

    pensabas que te podrias librar de mi?… ja!… recuerda que soy tu peor pesadilla despues de esa en que soñaste que eras el mejorn amigo de Uribe.. jejejeje

    ME quedo con tu frase: “Es cierto que los output parameters son de cuidado e incluso son algo bastante feo, pero hay ciertos casos en los que uno quiere hacer *exactamente* eso.”

    Esto porque muchas veces se requiere que un lenguaje te permita “salirse” del marco de las “buenas costumbres”. Cuando un lenguaje no te ofrece esa salida y a obligarte a usar su “forma estructurada” de hacer las cosas nos encontramos con que ese lenguaje pierde la flexibilidad y adaptación a cualquier situación o problema.

    Claro, todo tiene un limite y hay que evitar caer en el extremo de la flexibilidad como le pasa a C (si, el C puro y duro)… ¿En ese lado del mundo conocen el dicho que reza: “Mas perdido que puntero en C”?… jejeje

  4. Alfabravo (Nelson)
    October 2, 2010 #

    jejejeje, salirse de las buenas costumbres me suena a “yo hago esto en php, por qué no se puede”. Sobre todo ahora que le añadieron el infame Goto.

    No sé por qué termino pensando en Javo criticando algún mal uso del español. Je

Leave a Reply

Powered by WordPress. Designed by Woo Themes