Sergio's Blog

C-sharp

September 29, 2010

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.


Written by Sergio G.