14 marzo 2013

La programación para el hombre común



Y sigo con el Curso de VBA en esta lección 3 donde enseño a usar un truco que me costó varios años aprender -con la grabadora de macros- y a programar un formulario en un documento de Word. Sigo con problemas en el sonido pero esta vez es por ignorancia y no por falta de equipos, tengo que aprender a usar el micrófono, controlar los niveles y todo lo que por ahora estoy haciendo a tientas, pero echando a perder se aprende, que diablos. Todos los videos los estoy publicando ordenados en el blog Curso Básico de Visual Basic para Aplicaciones.

Como he contado muchas veces antes, estuve -entre 1992 y 2002- en los tribunales, haciendo proyectos y programas cuando recién se empezaban a usar los computadores. En esos años yo llevaba unos 10 años escribiendo programas en negocios e importadoras de la Zona Franca de Iquique y tenía mucha práctica para darme cuenta de los problemas y escoger soluciones rápidas y confiables.

Cuando llegué a los tribunales todavía se usaban máquinas de escribir para hacer los informes diarios, mensuales y las visitas semanales de cárcel que eran unos listados enormes hechos por algún duende en un escritorio abarrotado de papeles, hojas de calco y una máquina planillera, esos duendes fueron los más felices cuando les enseñé a usar el Excel para actualizar los informes, que eran una especie de control de inventario de los reos y procesados con su respectiva situación.

Entonces, debe haber sido en 1993 o 94, apareció el Visual Basic para aplicaciones. Hasta ese tiempo yo hacía programas en Basic en las enormes cuentas corrientes para pensión de alimentos (ese viejo programa en QB 4.5 se estuvo usando hasta hace pocos años en el Tribunal de Menores), la expedición de licencias provisorias de conducir y cosas por el estilo.

Cuando en 1995 apareció el Visual Basic para Aplicaciones 5, la primera versión estable, me di cuenta de las enormes posibilidades que tenía al permitir programar buena parte del código dentro de las mismas aplicaciones y empecé a migrar todo a VBA. Luego vino la Reforma Procesal Penal y con ella los Directores de Informática desde Santiago a implementar sistemas uniformes, entonces se decidió implementar el sistema unificado de control de causas -que se usa hasta hoy- creo que fue desarrollado originalmente con la empresa Orden que ganó la licitación.

Entonces desecharon el uso de micro aplicaciones incrustadas en plantillas de Office, con acceso a las bases de datos centrales. Eso era lo que yo proponía, en cambio se decidieron por un sistema completamente centralizado. En esos años anduve en Santiago y conversé con gente de informática del Poder Judicial, también conocí un par de analistas de Orden y las razones para centralizar eran por seguridad. Yo creo que más ben era porque veían la conveniencia que una empresa tuviese el control monopolico de todo el sistema. Después de eso vendí la última aplicación -un sistema para emitir sentencias seguras- y no programé más por varios años.

Por alguna razón que desconozco Microsoft dejó de apoyar al VBA casi junto con la salida de Bill Gates de la compañía, aunque hasta el día de hoy sigue siendo parte del lenguaje de macros del Office hubo un cambio de política hacia la .NET framework, que era un entorno que integraba a varios lenguajes orientados a objetos. El Visual Basic pasó a .NET y -a mi modo de ver- trataron de bajarlo en beneficio del C# que pretendían que fuera su sucesor y no tuvo el más mínimo éxito, en cambio el VB sigue siendo útil y popular.

Creo que el Visual Basic coincidía con la visión de Bill Gates sobre el futuro de la programación y que los intentos de bajar el VB coinciden con su salida de la compañía, bueno, es solo una especulación mía. En todo caso esa idea de uniformar las aplicaciones grandes y pequeñas bajo el modelo de objetos me parece una estupidez y aunque pasen mil años tratando de imponerla los lenguajes permisivos y poco estructurados por diseño como Visual Basic seguiran siendo populares para las aplicaciones pequeñas.

P.D. Si hay un buen candidato para suceder al Visual Basic, creo que es Ruby on Rails, lástima que este video está en inglés, pero los que entienden algo de ese idioma bárbaro les recomiendo que lo vean, es del creador de Ruby on Rails y concuerdo 100% con lo que dice.

 

