03 mayo 2014

FELIZ CUMPLEAÑOS BASIC



Ayer se cumplieron 50 años (1964) desde que en un sótano del Dartmouth College los profesores John Kemeny y Thomas Kurtz intercambiaron el primer mensaje en lenguaje Basic en el primer sistema de tiempo compartido, lo que revolucionó la programación de aplicaciones a un nivel que hoy es difícil de imaginar.

Fue el fin de la era de las tarjetas perforadas y el procesamiento por lotes y el nacimiento de los sistemas multiusuario. Tuve la suerte de perforar en Fortran mis primeros programas en el computador Burroughs que tenía la Universidad en Antofagasta, estudié brevemente Cobol hasta que llegó el computador PDP-11 con terminales VAX, el primero que pudimos ocupar "en vivo".

El PDP-11 funcionaba en Basic y sabiendo Fortran, que era mucho más enredado pude aprender Basic en unos cuantos minutos, era lo mismo pero simplificado, la filosofía del Basic de eliminar las restricciones, dejar libertad al programador y ofrecer muchas decisiones por defecto para simplificar el código me encantaron.

Obvio que esto enfurecía a los profesores de computación, que en esos años en Chile  eran casi todos profesores de estado en matemáticas, o sea tontos de visión estrecha. No podía existir un lenguaje tan simple que cualquiera lo pudiese aprender en unos minutos ¿donde quedaba el profesor entonces? Ese fue el inicio de una larga serie de guerras santas en computación, todas absurdas, encendidas por profesores tontos y estrechos de mente que no habían trabajado un solo día en el mundo real.

Algunas de las estúpidas guerras santas que me tocó conocer y sufrir: Programación estructurada contra todas las demás, teoría de objetos contra todas las demás teorías del mundo, DOS versus Windows, Apple versus Intel, Mac versus PC, Pascal versus todo lo demás, C versus todo lo demás, en fin, la lista es interminable.

Soportar a los pedantes durante tantos años no fue fácil, especialmente porque eran indoctrinados durante años por profesores más estúpidos y más pedantes en la universidad. Recuerdo el programa que escribió Miguel Farah hace años en tono de chacota, está muy bueno, computines no se lo pierdan porque todavía se aplica en casi todas las universidades.

Han pasado décadas y todavía existen los pelmazos que piensan que un lenguaje es "superior" a otro, no saben de lo que hablan. Menos mal que de a poco está volviendo la cordura con lenguajes como Python y Ruby que retoman la filosofía del viejo Basic. Creo que va a terminar enterrándolos a todos.

Basic es el lenguaje más antiguo que sobrevive y es ampliamente usado. Murieron Cobol, Fortran y muchos más. Pascal y Delphy jamás despegaron pero Basic sigue firme ¡la versión original -True Basic- de Dartmouth sigue funcionando!. Hay un Tiny Basic para el Raspberry Pi y mis versiones más queridas del CA-Basic de Casio, el QBasic y QuickBasic para PC, todavía funcionan, hasta no hace mucho en el Juzgado de Menores de Arica todavía emitían los cheques y controlaban las pensiones alimenticias con un programa que escribí en QBasic a principios de los noventas.

Basic fue especial, pionero e insuperado en muchas cosas. Hasta donde yo se fue el primer lenguaje de programación en un entorno visual, que permitía hacer programas en Windows sin tener que programar cada maldita interfase de usuario. A mi me maravilló la idea, aunque funcionaba pésimo, del Visual Basic 1, para DOS,  y del Visual Basic 3 para Windows 3.11 que fueron mi caja de arena para jugar por un par de años. Era una idea revolucionaria para el hardware disponible en ese tiempo.

El Visual Basic 4 fue el primero totalmente operativo, salió junto con Windows 95 que fue una de las revoluciones más importantes en la historia de los sistemas operativos. Casi nadie sabe las enormes implicancias estratégicas, de visión y de diseño que tuvo el proyecto Detroit y su influencia en todos los demás sistemas operativos.

La versión 6 de Visual Basic llegó al techo de la perfección para pequeñas y medianas aplicaciones. Basada en un modelo de componentes, extremadamente ingenioso, el lenguaje se convirtió en un sistema de LEGO para combinar y pegar componentes. Hasta el día de hoy es el lenguaje de programación con más usuarios en el mundo, pese a que Microsoft lo descontinuó hace años. Y tiene para muchos años más de vida.

Existe una gran cantidad de programadores que trabajan y no piensan dejar el VB 6.0, hay miles de páginas con código y hasta y fanpage en Facebook para el VB 6.0. Probablemente es el lenguaje que produce gran parte de las aplicaciones medianas y pequeñas que hoy existen ¿Por que se descontinuó entonces?.

