Evolución de la tecnología de Software parte 2

Los años 90 fueron de grandes cambios. Se comenzó a difundir la INTERNET en el Perú por el año 1991,  lo cual causo un gran revuelo en los círculos académicos de informática. Lo comenzamos a ver como una gran RED metropolitana; no podíamos verlo de forma distinta dado que recién se iniciaba y muy pocos en el Perú tenían conocimiento del potencial que llevaba consigo.  En países europeos y asiáticos, solo las instituciones académicas contaban con un mayor conocimiento. Pero muchas empresas comerciales e industriales, no tenían conocimiento de esta nueva tecnología. Me costó convencer a los directivos de la empresa donde laboraba, adquirir INTERNET. Fue una apuesta que bien podía costarme el puesto; pero valió la pena.

Las herramientas para desarrollar páginas Web eran primitivas, tenía que programar con lenguaje C y usar la arquitectura CGI y FASTCGI.  Era distinto ver el nuevo lenguaje de marcas llamado HTML en sus primeras versiones. Recuerdo que tener INTERNET era todo un lujo que pocos podían darse. Comprar un MODEM con una velocidad aproximada de 9 KBS  era algo increíble; el precio era aproximadamente de 1000 US$. Y ni que hablar del contrato con el operador de telefonía.

Por el año 1993, más que desarrollar páginas Web, el potencial que vimos era la transferencia de archivos con el protocolo FTP. Convencimos a nuestros proveedores de implementar INTERNET y poder intercambiar archivos.  Antes, el intercambio de información se hacía de forma impresa, con equipos de Fax, pero era muy complicado pasar la información impresa a nuestros sistemas. Esto fue toda una revolución tecnológica, podíamos enviar un recibir información digital y transferirla de forma directa a nuestros sistemas. Podíamos digitalizar una imagen con un escáner y enviarla por FTP a nuestro proveedor por alguna falla de fábrica de un producto.   En aquellos años fuimos los precursores de INTERNET en el Perú, la empresa donde laboraba estaba a la vanguardia en tecnología de información. Se enlazaron nuestros sistemas a fuentes de información externa, utilizando tecnología barata de comunicaciones (Comparado con otros sistemas que usaban redes metropolitanas con líneas dedicadas).

Algo que valoraron los directivos de la empresa fue la disponibilidad de información.  Se podía planear políticas de precios y disponibilidad de stock de nuestros productos. Solo nosotros contábamos con esa ventaja comparativa respecto a nuestros competidores. Esto nos permitió crecer muy rápido en el mercado y llegamos a ser el número uno en el rubro.

Uno de los principales cambios en la tecnología fue con el lanzamiento de Windows 95. Fue extraordinario ver un sistema operativo totalmente gráfico. Con las versiones anteriores de Windows, la consola gráfica era opcional, y muchos utilizaban solo interface modo texto. Pero todo cambió; ver el arranque directo en modo gráfico fue una experiencia totalmente nueva. La consola modo texto debía ser solo opcional, los usuarios ya no volverían a una interface modo texto. Teníamos que pensar en desarrollar sistemas de un modo totalmente distinto.  Ya no habría más programación directa en la memoria de pantalla, ya no habría más programación directa del teclado – No se programaría más las interrupciones del sistema.  Esto realmente si cambio todo. Microsoft implementaba los SDK, y se tendría que programar sobre ello.

Con la Suite de desarrollo de Microsoft, tomó fuerza el lenguaje Visual Basic; si,  el lenguaje legendario de muy larga trayectoria era la herramienta que los desarrolladores promedio podrían utilizar para desarrollar sistemas en Windows 95. Los más duros tenían el lenguaje C (Microsoft C Compiler) y Visual C++ para ser utilizado. Si deseabas programar controladores, Microsoft tenía en lenguaje Macro Assembler como alternativa para las empresas que se dedicaban a ello.
Era totalmente distinto programar en una nueva plataforma. Recuerdo que migrar sistemas en modo texto no tenía sentido, lo mejor era volver a construirlo. Mucho se promovió las librerías MFC (Microsoft Foundation class) para C++. Fue un gran aporte de Microsoft para los desarrolladores que venían de un lenguaje estructurado como el ANSI C.  Además, proveía muchas clases que ahorraban trabajo.

Recuerdo que el cambio de lenguaje estructurado a un lenguaje basado en objetos fue un poco duro. Se tenía que pensar de otra forma.  Algo que me ayudo fue haber programado en Pascal; este lenguaje ya tenía implementado la tecnología de objetos, pero solo lo usaba con fines académicos.
Lo más complicado era tomar la decisión como plantear la solución en un sistema empresarial; definitivamente era distinto. Tenías 2 opciones, diseñar las clases basado en procesos o diseñar las clases basado en entidades.  Finalmente la decisión fue el diseño por procesos, era algo más afín a los procesos empresariales y por los antecedentes de los sistemas, era lo conveniente para mantener la línea del conocimiento adquirido con los sistemas anteriores.