12 comentarios:

  1. Centralizar por seguridad es una corriente potentísima aprovechándose del auge universal de la Informática.
    Antes uno entraba a la sucursal de Banco, llevaba papeles pero al final un gerente local que lo conocía a uno o hacía discretas llamadas telefónicas decidía darle o no el crédito.
    Ahora el "gerente" carga una base de datos que hace un análisis del caso. Y si se necesita de criterio humano lo aporta un analista de crédito de la oficina central mirando el legajo electrónico que llenó el "gerente".
    Es decir, una de las principales funciones de la inteligencia electrónica es disminuir el uso de la inteligencia humana, convirtiendo a muchos en data-entry y a muy pocos en mandamases a distancia.

    ResponderBorrar
  2. Si Ulschmidt, es una idea muy intuitiva que centralizar es más seguro. Sin embargo no es cierto, no hay relación directa entre centralización y seguridad, un sistema centralizado puede ser sumamente vulnerable.

    Sin embargo muchas instituciones usan el pretexto de la seguridad para no distribuir procesos, los sistemas bancarios son un ejemplo tal como mencionas sobre el historial de créditos.

    Los problemas de seguridad son muchos y diferentes en cada caso, las fallas están casi siempre en la implementación, no en el diseño. Es muy muy raro ver fallas de seguridad en un diseño porque en esa etapa es mucho más fácil controlar las cosas.

    Los sistemas centralizados tienen el problema de que una vez que alguien logra acceso la cantidad de información comprometida es enorme. Típico el caso del soldado (Lessing creo que se llamaba) que se robó la información que después entregó a Wikileaks.

    ResponderBorrar
  3. Don Tomás, ya ni me acuerdo cuando encontré su blog... pero ya estoy convencido, que si la reencarnación existe, doy por acto de fe, Ud. en otra vida se llamaba Vicente... jaja... y no es un broma, si hasta su redacción me recuerda a "Recuerdos del Pasado" (valga la redundancia).

    ResponderBorrar
  4. Ah Heitai, en el panteón de mis grandes ídolos don Vicente Pérez Rosales ocupa un lugar muy importante, es de lo mejor que ha existido en Chile.

    Seguro que le debo copiar muchas cosas, claro que inconscientemente, ¡si lo he leído tantas veces! estando en la miel todo se pega jaja

    ResponderBorrar
  5. Tomas y ahora que cierran reader donde te vamos a poder leer?

    ResponderBorrar
  6. ¡En bradanovic.blogspot.com pues! ¿para que quieres el reader?. Bueno, si te molestan los avisos puedes leer las entradas en feedburner: http://feeds.feedburner.com/TomasBradanovic

    ;)

    ResponderBorrar
  7. En mi empresa siempre se dan clases de Visual Basic, y hasta leer tu post, nunca me había motivado :-)

    ResponderBorrar
  8. Es muy bueno, no como los otros lenguajes feos y aburridos que salieron del Pascal (a ver si empiezo una guerra santa ahora jaja)

    ResponderBorrar
  9. Tomás,

    Toda herramienta es potencialmente buena o mala. La mejor analogía que leí por ahí era que, en las manos de un buen maestro, una piedra sirve como martillo.

    (O sea, tu eres como un maestro que nunca ha querido aprender a usar martillos como la gente, y todavía rallas la papa con esa piedra que es VB - ¿qué tal para la guerra santa?)

    ResponderBorrar
  10. Buen comienzo, y mira como te respondo:

    Ocurre igual que el comunismo teórico donde todos son iguales. Todos los lenguajes de programación son iguales porque todos transforman comandos fáciles de entender en una enorme serie de instrucciones en lenguaje de máquina. en ese sentido todos los lenguajes hacen lo mismo.

    Pero tal como en el comunismo práctico, algunos son más iguales que otros. Unos son más verbosos, otros son más legibles, otros más dan control más fácil sobre los bits en memoria, etc. Entonces en la práctica, algunos lenguajes son mejores para hacer ciertas cosas que otros.

    Creo que existen dos grandes lenguajes hoy: el C++ que es orientado a objetos y muy bueno para programar sistemas grandes en equipo, porque se preocupa mucho de los errores y la consistencia, además permite más control sobre el hardware (ese ejemplo que ponen siempre de controlar bit por bit la memoria por ejemplo). Creo que esos son sus grandes méritos.

    Para lo que a mi me gusta -que son las microaplicaciones- el VBA todavía no tiene rival, porque es interpretado -y viene incluído- en cada documento del Office ¡no existe otro lenguaje tan accesible como ese, no hay que descargar nada!. Creo que de sus muchos méritos ese es el primero y más importante.

    Luego está su portabilidad. Donde funcione un documento de Office funcionará su código VBA casi sin hacer nada adicional (a menos que hayamos agregado componentes externos o algo así). La portabilidad de una aplicación de una máquina a otra es completamente transparente.

    Hay muchas otras cosas buenas, ojo que hablo del VBA y no del VB, por ejemplo lo sencillo e intuitivo que es entender un código ¡el seudocódigo es casi una copia del VB!

    Finalmente tenemos la opinión de Linus Tovalds, cuya autoridad está unos milimetros por debajo de la opinión de Dios, que dijo que -a su modo de ver- el VB había hecho más por el desarrollo de la computación que toda la programación orientada a objetos. Tómate esa.

    Creo que esto tendríamos que discutirlo con guantes de box y/o con unas cervezas el primero en caer al suelo pierde...

    ResponderBorrar
  11. Ah, pero yo quería una guerra santa de esas de descalificación personal y amenazas y tu partes con argumentos.

    No hay salud.

    ResponderBorrar
  12. Eso está mucho mejor, empecemos de nuevo:

    "Solo los que programan en Basic y sus derivados son machos, todos los que usan otros -mal llamados- "lenguajes" son unos maricas que se les quema el arroz a cada rato, especialmente los que usan Java, C++, SQL, Javascript, Pascal o cualquiera de esas porquerías, dignas de snobs y afeminados"

    Esto es la verdad absoluta porque lo digo yo, que soy mejor que todos los demás. Ahora a callar niñitas. He dicho.

    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"