Hay una explicación detallada y excelente sobre por que Microsoft debió congelar a Visual Basic y cambiar su tecnología .COM basada en componentes a una .NET basada en objetos, tiene que ver con cambios que ha sufrido el sistema operativo Windows, especialmente desde el proyecto Longhorn que basado en los NT creó la familia de Windows Vista (Windows Vista, Windows ME, Windows 7, Windows 8, etc.). Me gustó mucho este artículo de  Tim Anderson, es de lo mejor que he leído sobre Windows. Anderson también escribió un artículo llamado De Windows 95 a Windows 7, Como Microsoft Perdió su Visión, excelente.

Visual Basic 6.0 toco techo, creo que es el lenguaje perfecto para varias clases de aplicaciones. Luego de congelarlo Microsoft sacó la nueva línea de Visual Basic .NET y tocó fondo al desarrollar una versión de Basic en formato entendible para los programadores de C++ y Java, se llama C#, una porquería de Basic disfrazado para agradar a la academia.

La programación orientada a objetos fue un gran avance, gracias a ella tenemos programas complejos que de otra manera nunca hubiesen existido. Una idea muy buena pero enseñada e implementada por estúpidos, fanáticos y miopes que -desde su posición ventajosa en salas de clases- hicieron un daño enorme al avance de la computación. La familia de Windows Vista y la tecnología .NET aparecieron cuando Microsoft se vio obligada por el hecho de los cientos de miles de programadores que solo sabían Java y C++. Había que adaptarse a ellos para no perder mercado.

Pero Basic es sin duda el más resilente de los lenguajes de computación que existen y resiste perfectamente desde dentro de cada documento de Word, hoja de cálculo de Excel o cualquier otro componente del Office. ¿Saben por que? ¡Porque todo el Office está programado con la tecnología .COM!. Las cosas buenas pueden ser atacadas por años, pero nunca mueren. ¡Larga vida a Visual Basic Para Aplicaciones!