Desde el año 1993 utilizaba el Compilador Borland C, una herramienta fabulosa, extremadamente flexible y muy robusta. Pero con los cambios de 1996, era necesario tener una nueva herramienta acorde con los nuevos requerimientos. A finales de 1995 me llego el nuevo compilador Borland C++, impresionante, mucho mejor que Visual C++. Algo que me obligo a mantener ambas herramientas como fundamentales en mi trabajo.

Borland marco gran parte de mi vida, desde sus versiones de Turbo Pascal, Turbo C, Turbo Assembler y Turbo Basic, siempre lo considere como la empresa que revoluciono toda la tecnología de desarrollo. Aun veo con nostalgia todas esas herramientas.

En el año 1997 tuve la oportunidad de programar en Borland Delphi, era Pascal por objetos. Era desarrollar para entornos gráficos. Quedaba atrás Pascal como lenguaje estructurado y venia este lenguaje 100% por objetos y totalmente implementado para el desarrollo de entorno gráfico. Lo utilice mucho en la parte académica. No había nada que hacer, Borland era un genio. Era tan potente que las librerías para C++ de Borland eran creadas con Delphi. Si querías modificar los componentes desde la fuente, debías programar en Delphi Pascal. Todas las librerías graficas de Borland C++ estaban desarrolladas en este lenguaje.

Desde 1995, con el lanzamiento de Windows 95, fue todo un cambio. Esto afecto a las bases de la tecnología de desarrollo. Surgían los nuevos modelos de desarrollo de Software. Si querías ser un programador seria, debías programar en estos lenguajes.  Debías crear tus librerías, no había otra manera. Actualmente existen muchas fuentes de donde puedes obtener esto, lo cual te ahorra mucho trabajo. Cada librería que desarrollabas debías hacer tu mismo las pruebas de carga y las validaciones de resultados antes de ponerlo en producción.

A finales de los 90 la programación por objetos maduró mucho y se asentó como la forma ideal de crear sistemas. Había quedado atrás la programación estructurada. Los nuevos patrones de desarrollo se debían formar basado en esta forma de programar. Los nuevos conceptos de encapsulamiento, herencia y polimorfismo debían ser parte inherente a la hora de plantear un desarrollo de Software.

Evolución de la tecnología de Software parte 1

Han pasado muchos años desde inicie con mi primer sistema. La tecnología de Software ha evolucionado muy rápido. Desde que comencé programando en las consolas de una PC con un procesador 8086, nunca imagine que todo explotaría con el desarrollo de la INTERNET.

Cada cambio en la forma de desarrollar un sistema fue un poco duro entender los beneficios. Creo que desde esa época (en los 80), se tomaba en broma “Si funciona, no lo toques”. En 1983 eran los años de los sistemas para microcomputadoras. Se distinguían 2 grupos de desarrolladores; los que programaban para Mainframe y los que programaban para PC. Dos mundo muy separado interestelarmente.  Muchos de mis amigos programaban en MainFrame y veían la programación en PC como algo no dado para su nivel intelectual; claro, pero era solo cuestión de orgullo.

Desarrollar un sistema para una PC era un camino un poco rudo. Se utilizaba un editar de texto ANSI y el compilador era independiente, así como el proceso de enlace para generar un ejecutable.  En aquella época programaba en Assembler con el compilador de Microsoft  Macro ensamblador y el proceso de enlace lo hacía con el programa link.exe. Era el enlazador para generar un ejecutable.

Todo se aceleró cuando llegó a mis manos el primer compilador y enlazador en un solo proceso, se llamaban Turbo Assembler y Turbo Pascal.  Era una maravilla, pensaba que no existiría nada mejor en muchos años.  Cosa que me equivoqué.  No solo era un cambio de funcionalidad, era el inicio de la simplicidad. Algo muy importante que llevaría a todo un cambio generacional de las herramientas de desarrollo. Considero que Borland, el creador de esos compiladores, fueron visionarios del futuro de la tecnología de desarrollo.  Actualmente,  ni nos damos cuenta todo lo que un compilador hace para generar un ejecutable.

La generación de los 80 crearon los fundamentos de los sistemas modernos que tenemos actualmente. Cuando en 1985 programe por primera vez DBASE II y luego DBASE III, era lo que le faltaban a los sistemas para tener el poder de datos persistentes.  Bajo un modelo relacional, la tecnología XBASE evoluciono hasta lo que conocemos actualmente.  Vaya que si es importante, surgieron los intérpretes DBASE III y DBASE IV, así como FOXPRO. Fueron los años maravillosos para los desarrolladores de Software, podía mirar a las empresas y ofrecer productos que eran rápido de construirse y ofrecerlos a clientes con pocos recursos, los cuales no tenían dinero de comprar un Mainframe.

Aquellos años de innovación, requería de una herramienta que permita generar un ejecutable a partir de un Script de DBASE III. El año 1986 la empresa Nantucket Corporation lanzó  CLIPPER, una herramienta que permitía generar un ejecutable a partir de un Script DBASE III. Estos genios  permitieron ahorrar ciclos de desarrollo y mayor velocidad en la ejecución de los sistemas orientados a acceso a Base de datos. Ellos crearon 2 compiladores, la versión llamada AUTUMN 86 y SUMMER 87. Esto hizo que los requerimientos de sistemas especializados en procesamiento de datos empresariales, creciera de forma sorprendente. Fue una maravilla, las pequeñas empresas se beneficiaban con sistemas de bajo costo, causando una masificación de las redes de computadoras personales.

