Software
Vicente Suárez
En unidades anteriores se mencionó el término software, sin traducción a nuestro idioma. Esta unidad tratará este tema de manera consistente. Antes que nada una definición de diccionario:Sistemas Operativos.Software es un término general para definir a los programas de computadoras, y algunas veces también a los datos. Es lo opuesto a hardware, los componentes físicos de la computadora. Todos los sistemas computacionales reúnen hardware y software. El primero ejecuta tareas y operaciones bajo el control de una secuencia de instrucciones provistas por el segundo.
El software es el instrumento mediante el cual el usuario se puede comunicar con el ordenador. El Software es un conjunto de programas, documentos, procedimientos, y rutinas asociados con la operación de un sistema de computo que le dicen qué y cómo hacerlo. Comúnmente a los programas de computación se les llama software; el software asegura que el programa o sistema cumpla por completo con sus objetivos, opera con eficiencia, está adecuadamente documentado, y suficientemente sencillo de operar.
Es simplemente el conjunto de instrucciones individuales que se le proporciona al microprocesador para que pueda procesar los datos y generar los resultados esperados. Es el complemento del hardware, y de hecho este tiene poco valor sin el software. El hardware por si solo no puede hacer nada, pues es necesario que exista el software, cuyas instrucciones hacen funcionar al hardware. Al cargar un programa en una computadora, la máquina actuará como si recibiera una educación instantánea; de pronto "sabe" cómo pensar y cómo operar.
Estudiaremos tres niveles de software: el sistema operativo, los lenguajes de programación y las aplicaciones de corte general.
Programación.Caracterización.
Cuando aparecieron las primeras computadoras la información que se manejaba estaba centralizada, es decir en un solo lugar, y este era la UCP de la computadora. Los usuarios no tenían modo directo de llegar a la información como lo tienen ahora en las computadoras modernas. Con ellas se ha llegado a la era del usuario, ahora el grado de descentralización es total, de tal manera, que hasta se usa el término de computadora personal. En esta evolución no participa sólo el hardware, sino un componente que parece invisible para el usuario: el sistema operativo.
En general, un sistema operativo es el gestor y organizador de todas las actividades que realiza la computadora. Marca las pautas según las cuales se intercambia información entre la memoria central y la externa, y determina las operaciones elementales que puede realizar el procesador. El sistema operativo, debe ser cargado en la memoria central antes que ninguna otra información. El sistema operativo controla el poderío de la computadora. Un ordenador sin sistema, no reconocería el ingreso de información desde el teclado o no desplegaría mensajes o información en el monitor. Por lo anterior, el sistema operativo es un programa que maneja el hardware en primera instancia. En realidad tiene muchas más funciones. El sistema operativo viene a hacer posible la relación entre el usuario y la computadora con sus componentes, el hardware y el software. Entrando en detalle, un sistema operativo (SO) es en sí mismo un programa de computadora. Sin embargo, es un programa muy especial, quizá el más complejo e importante en una computadora. El SO "despierta" a la computadora y hace que reconozca a la CPU, la memoria, el teclado, el sistema de vídeo y las unidades de disco. Además, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicación. Cuando enciendes una computadora, lo primero que esta hace es llevar a cabo un autodiagnóstico llamado autoprueba de encendido: Power On Self Test, POST, durante ella, la computadora identifica su memoria, sus discos, su teclado, su sistema de vídeo y cualquier otro dispositivo conectado a ella. Lo siguiente que la computadora hace es buscar un SO para arrancar (boot). Una vez que la computadora ha puesto en marcha su SO, mantiene al menos parte de este en su memoria en todo momento.
Existen numerosos sistemas operativos; su elección depende principalmente de la envergadura de los objetivos del sistema de cómputo a utilizar. Por ejemplo; uso personal, procesamiento de texto, manejo de medios básico, hojas de cálculo; control de una empresa mediana o pequeña, contabilidad y administración; empresas con extensivo de multimedios, vídeo, audio, animación; empresas con necesidades extensas de manejo de información, bases de datos, desarrollo de sistemas, manejo de información en tiempo real. En fin, las necesidades y los sistemas pueden formar una pareja que satisfaga ambos elementos. Algunos nombres conocidos son MS-DOS, System 7, Aix, UNIX, VAX, OS/2, Windows, Linux y muchos más. Sus características principales se muestran a continuación.
Servicios de un sistema operativo. Un sistema operativo tiene cuatro tareas principales genéricamente.MS-DOS. Al hablar de este sistema nos estamos remontando al pasado no muy lejano. El MS-DOS es un sistema operativo para PCs. Significa MicroSoft Disk Operating System, IBM también lo distribuyó como PC-DOS. Su antecedente es el CP/M el primer sistema para PCs 8086 y 8088, sin embargo, a partir de su versión 2 incluyó estructuras de directorio como las de otro sistema muy popular, el UNIX. En cuanto a las características mencionadas en el inciso anterior, se tiene.
- Determina la arquitectura de la computadora desde el punto de vista del usuario y del programador. Define el acceso a la información. En algunos sistemas al trabajar en una aplicación se está atado a ella, es decir, para poder trabajar con otra aplicación se necesita salir de esta y llamar a la otra sin posibilidad de llamar a la primera. Lo contrario es trabajar en un sistema multitarea donde el ingreso a diferentes aplicaciones y el compartimiento de datos entre ellas son característica obligada.
- Determina la interfaz de trabajo. La manera que el usuario "ve" e interactúa con la computadora es llamada interfaz. Básicamente existen dos interfaces de texto y gráfica. En la primera, se introducen palabras y símbolos desde el teclado de la computadora; el usuario debe conocer e incluso memorizar comandos u órdenes para comunicar sus deseos al ordenador. Ejemplo, el MS-DOS y UNIX. En la segunda existe una iconografía que le permite al usuario deducir las tareas por medio de iconos sin tener que memorizar comandos. Es común el uso de un mouse para seleccionar las funciones que representan esas figuras o iconos.
- Administración de hardware y software. Un sistema operativo puede compartir el tiempo del procesador para ser dedicado a un usuario o a varios. Esto define al sistema como monousuario o multiusuario. Además, cuando se ejecutan los programas, ellos necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada/Salida (impresoras, módems, etc). El SO sirve de intermediario entre los programas y el hardware. Otra de las funciones importantes del SO es proporcionar servicios a otros programas. Estos servicios son similares a aquellos que el SO proporciona directamente a los usuarios. Por ejemplo, listar los archivos, grabarlos a disco, eliminar archivos, revisar espacio disponible, etc. Cuando los programadores escriben programas de computadora, incluyen en sus programas instrucciones que solicitan los servicios del SO. Estas instrucciones son conocidas como llamadas del sistema.
- Administración de los sistemas de archivo. Los SO agrupan la información dentro de compartimentos lógicos para almacenarlos en el disco. Estos grupos de información son llamados archivos. Los archivos pueden contener instrucciones de programas o información creada por el usuario. El SO mantiene una lista de los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y manipular estos archivos.
DOS es un sistema operativo con interfaz textual. Es un sistema de texto y de línea de comandos. La manera de interaccionar es por medio de un prompt (C:). El usuario tiene que recordar una serie de palabras reservadas y su sintaxis para dar órdenes al ordenador. Es un sistema monotarea, es decir sólo puede servir de apoyo en sus rutinas a una tarea. El tiempo máquina de la CPU sólo permite las operaciones de una tarea a la vez por lo que sólo sirve a un usuario y a una aplicación.
Administra los archivos y directorios y da mantenimiento a discos. Los programas en DOS tienen una estructura jerárquica, es decir, que el programa principal llama a los módulos o subrutinas de manera predecible o incluso estructurada. Permite la configuración de hardware y software. DOS es un sistema que trabaja el modo usuario de los microprocesadores, por lo que la memoria está limitada a 640K de memoria base.
Windows. Todos los recursos que nos ofrece la computadora están administrados por el sistema operativo. Como ya sabemos, el sistema operativo toma el control de la máquina y ejecuta las ordenes que le damos. El MS-DOS era un sistema operativo que cumplía bien con esas tareas, sin embargo, el avance de la computación hizo necesaria una administración de recursos más eficiente y con mayor interacción con el usuario.Windows 1.0 fue presentado en noviembre de 1985. Básicamente trató de proveer al usuario de un sistema de ventanas de multitarea apropiativa, es decir, que la aplicación que se ejecutaba se apoderaba del procesador y Windows no podía quitarle el control. Sin embargo, en ese tiempo las PCs tenían limitaciones gráficas terribles así como de capacidad de procesamiento y administración de memoria. El nacimiento de Windows en esas condiciones desalentó a los usuarios. Si a esto agregamos el poderío de las computadoras Apple, Windows estaba condenado a morir prematuramente. Todo este panorama hasta la mitad de los 80 no sufrió cambios. Una serie de hechos vino a dar un giro a la situación.
En mayo de 1990 la aparición de la versión 3.0, mejoró ampliamente la GUI, Graphic User Interface, para todos los sistemas 286 y 386. Con la aparición de Windows 3.1 en 1992, Microsoft le dio carpetazo a las PC XT, pero el incremento de la potencia para las máquinas restantes y para las 80486 hacia que valiera la pena el cambio. Las principales diferencias o bien ventajas eran: interfaz de usuario gráfica e intuitiva, transferencia de datos por medio de OLE, servicios clásicos de administración de recursos y de información (archivos, impresión), capacidad de multitarea.
Los programas Windows, consisten en cierto modo de un ambiente "ecológico" de objetos coexistentes, que envían y reciben mensajes que describen su estado. Estos son los menús, las listas, las ventanas, los botones, etc. Ellos pueden ser activados en cualquier momento lógico de la sesión de un usuario con la computadora.
Esto da pauta a un nuevo concepto: la programación manejada por eventos. Los programas del DOS parecían controlar al usuario, en cambio en Windows, el usuario controla al programa.
UNIX. El sistema UNIX se volvió bastante popular desde su presentación en 1969, funcionando desde microprocesadores hasta mainframes El sistema está dividido en dos partes. La primera parte está formado por programas y servicios que han hecho del sistema UNIX un entorno muy popular; es la parte visible para el usuario, incluyendo programas como el shell, mail, paquetes de procesamiento de textos, y compiladores. La segunda parte está formada por el sistema operativo que soporta estos programas y servicios.UNIX nació en 1969 en una mainframe 635 de General Electric. A la vez, los Laboratorios Bell de AT&T habían completado el desarrollo de Multics, un sistema multiusuario que falló por su gran demanda de disco y memoria. En respuesta a Multics, los ingenieros de sistemas Kenneth Thompson y Dennis Ritchie inventaron el UNIX. Inicialmente, Thompson y Ritchie diseñaron un sistema de archivos para su uso exclusivo, pero pronto lo cargaron en una DEC PDP-7, una computadora con solo 18 kilobytes de memoria. Este suministraba una larga serie de puertos. En 1970, fue cargado en una PDP-11, y el Runoff, el predecesor del Troff, se convirtió en el primer procesador de texto de UNIX.
En 1971, UNIX recibió reconocimiento oficial de AT&T cuando la firma lo usó para escribir manuales. La segunda edición dio forma al UNIX moderno con la introducción del lenguaje de programación C y sobre los 18 meses siguientes, el concepto de los pipes. Los pipes fueron importantes por muchas razones. Representaron una nueva forma de tratamiento de datos. Desde un punto de vista moderno, los pipes son un mecanismo orientado a objetos, porque entregan datos desde un objeto, o programa, a otro objeto. Mientras tanto, había mucha actividad con el C. El C es otro producto de los Laboratorios Bell. Fue formado a partir de conceptos de otros tres lenguajes: B, CPL (Combined Programming Lenguage) y Algol-60. A finales de 1973, después de que Ritchie añadió soporte para variables globales y estructuras, C se convirtió en el lenguaje de programación de UNIX preferente. (Brian Kernigham, quien ayudó a Ritchie a desarrollar el C, añadió la R al estándar K&R, es el estándar preferido hasta la aceptación del ANSI C). El ascenso del C fue responsable del concepto de portabilidad. Escrito en C, el entorno UNIX pudo ser relativamente fácil de trasladar a diferentes plataformas hardware. Las aplicaciones escritas en C pudieron ser fáciles de transportar entre diferentes variantes de UNIX. En esta situación nació el primer criterio de sistema abierto: portabilidad OS, la posibilidad de mover software desde una plataforma hardware a otra de una forma estándar.
En 1974, la quinta edición de UNIX se realizó pensando en las universidades. El precio de la versión 5 fue suficiente para recuperar los costos de las cintas y manuales. Se informó de los errores directamente a Thompson y Ritchie, quienes los reparaban a los pocos días de la notificación. En 1975, la sexta edición de UNIX fue desarrollada e iniciada para ser ampliamente usada. Durante este tiempo, los usuarios se hicieron activos, los grupos de usuarios fueron formados, y en 1976, se estableció el grupo de usuarios USENIX. En 1977, Interactive System Corp. inició la venta de UNIX en el mercado comercial. Durante este tiempo, UNIX también adquirió más poder, incluyendo soporte para procesadores punto flotante, microcódigo y administración de memoria.
Con la creciente popularidad de los microprocesadores, otras compañías trasladaron el UNIX a nuevas máquinas, pero su simplicidad y claridad tentó a muchos a aumentar su poder bajo sus puntos de vista, resultando muchas variantes del sistema básico. En el período entre 1977 y 1982, los Laboratorios Bell combinaron algunas variantes de AT&T dentro de un sistema simple, conocido comercialmente como UNIX System III. Los Laboratorios Bell más tarde añadieron muchas características nuevas al UNIX System III, llamando al nuevo producto UNIX System V, y AT&T anunció su apoyo oficial al System V en enero de 1983. Sin embargo, algunas personas en la Universidad de California en Berkeley habían desarrollado una variante del UNIX BSD, para máquinas VAX, incluyendo algunas nuevas e interesantes características.
A comienzos de 1984, había sobre 100,000 instalaciones del sistema UNIX en el mundo, funcionando en máquinas con un amplio rango de computadoras, desde microprocesadores hasta mainframes. Ningún otro sistema operativo podían hacer esta declaración. Muchas han sido las razones que han hecho posible la popularidad y el éxito del sistema UNIX:
- El sistema está escrito en un lenguaje de alto nivel, haciéndolo fácil de leer, comprender, cambiar, y mover a otras máquinas. Ritchie estimó que el primer sistema en C era de un 20% a un 40% más grande y lento porque no estaba escrito en lenguaje ensamblador, pero las ventajas de usar un lenguaje de alto nivel superaban largamente a las desventajas.
- Posee una simple interfaz de usuario con el poder de dar los servicios que los usuarios quieren.
- Usa un sistema de archivos jerárquico que permite un mantenimiento fácil y una implementación eficiente.
- Usa un formato consistente para los archivos, el flujo de bytes, haciendo a los programas de aplicación más fáciles de escribir.
- Provee una simple y consistente interfaz a los dispositivos periféricos.
- Es un sistema multiusuario y multitarea; cada usuario puede ejecutar varios procesos simultáneamente.
- Oculta la arquitectura de la máquina al usuario, haciendo fácil de escribir programas que se ejecutan en diferentes implementaciones de hardware.
Sin embargo, tiene algunos inconvenientes:
- Comandos poco claros y con demasiadas opciones.
- Escasa protección entre usuarios y sistema de archivos lento.
- A pesar de que el sistema operativo y muchos de los comandos están escritos en C, UNIX soporta otros lenguajes, incluyendo Fortran, Basic, Pascal, Ada, Cobol, Lisp y Prolog. El sistema UNIX puede soportar cualquier lenguaje que tenga un compilador o intérprete y una interfaz de sistema que defina las peticiones del usuario de los servicios del sistema operativo de la forma estándar de las peticiones usadas en los sistemas UNIX.
Actualmente, las dos familias más importantes son BSD y System V. BSD dio nacimiento a SunOS, quien se ha convertido ahora en el progenitor de muchas pequeñas variantes en el mercado de las SPARC. Tatung, por ejemplo, ofertó SPARC-OS, y Solbourne Computers ofertó SolOS. Con la adquisición de la división de sistemas operativos de Interactive Systems, Sun ha trasladado también SunOS a las arquitecturas Intel 386 y 486. System V es la versión más ampliamente usada de UNIX. Es el descendiente directo del UNIX desarrollado por AT&T en 1969. Está actualmente en la revisión 4.1 y a menudo es referenciado como SVR4, o System V Release 4. Ejemplos de descendientes de System V son ZEUS, XENIX (desarrollado por Microsoft), Idrix, LINUX.
LINUX. Linux es una versión de UNIX libremente distribuida e independiente, para plataformas con maquinas x86, Motorola 68k, Digital Alpha, Sparc, Mips y Motorola Power PC. En la actualidad, este sistema operativo es utilizado por miles de usuarios para desarrollo de software, redes y para plataformas de usuarios finales. Linux, entre los sistemas operativos alternos que existen, se ha convertido en una opción interesante. Es una implantación de la especificación POSIX con la cual cumplen todas las verdaderas versiones de UNÍX. El núcleo de Linux no usa código de AT&T o de cualquier otra fuente propietaria, la mayoría de los programas disponibles para Linux son desarrollados por el proyecto GNU de la Free Software Foundation. Este soporta un amplio espectro de aplicaciones o paquetes de programación tales como X Window, Emacs, redes de datos bajo protocolos TCP/IP (incluyendo SLIP, PPP, ISDN).Linux está disponible en Internet en cientos de servidores ftp y en discos CD-ROM de revendedores que lo ofrecen empacado, con manuales e información que es realmente la del costo, pues el programa es gratuito. Algunos de estos son: Caldera, Debian, Stackware, Red Hat. Uno de los servidores más populares que ofrecen Linux está ubicado en ftp://sunsite.unc.edu/pub/Linux/distributions, con una gran cantidad de "espejos" alrededor del mundo. El núcleo del Linux está legalmente protegido por la licencia publica GNU (GPL). Linux incluye compiladores, ensambladores, debuggers, editores de texto, paquetes de email, lectores de noticias, navegadores, servidores y programas para la creación y edición gráfica. Linux, maneja los archivos de forma jerárquica, de la misma forma que DOS, con la diferencia que el DOS está diseñado para procesadores x86 que no soportan verdaderas capacidades de múltiples tareas.
Linux fue creado originalmente por Linus Torvald en la Universidad de Helsinki en Finlandia. Este ha sido desarrollado con la ayuda de muchos programadores a través de Internet. Linus originalmente inició el hacking del núcleo como un proyecto inspirado en Minix, un pequeño sistema UNIX. El se propuso crear lo que en sus propias palabras seria un mejor Minix que el Minix. El 5 de octubre de 1991, Linus anunció su primera versión "oficial" de Linux, versión 0.02. Desde entonces, muchos programadoras han respondido a su llamado, y han ayudado a construir Linux como el sistema operativo completamente funcional que es hoy. La ultima versión estable es la versión 2.2, que soporta muchos más periféricos, desde procesadores hasta joysticks, sintonizadores de televisión, CD ROMs no ATAPI y reconoce buena cantidad de tarjetas de sonido.
Entre sus ventajas encontramos: precio, estabilidad, no se traba a cada rato, seguridad, es mucho mas seguro que otros servidores, compatibilidad, reconoce la mayoría de los otros sistemas operativos en una red, velocidad, es mucho mas veloz para realizar las tareas, posee el apoyo de miles de programadores a nivel mundial, el paquete incluye el código fuente, lo que permite modificarlo de acuerdo a las necesidades del usuario, ideal para la programación, ya que se puede programar en Linux para distintas plataformas, se puede usar en casi cualquier computadora, desde una 386, multitareas real, puede manejar múltiples procesadores. incluso hasta 16 procesadores, libre de virus, aun no se conoce ningún virus para Linux, maneja discos duros de hasta 16 terabytes, se consiguen parches con facilidad, además de ser gratuitos, se posee el apoyo de millones de usuarios a nivel mundial, los fabricantes de hardware le están dando su apoyo, como IBM y Compaq, vendedores y desarrolladores implementan un sistema de certificación para linux, la Corporación Data Internacional predice que el crecimiento de este programa será del orden de un 25 por ciento anual en el nuevo milenio.
Desventajas: Linux no cuenta con una empresa que lo respalde, por lo que no existe un verdadero soporte como el de otros sistemas operativos, Linux corre el riesgo de llegar a fragmentarse como fue el caso de UNIX, algunas empresas pueden llegar a ayudar a Linux con la intención de mejorar sus relaciones públicas, aunque en el fondo no tengan ninguna intención de utilizarlo fielmente.
Tecnología de la Información.Conceptos.
Puntualicemos algunos conceptos tradicionales alrededor de la programación y de los programas. La programación es el proceso de escribir instrucciones con objeto de automatizar un proceso en computadora. Los lenguajes de programación cierran el abismo entre las computadoras, que sólo trabajan con números binarios, y los humanos, que preferimos utilizar palabras y otros sistemas de numeración. Mediante los programas se indica a la computadora qué tarea debe realizar y como efectuarla, pero para ello es preciso introducir estas ordenes en un lenguaje que el sistema pueda entender. En principio, el ordenador sólo entiende las instrucciones en código máquina, es decir, el especifico de la computadora. Sin embargo, a partir de éstos se elaboran los llamados lenguajes de alto y bajo nivel.!Qué lejos quedan estos conceptos de las necesidades actuales de la programación moderna! Aquél que ha diseñado, desarrollado o implantado un sistema, sabe que esta definición se queda corta. La programación va más allá de las fronteras de la computación de escritorio o de la habitación preparada para una supercomputadora. Las leyes de Murphy nunca fueron más correctas como en el caso del desarrollo de un programa.
Un programador necesita desarrollar un concepto bien definido de como resolverá un problema dado. Y para llevar a cabo esto se requiere de vastos conocimientos en áreas muy lejanas a la computación a primera vista. Se llevará la definición a una conceptualización a posteriori.
Suponga que ha adquirido un automóvil. Este será el equivalente al ordenador. Saber manejar el auto, sus dispositivos, sus artefactos especializados o de lujo, se equiparan con conocer el software del ordenador. Conocer todo esto no es suficiente para decir que usted es un buen conductor, es necesario saber más. El reglamento de tránsito del lugar donde usualmente lo usará, seguir reglas cívicas como la cortesía, la precaución y el sentido común.
Del mismo modo, alrededor de la programación de una computadora se tiene un mundo de reglas, normas o requerimientos que deben ser cumplidos para convertirse en un profesional de la computación de otra manera se llega a ser un conductor computacional mediocre. Las reglas que siguen a la programación están dadas por el tipo de programación, técnicas de programación, el Desarrollo de Sistemas y el nivel de programación.
Lenguajes de programación. Naturalmente el primer lenguaje que existe en esta relación usuario/computadora es el lenguaje de la máquina basado en la lógica boleana 1s y 0s. Lenguaje que no guarda algún significado para el usuario. Enseguida encontramos los lenguajes de bajo nivel que utilizan códigos muy cercanos a los de la máquina, lo que hace posible la elaboración de programas muy potentes y rápidos, pero son de difícil aprendizaje finalmente. Debido a esto, numerosos investigadores, universidades y otros centros de investigación han diseñado lenguajes parecidos en cierta proporción al lenguaje humano. Reciben el nombre de lenguajes de alto nivel. Por el contrario, son de uso sencillo, ya que en ellos, un comando o instrucción equivale a varios de código máquina. El programador escribe programas en estos lenguajes mediante secuencias de instrucciones, después el programa se traduce a código máquina (compiladores) o se interpreta instrucción por instrucción (intérpretes). Ejemplos de lenguajes de alto nivel son Pascal, COBOL, BASIC, FORTRAN, C++, Small Talk, LISP.Antes de entrar de lleno al tema es conveniente abrir un paréntesis. Conforme los LANs comenzaron a ganar popularidad en los 60, se creó nuevamente una torre de Babel. Un programa en FORTRAN que funcionaba perfectamente en una computadora al ser llevado a otra ya no lo hacía. Las distintas versiones de lenguajes y tipos de computadora resultaban radicalmente diferentes. Entonces se establecieron reglas para tratar de estandarizar los lenguajes más usados, de esto se encargo el American National Standard Institute, y de ahí nacen las normas ANSI para los lenguajes de alto nivel. Sigamos adelante.
El objeto de desarrollar un programa puede ser cualquiera. Crear juegos de computadora, programas comerciales: nóminas, inventarios; programas educativos, de dibujo; incluso alguien podría aventurarse a crear un programa de procesamiento de textos o una hoja electrónica (de manera individual). Para desarrollar cualquier programa o aplicación es necesario seleccionar una herramienta, un lenguaje, además de saber o conocer lo mencionado en el inciso anterior. A continuación se analizan algunos de los lenguajes más populares en la historia de la computación.
FORTRAN.
FORTRAN que originalmente significa Sistema de Traducción de Fórmulas Matemáticas pero se ha abreviado como FORmula TRANslation, es el más antiguo de los lenguajes de alto nivel. Fue diseñado por un grupo al mando de John Backus, en IBM durante los años 50. El lenguaje se hizo popular en los 60, cuando otras compañías empezaron a producir sus propias versiones.
A la mitad de los setenta, virtualmente cada tipo de computadora, tenía un sistema FORTRAN 66 normalizado. Era por consiguiente posible escribir programas en FORTRAN en cualquier sistema y estar seguro que estos trabajarían en cualquier otro sistema. Una nueva norma, la ANSI X3.9-1978, fue publicada por el American National Standards Institute.
Esta norma fue definida por la Organización de Normas Internacionales, ISO como una norma internacional (ES 1539: 1980). El lenguaje es conocido como FORTRAN 77, dado que el proyecto realmente se completó en 1977 y es ahora la versión del lenguaje en uso extendido.
FORTRAN 90 es un desarrollo posterior del lenguaje que incluye todos los parámetros del FORTRAN 77, de ese modo cualquier aplicación conformada anteriormente, continuará siendo un programa válido en FORTRAN 90. Además de las estructuras de FORTRAN 77, FORTRAN 90 permite expresar los programas de manera similar a los ambiente de la informática moderna y han quedado obsoletos muchos de los mecanismos que propios en FORTRAN 77. Como la norma de FORTRAN 90 es muy grande y compleja existe, inevitablemente, un número pequeño de ambigüedades y conflictos En los últimos años, se ha desarrollado el High Performance FORTRAN (HPF) con base en FORTRAN 90. Este idioma recupera al FORTRAN 90 y también incluye otras extensiones que son muy deseables.
COBOL.
Common Business Oriented Language. El deseo de desarrollar un lenguaje de programación que fuera aceptado por cualquier tipo de computadora, reunió en Estados Unidos, a la CODASYL, Conference On Data Systems Languages, en Mayo de 1959. Esta se integró por fabricantes de computadoras, empresas privadas y representantes del Gobierno y dio lugar a la creación del COBOL, lenguaje orientado a los negocios. La primera versión fue el COBOL-60. COBOL estuvo en constante evolución gracias a las sugerencias de los usuarios y expertos, dando lugar a las revisiones de 1961, 1963 y 1965. La primera versión estándar nació en 1968, siendo revisada en 1974, llamada COBOL ANSI o COBOL-74. En la actualidad el COBOL-85 es la última versión revisada del lenguaje.
COBOL es un lenguaje compilado, es decir, existe el código fuente escrito con cualquier editor de textos y el código objeto (compilado) dispuesto para su ejecución con su correspondiente runtime. Cuando se ve un programa escrito en COBOL saltan a la vista varios aspectos:
- Su aplicación es administrativa, tiene un buen manejo de archivos y esto es obvio ya que fue el primer lenguaje que usó una estructura de datos.
- El concepto de modularidad de la programación estructurada nació con él. Está estructurado en varias partes, cada una de ella con un objetivo.
- Recuerda al idioma inglés, puesto que su gramática y su vocabulario están tomados de dicho idioma. En contraste con otros lenguajes de programación, COBOL no se concibió para cálculos complejos matemáticos o científicos, de hecho sólo dispone de comandos para realizar los cálculos mas elementales, suma, resta, multiplicación y división, sino que su empleo es apropiado para el proceso de datos en aplicaciones comerciales, utilización de grandes cantidades de datos y obtención de resultados ya sea por pantalla o impresos.
Con COBOL se pretendía un lenguaje universal, sin embargo, los numerosos fabricantes existentes en la actualidad han ido incorporando retoques y mejoras, aunque las diferencias esenciales entre ellos es mínima.
Con la llegada del sistema operativo Windows, son muchos los que intentan proveer al COBOL de esa interface gráfica, Objective Cobol, Visual Object Cobol de Microfocus, Fujitsu PowerCobol, Acucobol-GT, Vangui y Cobol-WOW de Liant (RM), etc.. que consiguen que este lenguaje siga presente en la tendencia visual. Sin embargo, son muchas las empresas que siguen dependiendo del Cobol-85 tradicional para sus proyectos debido principalmente a la estructura de su sistema informático.BASIC.
Beginners All-Purpose Symbolic Instruction Code. El BASIC fue creado por John Kemmeny y Thomas Kurtz siguiendo los lineamientos del FORTRAN sin su complicada sintaxis y que rebasará en su base al lenguaje ALGOL. El 1 de mayo de 1964 puede ser la fecha oficial de nacimiento del BASIC, en el Darthmout College.
Una pareja de universitarios Paul Allen y Williams Gates, empresarios por naturaleza, crearon un interprete de BASIC para la Altair 8800, la segunda computadora personal de la historia. Por cierto, ellos son los fundadores de Microsoft. Al principio de la década de los 80s, Microsoft desarrolló una versión que pretendió unificar criterios. Rápidamente fue aceptada por diversos fabricantes de ordenadores, Tandy, Apple, Commodore. Algunos de ellos pagaron derechos a Microsoft por incluir una versión modificada de ese BASIC. Este es probablemente el punto de popularización a nivel internacional del lenguaje. Ya que se incluyó como parte de los comandos externos del DOS, abaratando el costo para los usuarios finales.
Cuando la programación estructurada era la moda, aparecieron los lenguajes QuickBASIC de Microsoft; Turbo BASIC de Borland y True BASIC de los diseñadores originales, Kemmeny y Kurtz. Estas versiones incluyen compiladores extendidos del lenguaje, librerías que permite incluir fonts y gráficas tipo hoja de cálculo, comandos de base de datos que pretenden igualar el funcionamiento de dBASE y otras características similares
En 1991 apareció una versión del lenguaje llamada Visual BASIC, creada también por Microsoft y diseñada para operar bajo el ambiente Windows con grandes ventajas de programación sobre otros lenguajes que operan bajo el mismo ambiente. Numerosas publicaciones internacionales indicaron que este es un retorno triunfal del BASIC al uso profesional del mismo.
Pascal.
ALGOL fue un lenguaje hasta cierto punto popular, pero lo más importante es que fue inspiración para crear otros lenguajes, entre ellos el BASIC y el Pascal. Pascal fue desarrollado al final de los 60 por un científico llamado Niklaus Wirth de la Universidad Técnica de Zurich en Suiza.
En Pascal el usuario debe definir todas las variables en secciones separadas al principio de un programa. Debido a esta sintaxis rigurosa, se obtienen programas con reducido número de errores, al mismo tiempo, hace de Pascal un lenguaje adecuado para el desarrollo o solución de programas o problemas mayores. En 1983 se le designó el programa oficial para estudiantes de preparatoria en las universidades de EUA. Para las PCs el producto adecuado y popular es Turbo Pascal.
Turbo Pascal es el producto de Borland que más ayudó al reconocimiento mundial de dicha compañía. En él, Borland incluyó conceptos que se han convertido en guía para otros fabricantes de software. Algunas de sus características que hicieron de Pascal un líder son:
- La formalidad de sus estructuras combinadas con una sintaxis sencilla.
- El ambiente de desarrollo integrado (IDE).
- Las utilerías que lo acompañan y que son guía para los creadores de otros compiladores de Pascal.
Turbo Pascal 1.0 pareció en 1983 como un programa editor y compilador, para producir archivos ejecutables. Su eficiencia era buena. La versión 3.0 aparece en 1985 y con ella rutinas para manejo de gráficos en pantalla. En 1987 la versión 4.0 permitió modularizar los programas y producir archivos EXE. La versión 6.0 en 1989 fue de los primeros lenguajes que incorporaron tecnología orientada al objeto. Actualmente existe la versión 7.0 para DOS y Borland Pascal para Windows. Este producto es excelente para desarrollar aplicaciones bajo este ambiente.
C.
Es un lenguaje desarrollado por los Bell Laboratories en los 70. Su origen viene de los lenguajes BCPL (1967) y B (1970). Este lenguaje nació dentro del sistema operativo UNIX, no para sistemas de PCs. Por otro lado, la mayor parte de UNIX está escrita en C como ya se estableció. En teoría C es un lenguaje de aplicación general como BASIC y Pascal y su principal diferencia de estos es que da acceso completo al manejo interno de la computadora. Esto permite optimizar un programa de manera extrema. Actualmente el producto popular para la PC es Turbo C de Borland para DOS. Sin embargo ha aparecido una mejora al lenguaje que algunos consideran otro lenguaje, creada por Bjarne Stroustrup de la misma compañía: C++. La diferencia entre ambos es que C permite programar estructuradamente y por objetos, C++ es totalmente orientado al objeto.
Compilación. Un LAN representa poco o nada para la máquina, sólo es una serie de sentencias muy parecidas a los lenguajes humanos y que deberán ser traducidas para la comprensión y desarrollo por parte del ordenador. Es entonces que se requiere la traducción del código de alto nivel al código de bajo nivel. Las instrucciones que forman los programas son almacenados en archivos denominados archivos ejecutables puesto que al teclear su nombre (o hacer clic sobre el icono que los identifica) la computadora los carga y ejecuta las instrucciones del archivo.El contenido de un archivo ejecutable no puede ser entendido por el usuario, ya que no está hecho para que la gente lo lea, sino para que la computadora sea quien lo lea.
El proceso de traducción se denomina compilación, y el programa que lo ejecuta recibe el nombre de compilador. El código original se denomina código fuente. El código final obtenido de la compilación, es lenguaje máquina y se denomina código objeto.
Programa Fuente: Es el programa escrito en alguno de los lenguajes y que no ha sido traducido al lenguaje de la maquina, es decir el programa que no está en código de máquina y que por lo tanto no puede ser ejecutable. Programa objeto: Es aquel programa que se encuentra en lenguaje máquina y que ya es ejecutable por esta. Compilador: Es un programa que traduce un lenguaje de alto nivel al lenguaje máquina. Un programa compilado indica que ha sido traducido y está listo para ser ejecutado. La ejecución de los programas compilados es más rápida que la de los interpretados, ya que el interprete debe traducir mientras está en la fase de ejecución (saca todos los errores). Interprete: Traductor de lenguajes de programación de alto nivel, los interpretes ejecutan un programa línea por línea. El programa siempre permanece en su forma original(programa fuente) y el interprete proporciona la traducción al momento de ejecutar cada una de la s instrucciones. Lenguaje máquina: Lenguaje original de la computadora, un programa debe estar escrito en el lenguaje de la máquina para poder ser ejecutado. Este es generado por software y no por el programador. El programador escribe en un lenguaje de programación, el cual es traducido al lenguaje de máquina mediante interpretes y compiladores. Existen algunas características para evaluar un compilador.
Tipos de programación.
- Confiabilidad.
Esto es la calidad del producto final. El compilador debe cumplir con ciertos estándares oficiales del lenguaje que representa y no contener errores o bugs (por cierto, cosa difícil de lograr).- Tamaño del código.
Existen compiladores que generan programas ejecutables enormes, por ejemplo Clipper. Esto puede llegar a ser crucial para la administración de una PC.- Eficiencia.
Este término se refiere al tiempo y memoria que ocupa el compilador para compilar el programa y para ejecutar el programa.- Optimización.
Es la capacidad del compilador de mejorar el código en primera instancia, por ejemplo, el detectar repeticiones innecesarias. La generación de código para un tipo dado de microprocesador y algunas otras características.¿Programación Lineal?
Me refiero a este punto como una pregunta porqué desde el punto de vista de la historia difícilmente se considera a esto un sistema de programación. No cumple con estándares, no tiene principios, vamos, ni siquiera tiene reglas que la limiten o ayuden a su comprensión. Y debo aclarar que no depende del lenguaje sino de las ideas personales del programador. Este tipo de programación pertenece a los primeros años del uso del ordenador. La tarea del programador no tenía una división nítida entre el diseño y la codificación. El programador era prácticamente un artista, incluso la programación se consideraba un arte. Obviamente los errores se encuentran por todas partes, se llega al límite en que el propio creador de un sistema no es capaz de "desenredar" su código. De por sí, la habilidad humana para comprender la solución a un problema en una única abstracción es limitada. Esta es una barrera al desarrollo de software.
Programación Estructurada.
En 1968 la comunidad computacional fue llamada a una reflexión en las perspectivas de programación. El holandés Edsger W. Dijkstra, investigador de la Burroughs Corporation publicó "Notes on Structured Programming", su argumentación mencionaba:
- La mayoría de los programas eran innecesariamente complejos debido a la falta de una estructura matemática rigurosa.
- La mayoría de los errores en programación son predecibles.
- El uso indiscriminado de sentencias tipo GOTO convierten un programa en un plato de espagueti.
Con base en estos principios se requería el cambio de concepto; la programación es una ciencia no un arte. Es aquí donde se marca el nacimiento de una nueva manera de programar. Dijkstra propuso el uso de tres tipos de estructuras de control:
- Secuencia lineal.
Lo que significa hacer una cosa tras de otra.- Selección.
En la que el programa ejecuta una operación de entre varias.- Repetición.
En la cual se ejecuta una operación mientras que cierta condición sea válida.De este modo nacen lineamientos para un nuevo tipo de Programación:
- Estructuración en Bloques.
Las líneas del programa se organizan en grupos funcionales.- Uso de estructuras de control.
Por medio de las estructuras mencionadas por Dijkstra, se evitan los saltos indiscriminados el orden de operación.- Modularidad.
Un programa debe estar dividido en subrutinas, procedimientos o módulos. De esa manera el programa principal se vuelve como un esqueleto fácil de manejar y comprender. Por consecuencia lo mismo ocurre con los módulos.Programación Orientada al Objeto, OOP.
En los años últimos la Object Oriented Programming ha tenido gran demanda en los círculos de programación. Pero debe hacerse aquí un paréntesis. La OOP empezó en 1967. Los primeros lenguajes diseñados para trabajar así fueron el Simula y el Smalltalk. Aunque su uso nunca ha sido en producción comercial, sino en ejercicios meramente académicos son los predecesores del Pascal, C, BASIC y otros tantos lenguajes que han incorporado el objeto como centralismo. Antes de hablar del tema, es necesario desmitificar un gravamen de los programadores tanto novicios como avezados en esta materia. No es necesario volver a iniciar el proceso de aprendizaje de la programación OOP, cualquiera que conozca los principios estructurados del QuickBASIC, del Turbo Pascal o cualquier otro lenguaje tiene formada una base que le ayudará a adentrarse en la OOP. Como su nombre lo indica, la base de la OOP es el objeto. Esta conceptualización es más real de lo que parece.
Tomemos por ejemplo al televisor. Al encenderlo dejamos de preocuparnos por los elementos. La antena, el control remoto, los circuitos integrados, etc. Y el comportamiento, como se da la imagen, el sonido. El televidente simplemente lo enciende, selecciona un canal y adelante. La fórmula de la OOP es <Objeto = Código + Datos>. Dentro de los principios de la programación estructurada, se definen estructuras que almacenen los datos y procedimientos que los manipulen. En OOP ambos se combinan dentro de un objeto. Este contiene las características de una entidad es decir los datos y su comportamiento es decir sus procedimientos.
Pero entendamos esto con un ejemplo.
- Una aeronave puede ser descrita en términos físicos:
- el número de pasajeros, su velocidad, la altitud que puede alcanzar, la energía que consume, etc.
- También podemos describir un aeroplano por sus términos funcionales: el despegue, movimientos de ascenso y descenso,
- el aterrizaje, etc.
- Esto se vería así:
Type Avion = Record Velocidad : Word; Altitud : Word; Alas : (A, Ab); End; Procedure Acelerar; Begin {. . . . .} End; Procedure Aterrizar; Begin {. . . . .} End; Procedure AlasA; Begin {. . . . .} End;
Por un lado tenemos la definición de una estructura que define el comportamiento físico de un avión. Se separan los distintos comportamiento del avión en procedimientos o funciones.
- Ahora esto se ve así:
- En la declaración sólo se escriben las cabeceras de los procedimientos.
- El resto debe ser escrito por separado.
- Observe los dos siguientes casos.
- Type
- Avion = Object
- Velocidad : Word;
- Altitud : Word;
- Alas : (A, Ab);
- Procedure Arranque;
- Procedure Acelerar;
- Procedure Ascender;
- Procedure Aterrizar;
- Procedure AlasA;
- End;
- Procedure Avion.Arranque;
- Begin
- Alas := Ab;
- Velocidad := 0;
- Altitud := 0;
- End;
- Procedure Avion.AlasA;
- Begin
- Alas := A;
- End;
El resultado es que ahora en un programa se puede tener código como el siguiente:
- Var A : Avion;
- With A Do
- Begin
- Arranque;
- AlasA;
- Acelerar;
- Ascender;
- End;
Esta explicación es un esbozo de la OOP, ni siquiera una introducción. Ahora el conjunto de requisitos, reglas y sistematización puede abarcar un tomo completo. Es usted nuevo en este ambiente y se le ha puesto enfrente de un programa en Pascal. No se preocupe sólo es un ejemplo y con la ayuda de su instructor no será complicado.
Programación Visual.
Dado que Windows es actualmente la interfaz basada en DOS aceptada y utilizada para las PCs, es necesario analizar la manera de trabajar en ella. A decir verdad las primeras formas de programar a Windows fueron por medio de C, usando costosos y complicados compiladores de C, que como ya se sabe es un lenguaje eficiente y conciso pero muy críptico y complejo para el novato. Además se requería el Kit de desarrollo de software o SDK, cuyo funcionamiento no era el más eficaz y sus costos por lo menos de 1000 dls.
Finalmente aparecieron lenguajes como Borland C++ for Windows, Borland Pascal para Windows, Microsoft Visual BASIC y otros que ofrecen un ambiente de programación para Windows y librerías de objetos predefinidos que simplifican considerablemente la programación en Windows. Existen algunos conceptos importantes que reconocer en este sistema operativo.
- Librerías.
Es un conjunto de rutinas preparadas por la firma que vende el producto que apoyano la programación en el ambiente dado. Por ejemplo: TurboVision, la Microsoft Foundation Class Library.- OLE
que significa Object Linking and Embedding. Un estándar creado por Microsoft que permite la comunicación entre aplicaciones dentro de Windows.- ODBC
que significa Open Data Base Connectivity. Permite un acceso a bases de datos y a los datos mismos sin escribir código.- Programación orientada al evento.
Este es un concepto crucial en la comprensión del desarrollo de aplicaciones en Windows. Los programas en DOS se ejecutan de una manera lineal. Cuando un programa se ejecuta, se inicia al principio del mismo y se "corre" hacia abajo, una instrucción a la vez, pueden existir saltos del control estructurados en algún lugar del programa. Esto funciona bien con el DOS por ser un sistema monotarea que no necesita tomar providencias para controlar las acciones de varios programas ejecutándose al mismo tiempo, como ya se dijo. Windows sin embargo es un sistema multitarea, en el cual más de un programa puede estar trabajando concurrentemente.Por lo anterior, las aplicaciones Windows tienen que estar preparadas para ser manejadas por eventos. Por lo tanto la programación en Windows es ineludiblemente orientada al objeto y manejada por eventos.
Administración de la programación. La programación como muchas actividades humanas tiene una pirámide de tres niveles: el técnico, el administrativo y el conceptual.Nivel Técnico. En el nivel técnico se tienen las reglas del tipo de programación y las técnicas de programación. Un profesional del ramo debe conocer un número suficiente de herramientas de software para aplicarla en la fase de diseño de un sistema de manera adecuada. Pero estas herramientas seguirán un tipo de programación por lo tanto se deben conocer las reglas, requisitos y limitaciones de esa herramienta y el tipo de programación que requiere. Nivel Administrativo. En el nivel administrativo encontramos al Desarrollo de Sistemas. Esta parte de la Computación ha comenzado a desarrollar principios científicos. Una vez que se conoce la herramienta de trabajo es necesario contar con métodos que permitan ejecutar eficientemente los pasos del Desarrollo de Sistemas. Un sinnúmero de proyectos encuentran el fracaso en su camino por falta de administración en la programación. Las causas van desde falta de conocimiento en el cálculo de costos, mala planeación y proyección de tiempos y movimientos hasta carencia de trato en las relaciones humanas. Nivel Conceptual. En el nivel conceptual encontramos el nivel de programación. Esto se refiere a conceptos y políticas empresariales. La base es el trabajo en equipo. En un mundo computacional lleno de gigantes de todos colores y megaempresas que ingieren a empresas exitosas pero de menor tamaño, el individuo está prácticamente imposibilitado de llevar a cabo grandes proyectos individualmente. Por lo tanto se le ubica dentro de una empresa que sin importar el tamaño, debe de conceptualizar el desarrollo de proyectos. Los niveles de la programación según el Software Engineering Institute, fundado por el Departamento de Defensa de los EUA que estudia el desarrollo de software y disemina información acerca de prácticas adecuadas de programación, son:
- Anarquía o Inicial
. Los programadores hacen lo que individualmente piensan que es mejor y esperan que sus esfuerzo rinda frutos al final del proyecto. El costo, tiempos y calidad son generalmente impredecibles y están fuera de control. Una organización de este nivel opera sin planeación formal o técnicas de programación. Los proyectos están plagados de cambios de control pobres y las herramientas no se encuentran integradas al proceso.
- Folklore o Repetitividad.
En este nivel los programadores tienen suficiente experiencia en el desarrollo de algunos sistemas que creen haber desarrollado correctamente en el pasado. Se ha aprendido a hacer planes y a calcular costos. El poder de una organización de este tipo se basa en su repetida experiencia al desarrollar programas similares por lo que tienden a fallar cuando se enfrentan a nuevas herramientas y métodos, nuevos tipos de aplicaciones o cambios organizacionales profundos. La experiencia de la empresa la tienen individuos específicos y cuando uno de ellos abandona el trabajo, esta se pierde.
- Normativo o Definido.
El acervo de conocimiento se encuentra escrito en normas organizacionales. El proceso aún es repetitivo pero ya no depende de individuos para su preservación. Sin embargo, no se cuentan con modos para medir la eficiencia o hacer comparaciones con otros procesos. El proceso es formal pero no hay indicadores de que funcione.
- Medición o Administración.
El proceso normativo se encuentra medido en este nivel. y se colectan datos para medir la eficiencia del proceso. Este sistema elimina los problemas del nivel anterior.
- Optimización.
En los niveles anteriores la organización se centra en la repetición y las mediciones primarias para mejorar la calidad. Ahora se puede medir el número de defectos por 1000s de líneas de código y entonces se puede saber que tan buena ejecución tiene una aplicación. Por lo tanto, el proceso de programación puede modificarse, medir los resultados de la variación y establecer esta variación como una nueva norma, siempre y cuando esta sea beneficiosa. Se tienen herramientas que automáticamente colectan los datos necesarios para el análisis del proceso y su mejoramiento.Observe este ejemplo para comprender la diferencia de niveles. Un proyecto de 500,000 líneas, en el nivel 1 puede tener un costo de 33 millones de dls. y un tiempo de desarrollo de 40 meses. En el nivel 5, el mismo proyecto cuesta 1 millón de dls. y toma un período de 16 meses.
El pilar más fuerte en el que descansa el ordenador es la programación. Es el pincel por el cual el artista-programador crea su obra. Por medio de ellos se llega al desarrollo de programas o aplicaciones que dan acceso a tareas más específicas de usuarios especializados o al menos interesados en el uso de la herramienta computacional.
La computadora existe porque alguien la necesita. El usuario necesita de su velocidad, poder y demás cualidades. A su vez la computadora cubre esas necesidades y entonces se tiene un círculo. La pregunta es ¿cuáles son las necesidades del usuario? o ¿cuáles son las aplicaciones que el programador ha creado para esta herramienta? La paquetería nació para cubrir ciertas necesidades de los usuarios finales. Obviamente los campos de aplicación tratan con el manejo de información, de ahí ha nacido el término Tecnología de la Información (TI).La TI tiene múltiples aplicaciones. Sus representantes para aplicaciones empresariales, científicas y personales es vasta. El software de hojas de cálculo, de diseño asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, la multimedia pertenecen a esta categoría. La mayoría del software de uso general se vende como paquete; es decir, el programa almacenado en algún medio y documentación para usuario (manuales de referencia, plantillas de teclado y demás). El software de la TI está diseñado y escrito para realizar tareas específicas personales, empresariales o científicas como el procesamiento de nóminas, la administración de los recursos humanos o el control de inventarios. Las tendencias actuales dividen estas aplicaciones de la siguiente manera: Aplicaciones de Oficina u Ofimática, Diseño por Computadora o Infografía, Software multimedios o multimedia.
Software de oficina. Esta es la aplicación más popular de la computadora. Desde un estudiante de educación elemental hasta un profesionista, desde un docente hasta un escritor reconocido mundialmente pueden usar y usan al ordenador como medio eficientador de sus tareas. Las aplicaciones que conforman una suite de oficina son: los procesadores de texto, las hojas de cálculo, programas de presentación, y una variedad más específica de programas.Procesamiento de texto.
El procesamiento de texto es usar la computadora para generar un documento escrito. Para lograrlo se necesita obviamente de una computadora, un programa o paquete de procesamiento de texto y un dispositivo de salida que es la impresora, de otra manera no se cierra el círculo. Las ventajas son incuestionables: corrección de errores ortográficos automática o por mandato; tipografía de excelente calidad y variedad; innumerables ayudas para la edición; automatización de tareas rutinarias. Algunas de sus funciones son:
- Funciones de archivos. Un documento es un archivo, una pieza o conjunto de información. Por lo tanto se requieren comandos que permitan almacenar, abrir, cargar, borrar ese documento en o de unidades de memoria.
- Formateo de documentos. Un documento puede convertirse en una pieza de arte. Una carta por ejemplo, debe ser estética visualmente hablando. O piense en un libro. Las herramientas de formato de un procesador de texto le permiten: definir márgenes, sangrías, tamaño de la hoja, tipo de papel; definición de caracteres, tamaños, texturas; uso de columnas y tablas, adornos, bordes; definir cabeceras, píes de página, numeración de hojas, párrafos. Por ejemplo si usted ha mecanografiado una tabla de valores sabe del problema en que puede meterse. En un procesador de textos esta tarea es casi automática.
- Herramientas de edición. Esto es la corrección de errores o repetición de tareas. Entre estas funciones se encuentran los correctores de ortografía en cualquier idioma, correctores de gramática y estilo de redacción, búsqueda de texto y por ende su reemplazo. En cuanto al borrado e intercambio o movimiento de texto dentro de un documento, los procesadores de texto ofrecen bastantes comandos o posibilidades. Una de las funciones más poderosas de este tipo es el acomodar información en una lista o tabla y después pedir al procesador que la ordene alfabéticamente. Esto será hecho rápidamente y sin errores.
- Tareas especiales. Como lo indica el subtítulo, esto depende del procesador que se use. Sin embargo algunas que se han estandarizado son. El manejo de plantillas de documentos tradicionales (memorándums, cartas de negocios, cubiertas de fax, boletines de prensa) para optimizar la presentación de un documento. La posibilidad de imprimir un mismo documento de manera personalizada, como lo serían circulares a distintas personas.
Existen docenas de estos procesadores. Word Star, el líder de este campo hasta fines de los 80, marcó el paso por casi una década. Word Perfect de Corel Draw! está en el trío. Existen versiones para PC y para Macintosh. Es notable por la posibilidad de manejar una gran variedad de plantillas de documentos, sus capacidades de formato son my buenas, aunque su manejo y memorización de comandos es un tanto difícil. Word de Microsoft, es un procesador poderoso, versátil y fácil de manejar. También incluye plantillas para documentos, sus herramientas de formato son excelentes. Su curva de aprendizaje es corta. AmiPro de Lotus, es probablemente el mejor de los procesadores, su corrector ortográfico es muy veloz, sus características de impresión son amplias, su manejo de adornos, estilos y gráficos es de lo mejor.
Hojas de cálculo. Daniel Bricklin experto en sistemas de cómputo, graduado del MIT, trabajó en Digital Equipment Corporation en el desarrollo de sistemas de procesamiento de texto y en el armado de las famosas computadoras PDP. Debido a su falta de experiencia en negocios se inscribió en la Escuela de Administración de Harvard. En el desarrollo de sus estudios se le ocurrió a Bricklin que debía haber una manera más eficiente de ejecutar cálculos presupuestales y de costos. El mayor problema era que al cambiar datos había que recalcular todas las funciones relacionadas a los mismos. Debido a su experiencia computacional, pensó que este problema podía resolverse por medio de un ordenador. Esta idea se la participó a Robert Frankston, desarrollador de software independiente. En 1978 se empezó a trabajar en un programa que solucionara el problema. Para marzo de 1979 llegaron al final y el programa fue bautizado como VisiCalc, abreviatura de visible calculator. Así nació la hoja de cálculo.Una hoja de cálculo es un arreglo de columnas y renglones que forman celdas. Su uso nace de la necesidad de cálculos financieros, contables o comerciales. Visualice una hoja preimpresa de las que puede adquirir en una papelería, dónde se acostumbra hacer cálculos de nóminas, presupuestos, etc. Ese es el antecedente de las hojas de cálculo. En el ambiente de PCs, las hojas de cálculo actuales se manejan en forma muy similar, al estar basadas en una interfaz gráfica como Windows.
- Este tipo de software trabaja documentos. La hoja de cálculo es el documento más importante que se usa. Su poderío permite desarrollar cálculos financieros o administrativos en muy poco tiempo, ya que contiene una serie de funciones para administración, estadística, trigonometría, matrices, entre otras.
- Su segunda opción, base de datos, resulta no ser el mejor elemento en la hoja para el usuario. Este software es otro tipo de paquete y se estudia adelante en este capítulo.
- Una tercera opción es la de graficador, en este caso los datos numéricos existentes en la hoja podrán ser comparados de manera visual a efecto de contar con una mayor presentación y una fácil forma de comprensión para el análisis de datos.
- Estos paquetes incluyen una serie de herramientas para programación. Por medio de estas herramientas es posible la total automatización de procesos en hojas de cálculo. Las instrucciones empleadas en esta programación son llamadas macroinstrucciones.
Retomando el tema histórico, VisiCalc se convirtió en lo que se denomina un best-seller, e inspiró a muchos otros desarrolladores de software a trabajar en ideas paralelas o parecidas. En 1978, Mitchel Kappor entraba al negocio de la computación personal. Trabajaba en la misma compañía que convirtió a VisiCalc en un éxito. Estableció después la Lotus Development Corporation. En 1981, IBM oficialmente confirmó su entrada en el mercado de la computadora personal. Kapor desarrolló su Lotus 123 con base en una IBM PC, con procesador de 16 bits. El previó que esta plataforma se convertiría rápidamente en una norma. 123 combinaba algunas de las características más poderosas de VisiCalc, manejo de gráficas y posibilidades de recuperación de información. 123 es la hoja de cálculo más famosa en la historia de la PC. En mayo de 1990, se lanzó al mundo Windows 3.0. Esto significó la llegada de la interfaz de usuario gráfica al mundo de las PCs. En 1992 apareció Microsoft Excel 4.0; esta versión, aprovecha ampliamente las características de Windows 3.1. En poco tiempo se ha hecho evidente que Excel es la hoja de cálculo más fácil de usar y con mayor poder.
Actualmente VisiCalc no existe, y Micosoft Excel parece dominar el mercado. Lotus al entrar a trabajar bajo Windows perdió terreno pero en la versión 5.0 parece ganarlo nuevamente. Existe además Novell Quattro Pro, hoja muy poderosa y con un lugar preponderante en el mercado.
Bases de datos.
En cualquier actividad que desarrolle el hombre, invariablemente requerirá de algún tipo de información. De hecho, no sería posible realizar trabajo alguno si no se cuenta con ella. El hombre por naturaleza, es capaz de analizar mentalmente la información que tenga disponible. Por ejemplo, si a alguien se le pide procesar 2+2; no tendría ningún problema en hacerlo. Sin embargo, si pedimos a alguien que resuelva la siguiente ecuación:
Aunque sepa lo que implica cada término, no podría procesar esa información mentalmente, se requiere ayuda. No se quiere decir que el hombre no es capaz de resolverla, pero se requiere de tiempo, paciencia y conocimiento para hacerlo. En el momento en que necesitamos ayuda para dar solución a un problema, nuestra capacidad natural de procesamiento se ha visto rebasada y necesitamos extenderla. En estos casos podemos pensar en una computadora como solución y software especializado en el manejo de información. Este programa debe encargarse de almacenar la información, mostrarla cuando la necesitemos, ordenarla, hacer reportes, etc.
Los programas que se encargan de hacer este trabajo por nosotros se llaman Sistemas Gestores de Bases de Datos, o bien en Inglés Data Base Management System DBMS y su razón de ser es la de manejar la información que, por su cantidad, el hombre no puede manejar por sí mismo. Los gestores de bases de datos pueden ser manejadas por usuarios finales para obtener información; por un capturista para almacenarla y por un programador para diseñar el sistema.
En general el proceso puede dividirse en: diseño del sistema, captura de los datos, actualización de datos, obtención de reportes. Los gestores son capaces de manejar toda la información que necesitemos, pero no saben que información nos interesa manejar, ni el uso que le vamos a dar. Todo eso tenemos que decidirlo nosotros mismos y, aunque pudiera parecer sencillo, no lo es. Dependiendo de los datos que sean almacenados y la forma en que se acomodan, será la facilidad para manejarla.
- Principios.
La administración que realiza un DBMS consiste en varias tareas. Imagine un archivero, con sus cajones, folders y hojas de información. En cualquier empresa los encuentra. La computadora se encargará de almacenar toda esa información y optimizar su manejo. Un ejemplo de esta aplicación está en los bancos, todo el manejo de cuentas de cheques, inversiones, tarjetas de crédito no se maneja en archiveros sino en un sistema de cómputo. Otros ejemplos son el manejo de archivos de empleados en cualquier empresa, la nómina de los empleados, manejo de inventarios, listas de precios o de productos, sistemas escolares, de bibliotecas, líneas de autobuses. Para crear un sistema de bases de datos, se debe contar con una computadora, un programa DBMS, conocer el sistema de información de la empresa que usará el sistema o el sistema de información del problema que se resolverá. Para poder decidir la forma que tendrá la información, es necesario tener experiencia en el manejo de ella, pero más importante es tener una educación formal sobre las bases de datos que nos permita tomar la decisión más adecuada. Este estudio formal se llama Diseño de Bases de Datos. Se requieren conocimientos como: definición del sistema, técnicas de análisis, estructuras de datos. Esto puede llegar a ser tan complejo como el programar en lenguajes de alto nivel. De hecho, los lenguajes de alto nivel, incluyen el manejo de bases de datos como una más de sus funciones, incluso hasta las hojas de cálculo prestan este servicio aunque de manera limitada.
- Software de bases de datos.
Una aplicación de bases de datos, se encarga del manejo de la información contenida en un archivo. Construir una aplicación de base de datos en un lenguaje de programación requiere de buena experiencia en programación para escribir, probar y depurar un programa. Con la creación de los DBMS, desarrollar una aplicación de bases de datos, requiere de menos líneas y no tanta experiencia en programación. Esto no quiere decir que no es necesario saber programar, sino que la labor de programación se reduce prácticamente a la mitad, y la experiencia mayor es en el manejo de bases de datos y no en programación. Actualmente se pueden desarrollar aplicaciones de bases de datos en horas o días que tomarían semanas o meses en lenguajes como Visual BASIC o Delphi. Una base de datos se parece a la organización que sirve. A diferencia del software de propósito general, tal como un procesador de texto, una aplicación de base de datos llega a ser una parte íntima de una empresa.
- La historia
de los sistemas gestores de bases de datos, comienza en la NASA, donde un ingeniero llamado Wayne Ratliff desarrolló un programa con la idea que permitiera manejar y organizar grandes cantidades de datos. Ratliff dedicó su tiempo libre para desarrollar la primera versión de un programa gestor de bases de datos al que llamó Vulcan. Por otro lado, George Tate era un veterano de la fuerza aérea. Tate fue uno de los más ansiosos compradores de juego de componentes de la computadora Altair. Cuando terminó de armar la computadora, se encontró con el problema de no saber como hacerla funcionar y por esa razón decidió entender a las computadoras. Después de un tiempo, se volvió un experto. George Tate junto con Hal Lashlee entraron al negocio de la venta de software cuando se enteraron de Ratliff y su programa Vulcan. Negociaron los derechos de distribución con él, y como otra compañía ya tenia un producto llamado Vulcan decidieron cambiarle el nombre. El nuevo nombre del producto fue dBASE II. Nunca existió una versión llamada dBASE I que hubiera sido mejorada, sin embargo dBASE II resulto ser una gran mejora sobre todos los productos existentes para realizar tareas similares. Introducido con una gran publicidad, pronto llegó a ser de los más vendidos. La compañía que se fundó para distribuir al dBASE II fue Ashton Tate. Esta empresa continuó desarrollando al producto en subsecuentes versiones, después de dBASE II siguió dBASE III y luego dBASE III plus. Hasta ese momento no había otro producto que pudiera competir con dBASE. Todos los que lo intentaban tenían que conformarse con ser simplemente sistemas compatibles con dBASE. Sin embargo, llegó el momento en que no se conformaron con saber que dBASE era el líder del mercado y productos como Microsoft FoxPro y Clipper comenzaron a ganar terreno en el marcado de bases de datos. Ante esta situación Ashton Tate se vió obligado a mejorar al dBASE para recuperar el mercado que estaba perdiendo. En ese momento comenzó el desarrollo del dBASE IV. Las siguientes versiones de dBASE hicieron que el producto declinara como líder del mercado. En 1993, la empresa Ashton Tate es comprada por Borland International. La versión 2.0 del Borland dBASE IV y la versión de dBASE 5 para Windows, marcaron un repunte en el uso de este paquete.Diseño gráfico asistido por computadora. Desktop Publishing, Diseño de escritorio o Infografía, es un área de aplicación de reciente uso. Consiste en el reemplazo del restirador y otras herramientas clásicas de los diseñadores gráficos por una computadora. Cualquier trabajo de diseño publicitario, editorial, gráfico en una palabra, puede ser procesado por una computadora con resultados ventajosos.
- Actualmente dBASE ha desaparecido de competencia. Existen productos como Visdual FoxPro, Microsoft Access, Oracle y otros sistemas que ahora marcan camino en el mundo de los DBMS.
El resultado final no es superior en calidad al que entrega una imprenta, pero los tiempos de edición y corrección son mucho menores. Nuevamente aquí aparece la característica de gran velocidad del ordenador. El complemento del hardware en este caso es software o paquetes de diseño. Por ejemplo Page Maker, permite el trabajo de diseño editorial. Esto es, la creación de libros o cualquier documento con ese formato, panfletos, bípticos, etc.
Los procesadores de texto parecen competir con es te tipo de paquetes debido a la gama de opciones que ofrecen. Sin embargo, la paquetería de diseño es más versátil. Desde 1990 la diferencia fue notoria. El mercado actual está dominado por Corel DRAW!, Page Maker y Corel Ventura. El primero y el tercero son creados y distribuidos por Corel Systems, compañía canadiense con sede en Ottawa, Ontario. El segundo es original de Aldus Corporation, con base en Seattle, Washington. Este es uno de los primeros programas de este tipo creado para la Macintosh en 1984.
Software multimedia. El término multimedia hace referencia a tres direcciones importantes de los medios de comunicación.
- Multimodalidad, ya que se ponen en juego muchas modalidades sensoriales, y por lo tanto ya no es el texto el medio más importante.
- La integración digital de todos los medios gracias a la digitalización de la información.
- La interactividad que hace que la comunicación sea más bidireccional.
Por lo tanto, el término multimedia no es del todo apropiado ya que pretende indicar una variedad de soportes, canales de transmisión y medios, mientras que la tendencia real de estas nuevas tecnologías va en realidad encaminada en el sentido contrario, hacia la interconexión, la integración y distribución. En fin, esta conceptualización nos da una idea inicial de la magnitud del campo multimedios.
Los programas multimedia son aquellos que permiten a los usuarios combinar texto, gráficos, sonido, animación y vídeo en un trabajo, sin necesidad de saber un lenguaje de programación. Existen programas muy completos de este tipo de software como Digital Chisel, Macromedia Fireworks, Director y HyperStudio. Las aplicaciones de este tipo de software se dan en educación y capacitación, como programas tutoriales; enciclopedias y libros multimedios; juegos; presentaciones de negocios; creación de sitios u hojas en Internet.
Para aprovechar al máximo los programas multimedia, se debe contar con el siguiente equipo: una computadora mutlimedia, tarjeta de sonido, tarjeta aceleradora de vídeo, tarjeta de captura de vídeo, CD-ROM, disco duro de gran capacidad, monitor SVGA a color, micrófono y bocinas. Por lo menos, uno de los siguientes equipos: rastreador de preferencia a color, videocasetera, tocacintas, software para importar porciones de películas (Quick Time Movies), biblioteca de gráficos, dibujos (Clip art).