15 comentarios:

  1. Oorah! por tu columna de hoy!

    Lo que hiciste fue desenterrar de mi oscuro pasado aquellos años en el que programé en Basic usando un Atari 800XL (fue mi primera vez y las unicas dos weas que hice fueron, dejar un texto en cascada e imprimirlo así como una calculadora)

    lo pajero eran las líneas de codigo hasta las líneas tenias que redactar y bien, no vaya a ser que te equivoques y el atari se fuera a la mierda. en ese tiempo tenía 11 años y fue en un colegio de monjas.

    VB6.0 fue uno de mis grandes amores, pero Delphi pudo mucho más. claro que ahora solo me limito a programar paginas web usando cualquier weá como Webdesigner u otro chiche que encuentro en internet... hasta publisher te sirve.

    Fortran lo ví en el CFT pero solo en teoría, ya que me lanzaron de lleno a pascal y después Cobol (que fue una de mis pesadillas ya que por culpa de una linea de codigo mal hecha me eché un semestre) un lenguaje con el que, creo, han programado a toda esta manga de zurditos como Teillier y sus secuaces.

    recuerdo que en mi carrera, cuando tuvimos un par de seminarios en C y C++ alguien me dijo que el C trabaja a nivel de nucleo de sistema y que cualquier linea mal hecha, podrías echarte el pc, al punto de dejarlo inutilizado... ¿mito o realidad? hasta ahora no lo sé.

    Larga vida al Basic entonces!

    (Nota: los profesores de matemáticas son al igual que los zurdos, cerrados, pero tambien los domina el ego, no aceptan que alguien les pueda presentar una solucion más simple a un problema)

    ResponderBorrar
  2. Ah el querido Basic va a vivir mil años, tiene para rato y los va a enterrar a todos, los lenguajes modernos como Python son igulitos, serán los sucesores.

    ResponderBorrar
  3. Ah, y los profesores de estado -de todas las especialidades- por lo general son el cáncer de las universidades estatales. Son igual que los ratones: mediocres pero forman mafias para repartirse las becas, sacar doctorados de mentira, agarrar puestos directivos ¡son una peste!

    Hay honrosas excepciones, claro, pero el perfil general es ese, tipo Riveros, profesor d estado en historia y geografía que de rpnt apareció con master y doctorado de Oxford ¡en economía! "siglo veinte cambalache"

    ResponderBorrar
  4. recuerdo que tuve una calculadora casi fx 4200p

    se programaba en basic con una memoria minuscula...

    pude resolver numericamente ecuaciones diferenciales...

    el poder de un lenguaje sencillo...

    despues aprendi pascal, c, c++ y lo que mas uso es c poara los micro

    pero nada es mas intuitivo que el label y goto

    ResponderBorrar
  5. ¡Y nada más odiado por los profesores de lenguajes de computación! eso los amenazaba y los ofendía :D

    ResponderBorrar
  6. Larga vida al Basic, pues ! Tiene todas mis simpatías.

    ResponderBorrar
  7. Apuesto que va a enterrar a todos los demás.

    Bueno, tal vez -que digo, seguramente- será reemplazado por lenguajes más modernos pero con la misma filosofía, igual espero que en el año 5.000 se siga programando en VBA

    ResponderBorrar
  8. .. para el año 5000 se practicará la Paleo-programación, Ciencia dedicada al estudio de antiguos programas de Computación, y los viejos programas se atesorarán como hoy los venerables pergaminos en latín

    ResponderBorrar
  9. jaja seguro, por eso yo guardo la última tarjeta perforada que me queda de mis primeros programas y un listado de programa en el PDP-11, lo dejaré de herencia!!

    ResponderBorrar
  10. PRINT "TRES HURRAS POR EL BASIC"
    FOR COUNTER=1 TO 3
    PRINT "HURRA!"
    NEXT COUNTER

    ResponderBorrar
  11. Directo y claro, mucho mejor que los equivalentes estúpidos y contraintuitivos de la programación orientada a objetos

    While True
    Print "ja ",
    Wend

    ResponderBorrar
  12. Jajaja, Tomas no te gustan las guerras santas pero ofendiste a mas de la mitad de informaticos que te leemos!


    Solo aclarar que Cobol aún se usa bastante.

    Saludos.

    ResponderBorrar
  13. Jaja, cierto! pero mis insultos solo son en broma. La programación Orientada a Objetos y el modelamiento de datos fueron dos contribucioenes de enorme importancia, PERO solo para aplicaciones grandes y complejas, que son un pequeño porcentaje del universo posible de aplicaciones.

    El fundamentalismo de las universidades, que pretenden que esa es la única manera en que se debe programar es un absurdo que duró décadas y poco a poco se ha ido rompiendo gracias a los lenguajes modernos desarrollados para aplicaciones pequeñas como Python o Ruby, que son los dos que conozco.

    Lo mismo con el fetichismo de las bases de datos, que hasta no hace mucho se usaban para almacenar hasta unos pocos cientos de registros, gracias al XML eso va quedando en el pasado. Hay un lugar para los sistemas grandes y uno para los pequeños, ambos pueden convivir perfectamente.

    Ah claro que hay muchos sistemas legados en COBOL pero fueron hechos en los ochentas, ahora los programadores COBOL con experiencia deben ser relativamente escasos y bien cotizados.

    ResponderBorrar
  14. Sr. Copresidente:

    En mi caso, me declaro un programador aficionado, aunque hace ya tiempo que estoy fuera de las canchas.

    Mi primer encuentro con la programación fue -cómo no- con BASIC, en un Sinclair ZX Spectrum de... ¡48 KB de memoria!, y nunca conocí las caídas de sistema. Pero era bien distinto de lo que hoy conocemos como Visual Basic. Aún recuerdo los códigos donde cada línea llevaba un número, y podías hacer GOTO o GOSUB apuntando directamente a una línea (tipo GOTO 1510). Eso no lo he vuelto a ver en ningún otro lenguaje. Y para qué hablar de instrucciones notables como el POKE... ¡larga vida al POKE!

    El BASIC que usaba el Atari 800XL era prácticamente el mismo, con algunas diferencias menores que, por supuesto, hacían incompatible al uno con el otro. Lo mismo con el Commodore 64 y otros.

    Más tarde, en la universidad, pasé por paleolenguajes como el Scheme y el Pascal (olvidables ambos), hasta que llegué al C y al C++. Ambos me gustaron bastante.

    No me ha tocado aprender otros (entre medio pasé también por el LOGO -un lenguaje diseñado para el aprendizaje infantil, bastante bueno también- y por el QBasic). El Visual Basic lo aprendí por mi cuenta, pero aún me falta mucho. Lo mismo el VBA (ese podría catalogarse como uno de esos que "nadie quiere que aprendas". Seguramente se ve en "Sistemas de Desinformación" en la malla de Farah).

    Entretenido tema.

    Saludos,
    El Biministro.

    ResponderBorrar
  15. Hoy hasta los cabros chicos programan sus propios juegos y se están pasando por buena parte los paradigmas de las momias universitarias. Igual hay que reconocer que Java vino a facilitar harto la cosa y después vinieron un montón de paradigmas.

    ResponderBorrar

"Send me a postcard, drop me a line
Stating point of view
Indicate precisely what you mean to say
Yours sincerely, wasting away
Give me your answer, fill in a form
Mine for evermore
Will you still need me, will you still feed me
When I'm sixty-four"