Reflexiones .Net
[Y de paso, la historia del Nombre C#]
Fecha: 19-11-2K3 (20/Nov/2003)
Autor: Jesús Rodríguez ([email protected])
¿Qué tal, Guille?
Lo cierto es que hemos hablado unas cuantas veces por e-mail, llevo años viendo tu página, por la que nuevamente te felicito porque sigues manteniéndola fresca y sincera, amén del contenido más profesional y técnico de habla hispana de toda la red. Es junto con www.vbaccelerator.com de Steve McMahon, que supongo que conocerás, y la de Eduardo Morcillo, www.mvps.org/emorcillo, una de las tres mejores webs de este tema de todo Internet, a excepción, por supuesto, de su excelencia, el MSDN, quien sin lugar a dudas sin ella no tendríamos a las otras.Te escribo un pequeño texto personal acerca de mi visión como profesional del tema de este nuevo entorno(s) y lenguaje(s), por si quieres agregarlo en algún apartado de colaboraciones.Buscando información sobre el puñetero C#, ya que me dice que no me encuentra una referencia de ensamblado de los cojones (si, llevo unas horas y estoy quemaete, ¿que pasa...) ;-) ), de nuevo he vuelto a tropezar aquí, y me he encontrado con un artículo muy interesante sobre VB.Net. En el pones (y cito textualmente, pa chasco, con un control+V XDDD) "el aspecto sintáctico es diferente para cada uno de los lenguajes basados en .NET Framework, si no fuese así, ¡sólo existiría un solo lenguaje!". Lo cierto es que yo creo que no debería de haber diferencias a día de hoy entre lenguajes. Yo creo que todos deberían soportar lo mismo, y más teniendo en cuenta que al final todo se resume en un código MSIL que comparten todos los lenguajes dotNet. ¿Para qué esta diferencia? A día de hoy resulta exactamente igual de profesional el entorno en Visual Basic como lo pueda ser C# (Yo lo llamo Do sostenido, jejeje), si no lo es más, al haber tanta cantidad de programadores (que eso no quiere decir necesariamente profesionales... :-( ) que trabajan diariamente con VB en cualquiera de sus ediciones.Las diferencias de lenguaje creo que a día de hoy son absurdas y retrasan aún más el avance informático. ¿Por qué no puedo implementar un operador * en VB.NET? ¿Por qué no puedo comentar profesionalmente un código mediante unas etiquetas de Summary? ¿Por qué en C# no se pueden usar parámetros opcionales? y así un millón....A día de hoy deberían permitir que al menos estos dos lenguajes tuvieran la misma potencia y presencia, que perfectamente pueden tener, ya que repito que al final se resume en un Misilito, y el Visual Basic ha sido rediseñado de tal forma que, no sólo me parece muy un código muy elegante, práctico y profesional, si no que ha conseguido un poder de abstracción tan sumamente importante, potente y dinámico, que si lo probaran los programadores de C (1.0), C++ (2.0) o C# (3.0) que tanto se reservan a la hora de poner sus exquisitas manos en lenguajes tan frágiles como Basic (1.0), Visual Basic (2.0) o Visual Basic.Net (3.0), seguramente dirían que puede superar con creces al lenguaje de Dennis Ritchie...Por cierto, como guindillita final, por si no lo sabes, el propio nombre de C es una estúpida coña yanki sin gracia, que resulta muy graciosa, jejeje. El esbozo original de C lo escribieron en los laboratorios Bell a principios de los 70. Por aquellos tiempos había un sistema operativo que se llamaba MULTICS, cuyo nombre eran las siglas de "Multiplexed Information and Computing Service" y que llevaba 5 años rulando. Esta gente estaba diseñando un nuevo sistema operativo llamado UNICS, que venía a ser una gracia muy sosa y que quería decir "Uniplexed Information and Computing Service". Ese primer esbozo de lenguaje se llamó A. Poco tiempo después se rediseñó absolutamente y se creó el lenguaje B, (Grupo Z XDDDDDD) para acabar con el nombre de C. Ese lenguaje se extendió entre otras cosas porque UNIX (que fue el nombre comercial que usaron al final para tapar un poco la chorrada) era de código abierto y se estudiaba diariamente en las Universidades de todo el mundo. Era muy práctico estudiar un sistema operativo y un lenguaje de programación tan vivos como el de un sistema operativo comercial.A principios de los noventa, se rediseñó el lenguaje para poder incluir un concepto de abstracción nuevo. Antes, C era un lenguaje estructurado, sencillamente. Ahora es un lenguaje de programación orientado a objetos. Y con ese cambio tan brusco representa un cambio de versión, algo así como C 2.0 (como he puesto arriba), y que mejor que usar el mismo lenguaje para definir el nombre. Y como en C, una variable con el operador ++ incrementa el valor de la misma, C++ es como decir C = C + 1. Y ahora, 10 años después, crean una nueva edición mejorada con creces de dos lenguajes, VB y C#. ¿Qué tienen de especial? Antes eran de programación orientada a objetos, ¿Y ahora?... La mejor definición que le doy yo es Programación Orientada a Objetos Tunning. Si, si... Tunning, como los carros... Coges tu carro (objeto) y le metes un alerón, unas llantas y unas lunas tintadas y a tirar millas. Cuando acaban de "Tunnear", el coche no tiene nada que ver con su coche heredado... jejeje ¿Y como llamar a esta nueva versión? Pues esto significaría C 3.0... Algo así como C++++, o lo que es decir (C++)++, y si os fijáis en la almohadilla, son CUATRO CRUCES #. De aquí nos surgen dos preguntas. Una, ¿Cual será el próximo nombre de C? Pues es más predecible que el siguiente nombre de i386. Debería de ser algo como C##, pero como ya nos hicieron la gracia con el pentium, seguro que se acabará llamando C-alamares. ¿Y la segunda pregunta? Fácil. ¿Qué será lo siguiente? Yo tengo mi propia idea, pero... ;-)Por cierto, el Unix siguió unas coñas parecidas con el Minix y posteriormente el Linux. Debe de ser cosa de familia.Bueno. No doy más la barrila. Espero haberos hecho pasar un buen rato.Bibliografía Básica
Sin duda, "Sistemas Operativos, Diseño e Implementación" de Andrew S. Tanembaum.
Sobre el autor
Soy analista-programador del Departamento de desarrollo de TelePizza, y estoy montando desde hace tiempo una empresa seria de software, componentes y nuevas tecnologías. He sido además profesor en la Escuela Superior Técnica de Ingenieros Industriales en Madrid y en una academia de Informática.