Gran parte de la explosión de los procesos automatizados en las empresas conllevo a la necesidad de sistemas operativos de RED. Una empresa que se consolido en el mercado fue Novell, con su sistema operativo Novell NetWare.   Las empresas podían acceder a los datos y archivos en RED. Con un servidor central y clientes con sistemas operativos Microsoft DOS. Me acuerdo que teníamos problemas cuando una PC se malograba, esta causaba en una RED lineal que las demás estaciones pierdan conexión.  La topología de RED usaba cable coaxial.

Los 90 fue una consolidación de las microcomputadoras en las empresas. Creo que el inicio de esa década avistaba la decadencia de los grandes sistemas que se ejecutaban sobre los MainFrame. Los lenguajes de programación legendarios como  ASSEMBLER, COBOL, FORTRAN y RPG iniciaron un proceso de estancamiento. Las microcomputadoras mejoraron ostensiblemente el rendimiento con los nuevos procesadores. Ya comenzamos a pensar en procesadores de 32 Bits. Había pasado la época de los procesadores de 8 y 16 bits. Mis libros de sobre procesadores de 16 bits, estaba quedando en el olvido.  Esta nueva época trajo consigo una nueva forma de programación; ya no era necesario pensar programar en ensamblador, o generar rutinas en ANSI C. Los nuevos procesadores eran tan rápidos, que ya no era necesario enterrarse para obtener tiempos de respuesta rápido.

Cuando comencé a programar la primera vez el lenguaje ANSI C, era finales de los 80, creo que fue en 1988. Llego a mis manos el compilador Turbo C.  Me quede maravillado por este lenguaje. Era una alternativa a programar en Macro Ensamblador. Era más simple y menos engorroso; con algo adicional muy importante, programabas en modo estructurado y era entendible.  Siempre me acuerdo del primer programa: “Hola mundo”.  Estaba en los manuales básicos que venían con el compilador. Considero que es el mejor lenguaje de programación que ha existido e inclusive, mejor que los presentes. Es un lenguaje legendario que perdura en el tiempo. Actualmente es usado para el desarrollo de sistemas en tiempo real; es un lenguaje ideal para crear sistemas embebidos dado que no tiene entradas ni salidas, no tiene librerías que necesites ejecutar; todas las librerías son externas al lenguaje.  Si necesitas implementar una entrada y una salida de datos, es abstracto, cualquier cosa puede ser una entrada o salida.  El compilador te permitía poder declarar funciones en código ensamblador puro dentro del código ANSI C.

Después de cinco años de manejar ANSI C, vino lo mejor, implementar sistemas comerciales totalmente en lenguaje C. Comencé a construir sistemas para la empresa donde trabajaba como Jefe de sistemas. Pero necesitaba algo para dar el impulso que se requería en un sistema empresarial, el acceso a los datos. En esa época, en los años 1993, se manejaba la tecnología XBASE. Compramos una librería para acceder a las bases de datos DBF, era un conjunto de librerías llamada CODE BASE. Desarrollado por una empresa Canadiense llamada Sequiter Software, estas librerías estaban desarrolladas en lenguaje ANSI C. Extremadamente potentes en procesamiento, perfecto para lo que buscaba.  Los sistemas desarrollados en lenguaje C, eran potentes para procesamiento en memoria, y, con el complemento de acceso a Base de datos XBASE, nuestros clientes estaban muy satisfechos con los resultados. Estos años fueron increíbles, formé programadores de una gran capacidad técnica. En aquellos años, los programadores en lenguaje C eran de un grupo elite y muy respetados. El lenguaje C era considerado un lenguaje muy complejo de aprender (Cosa que no era muy cierta, desde mi punto de vista).

A inicios de los 90, si bien se usaba Windows, creo que no era una herramienta confiable; muchas empresas aun mantenían el DOS como sistema operativo empresarial. Pero cuando Microsoft lanzo la versión Windows 3.1, cambió radicalmente la forma como las empresas vieron a Windows. Ahora, era posible poder tenerlo como un sistema operativo que podía formar parte de las estaciones de trabajo empresarial.  Microsoft tuvo que trabajar duro para hacerlo compatible con las Redes Novell Netware. Microsoft tenía su protocolo de RED, incompatible con Novell. Pero con suma habilidad, permitió poder instalar el Software cliente de Novell en la versión de Windows 3.1.  Novell NetWare era de lejos un mejor sistema operativo de RED.

Aun muchos desarrollares se especializaban en el desarrollo sobre plataformas Novell NetWare. En esos años no se implementaba el protocolo TCP/IP en redes de microcomputadoras. Era si, muy utilizado en grandes redes.  Esta falta de estandarización obligaba a tener que programar los sistemas considerando muchos componentes de redes disímiles. Cada vez que teníamos que configurar una RED Novell NetWare, era toda una faena de 9 horas de trabajo.

Espero que este primer artículo sea de su interés, tratare de ser más conciso en la segunda parte.