17 noviembre 2004

Discriminación

Lo que parecía tendencia o moda se está confimando como una cruda realidad: los programadores de VB .NET cobran un 26% menos que los de C#, como promedio, en Estados Unidos. Fijaos en los gráficos del link qu adjunto (o leed el artículo entero) y veréis que hay uno llamado C# gets the bick bucks, donde está más claro que el agua cristalina.

El enfoque sobre los lenguajes me tiene realmente alucinado. Por ejemplo: en las conferencias técnicas, cursos y demás se puede ver aún a VB y C# como asignaturas separadas. Se publican libros sobre un tópico general del framework .NET, pero se publica enfocado a C#, y luego se transforma en VB .NET, o viceversa. En las librerías técnicas tienen estos dos lenguajes en estanterías separadas.

Y ojo, que no creo que esto sea una estrategia malévola de los editores para ganar más pasta: creo que se limitan a hacer lo que creen que el mercado pide. O, para decirlo más claramente, creo que la existencia de contenido por separado de VB y de C# es una clara pista de que las librerías, los editores y los organizadores de conferencias piensan que sus clientes son demasiado estúpidos para darse cuenta de una verdad fundamental: lo único que importa es el framework. El lenguaje con el que se maneje el framework es lo de menos.

Si comparas cualquier manual sobre desarrollo de aplicaciones .NET en VB o en C#, te darás cuenta que al menos el 95% de la información es idéntica entre ambos lenguajes. Esto es un cambio radical con respecto a VS 6, en el que los programadores de C++ tenían a su disposición MFC y ATL: dos enormes frameworks que a los programadores de VB6 no nos hacía falta aprender. Aquí, el framework es uno y el mismo: las diferencias son básicamente de sintaxis.

Yo comencé en esto como programador de VB6, y he tenido que tragar mucha mierda a lo largo de los años: que si era un lenguaje de juguete, que si todos los programadores de VB son unos chapuzas, que si programando VB6 nunca serás l337, que si... blah, blah, blah.

He tragado ese tipo de discriminación estúpida durante años (como si el utilizar una herramienta más sencilla que otra te convierta automáticamente en tonto), y parece que la cosa no ha terminado. A pesar de que VB .NET no es Visual Basic 7, a pesar de que VB .NET está completa y totalmente orientado a objetos, a pesar de que VB .NET es tan bueno, rápido, estable y fiable como C#,... a pesar de todo eso, si prefieres VB .NET antes que C# eres tonto. O incompetente. O cobras menos.

Aprendí lo poco que sé de C# igual que aprendí lo poco que sé de VB .NET: por mi cuenta a base de libros, y trabajando. Y, teniendo en cuenta mis orígenes como programador VB6 con más de seis años de experiencia a cuestas, ¿queréis saber cuál de los dos lenguajes me costó más aprender?

Visual Basic .NET.

Como la sintaxis es engañosamente similar a la de VB6, al principio te parece que es lo mismo pero con más características. Y no, no es lo mismo: tienes que aprender el Framework y la programación OOP. Y cuando empiezas a coger el truco a este cambio de paradigma es cuando le comienzas a coger gusto al lenguaje y al entorno. Cambiar a C# después de eso es una simple cuestión de sintaxis, ni más ni menos.

Por ejemplo, mientras aprendía VB .NET, el libro que llevaba a todas partes conmigo era éste: Programming Microsoft Visual Basic .NET, de Francesco Balena. Es, con diferencia, el mejor y más completo libro que he leído sobre .NET. Y, ahora que la mayor parte de lo que programo es C#, sigue siendo mi libro de cabecera, a pesar de estar publicado para un lenguaje aparentemente distinto.