La anarquía de los programadores de Visual Basic (I)
He podido constatar en los últimos años, que muchos desarrolladores de Visual Basic no se han atrevido aún a dar el salto a .NET, quizás por miedo, quizás por desconocimiento, no lo sé exactamente, pero lo que sí sé es que por esa falta de decisión esas personas y empresas están perdiendo el ritmo y la posibilidad de luchar en un mercado como el informático, cada vez más competitivo y preparado.
Recuerdo con cariño mis primeros pasos en esto de la informática. Fue en la Universidad, y allí, una de las tareas que más me gustaron de todas las diferentes materias que recibí durante la carrera, fue la programación por encima de cualquier otra como la administración de sistemas, el diseño gráfico, las bases de datos y otras tantas, que aunque me parecieron muy atractivas e interesantes también, no me atraían tanto como la programación en sí, esa tarea creativa, ese arte, porque para mí es eso, arte, desvirtuado eso sí al menos en España, donde no se rinde honor a su esfuerzo, no se reconoce como lo que es.
Fue entonces cuando aprendí en esas clases de la Universidad las nociones básicas de la programación, mi primera y real toma de contacto con la programación de aplicaciones, y adquiriendo esos conocimientos genéricos base, con cosas como la toma de requerimientos, los pseudocódigos, los flujos de trabajo, los cuadernos de carga, la gestión de proyectos informáticos, los árboles de decisión, los Pert y su gestión con programas como Microsoft Project, etc., y con todo ello las instrucciones básicas y genéricas de los lenguajes de programación como Fortran y Cobol, y un par de años después un poquito de C, C++ y SmallTalk, pero todo ello basado en unos pilares de programación que en la Universidad en la que estudiaba nos los apuntaban como indispensables pero carentes de profundidad, muy básicos, y que por aquel entonces ya criticaba por considerarlos no solo escasos sino también arcaicos respecto a lo que el mercado pedía. Las respuestas eran siempre las mismas, nuestros conocimientos debían encaminarse hacia otras áreas como gestión de proyectos, estadística, contabilidad, marketing, etc., conocimientos todos ellos que me han servido mucho, pero desmereciendo un poco la labor del desarrollo del Software y pensando quizás en que las tareas de desarrollo las debían hacer otros, y es que para mí, tan importante es la tarea del desarrollo del Software como lo puede ser cualquier otra tarea relacionada con la informática. Incluso me prestaría a afirmar que la primera tarea fundamental en la informática es el desarrollo del Software por encima de cualquier otra, porque sin aplicaciones Software, no hay usuarios que trabajen, administren y aceleren productivamente sus tareas diarias.
Un pequeño traspiés personal en el primer curso de carrera hizo que me replanteara algunos retos personales, y así aproveché para bucear en los entresijos de Windows 3.1 y comprobara que era un entorno de ejecución de aplicaciones ideal para las empresas y usuarios particulares, e intentara además, crear mis primeras páginas Web HTML y mis primeras aplicaciones Windows, dos ambientes de desarrollo muy diferentes pero que por aquel entonces se veía como extraño.
Intenté aprender entonces en mi tiempo libre como crear una aplicación Windows con Visual C++ 1.0, pero eso era para mis pequeños y débiles conocimientos de programación un dolor de cabeza más que una solución, así que di el salto después a Turbo Pascal 7.0 pensando en que era más adecuado para mí, pero mi base de conocimiento respecto a la programación era aún muy pobre e insuficiente.
El caso es que remontándome a los años de los que hablo, solo puedo recordar que no había tanta documentación, libros e información que facilitara el aprendizaje como los que hay ahora, y por aquel entonces solo podía bucear en las BBS (incluida la BBS de Microsoft,… ¡qué recuerdos!), algo conocido como Infovía (realmente lento y caro para un estudiante) y algún pequeño recurso más como las revistas de informática en inglés que llegaban a la biblioteca de mi Universidad (creo recordar eran Bit y PC World).
Con todo y con esto, Pascal como lenguaje de programación me parecía tan interesante como difícil de entender, y eso me desanimaba un poco, así que siguiendo mi camino autodidacta de aprendizaje por lo que se estaba convirtiendo en una pasión, me tropecé accidentalmente con Visual Basic (bendito el día), concretamente con Visual Basic 1.0, y éste sí me enganchó.
Eso de que con apenas conocimientos de programación pudiera desarrollar una aplicación Windows en cuestión de menos de 5 minutos fue para mí un argumento indiscutible y suficiente para apostar por ese lenguaje. Además, la forma de codificar aplicaciones en Visual Basic era muy sencilla de comprender, hacía fácil lo que para otros era complejo, por lo que me pareció lógico apostar por este lenguaje de programación en lugar de otro.
Un poco más tarde y al mismo tiempo que aumentaban mis conocimientos y comprensión de Visual Basic me puse a trabajar en mi tiempo libre con la versión Beta de Java, lenguaje moderno, actual y con Sun Microsystems como empresa de referencia. Me gustó mucho, incluso me apunté a un concurso internacional de desarrollo con su versión Beta, pero seguía teniendo unos conocimientos insuficientes como para entender todo de forma clara y directa. Mi nivel de C++ era básico, y aunque SmallTalk me ayudaba a conocer las bases de la programación orientada a objetos, veía en Java la misma dificultad que tuve con Pascal, y al final terminé tirando la toalla focalizando todos mis esfuerzos en Visual Basic.
No obstante, eso fue hace aproximadamente unos 14 años, y desde entonces ha llovido mucho. Por suerte, han cambiado mucho las cosas desde entonces y a mejor. De hecho, por aquellos años se oía comentar en diferentes círculos cosas como los paradigmas de la programación estructurada, la programación orientada a eventos y por supuesto, la programación orientada a objetos, pero ésta última de forma muy ligera. Y es que tan importante es tener buenos medios técnicos para crecer en el conocimiento como buenos profesores que impartan los conocimientos más actuales posibles y de una forma adecuada, algo que siempre critiqué en mi época de estudiante por no estar a la altura de lo que a mi juicio debía seguirse, al menos en lo que respecta a la programación y el desarrollo Software en la Universidad en la que estudié. Al final y pasados algunos años después de acabar la carrera, hablé con otros compañeros de Universidad sobre sus carreras profesionales, y considero que teniendo en cuenta la experiencia personal de la gente con la que he hablado, el tiempo me ha terminado de dar la razón.
El caso es que en toda esta historia llego a la conclusión de los vicios adquiridos respecto a la programación, vicios compartidos por muchos desarrolladores en todo el mundo, y que de forma más frecuente de lo habitual, están instalados en los desarrolladores de Visual Basic. La base de una buena enseñanza ayuda a acortar la curva de aprendizaje, la práctica es siempre necesaria y es la única forma de aprender a desarrollar, y con eso, no digo aprender a escribir programas y aplicaciones, sino aprender a desarrollar, que es otra cosa diferente. Una buena enseñanza con los criterios suficientes favorecen y permiten reducir los vicios al máximo posible. Tan importante es ser un buen alumno como ser un buen profesor, en caso contrario, sacaremos la mitad del provecho o menos de lo que podríamos obtener, y arrastraremos durante toda nuestra vida, unos vicios adquiridos difíciles de solventar.
Debido a la facilidad de desarrollo de aplicaciones con Visual Basic, muchas personas con pocos conocimientos de programación, incluso profanos en este arte, se adentraron en este campo, y con ello, desarrollaron aplicaciones Windows como Dios les dio a entender (respeto el trabajo de todas las personas, que he visto grandes maravillas hechas en Visual Basic 6.0 por personas que tenían pocos conocimientos de desarrollo Software, pero entended lo que quiero decir). Para mí, todos son o somos (mejor dicho) desarrolladores, pero no es menos cierto que mientras unos poseen unos pilares base que hacen que su trabajo sea más efectivo, otros trabajan de una forma más caótica.
Los desarrolladores de Visual Basic, antes de la orientación a objetos, veían a Visual Basic ese lenguaje de programación ideal, no solo porque les permitía desarrollar aplicaciones Windows en tiempo récord, sino porque además, no requería de unas normas rígidas que obligaran a los desarrolladores a actuar de una forma ordenada o estricta en cuanto al método de trabajo con respecto a la programación. Es decir, podían desarrollar aplicaciones de una forma más anárquica y caótica, como les diera la gana. En pocas palabras, no tenían porqué saber las reglas básicas del desarrollo del Software ni tampoco tener grandes conocimientos de programación. ¿Alguien acaso no recuerda el famoso GoTo o el famoso On Error Resume Next de Visual Basic 6.0?. Quizás sean de las instrucciones más utilizadas en el mundo, pero no por ello constituyen una buena práctica en el desarrollo del Software.
Visual Basic sin embargo, evolucionó con el tiempo, y con la aparición de .NET introdujo los paradigmas de la programación orientada a objetos (por fin). En ese instante, se abrió una pequeña brecha entre los programadores tradicionales de Visual Basic y los programadores de Visual Basic para .NET.
Los desarrolladores que no poseían esa base o pilares fundamentales se encontraban en un segundo plano, mientras que los desarrolladores con conocimientos de orientación a objetos y los desarrolladores que entendían ese cambio como natural, se encontraban mucho más cómodos y preparados de cara al futuro.
7 Responsesso far
este articulo seria mejor si de fondo estuviera la musica de Star Wars…jeje
espero la segunda parte 🙂
Salu2
Ddaz.
Me parece muy interesante todo lo que dices Jorge, sobre todo, cuando apuntas que uno de los principales factores que interfieren en las malas prácticas de desarrollo es la poca base y una escasa educación. La educación universitaria no se recicla, tampoco en los institutos, es una lacra con la que tenemos que convivir y nos tendremos que consolar con pensar que sientan las bases para adquirir los conocimientos que nos servirán para el mundo laboral.
Hola Jorge, muy interesante tu post, además me hace recordar mis comienzos(también con su turbo pascal y visul basic). En cuanto al tema que comentas, tienes razón, el problema no es el lenguaje sino la formación o más bien la educación en la metodología de programación y estructura de datos, de hecho con ganas con VB5 también se podía hacer bastante bien las cosas(no era OOP completo, pero si 60%).
Algo similar sucede con los lenguajes PHP(o el ASP clásico) se podían hacer bien las cosas, pero la gran parte de los desarrollos son miles de líneas de código espagueti inmantenible.
Hay mucho peligro también en los modernos entornos IDE que ocultan las “tripas” y hacen que la calidad del desarrollo sea baja(la famoso el anti-patron en la que toda la funcionalidad de la aplicación esta en los eventos de los objetos de UI )
te felicito,excelente post y espero la segunda parte, Jorge bueno te cuento aqui pasa algo similar en Colombia, el nivel de la informatica nunca se ha tenido muy en cuenta, solo unos pocos pueden obtener una educacion de calidad acorde a las necesidades de la industria de software y pues eso hace que seamos pocos los q hagamos infructosos trabajo de impulsar el buen desarrollo de codigo, aunque no soy tan mayor como tu, tb aprendi mucho de C/C++ y pues ahora ando en la onda de .net….
[Ref.: La anarquía de los programadores de Visual Basic (I) ] En todas las oportunidades en las que tuve
no vale verga tu comentario =S ni tu pinche articulo gediondo =D
bye
que sean especificas