FOCUS es un entorno de desarrollo y lenguaje de programación informática de cuarta generación (4GL) que se utiliza para crear consultas de bases de datos . Producido por Information Builders Inc., fue desarrollado originalmente para el manejo y análisis de datos en el mainframe IBM . Posteriormente se implementaron versiones para minicomputadoras como la VAX y otras plataformas [1] . [2] [3] FOCUS se extendió posteriormente a las computadoras personales y (en 1997) a la World Wide Web : el producto WebFOCUS .
El producto FOCUS de Information Builders comenzó como un producto alternativo a RAMIS de Mathematica , el primer lenguaje de programación de cuarta generación (4GL).
National CSS (NCSS), un proveedor de tiempo compartido , obtuvo derechos de licencia para que RAMIS esté disponible en su sistema VP/CSS . [4]
En algún momento Mathematica cambió el precio de su licencia. [5]
Los interesados fueron: [4]
RAMIS fue el antepasado directo de FOCUS.
Gerald D. Cohen y Peter Mittelman fueron los principales desarrolladores de RAMIS mientras trabajaban en Mathematica Products Group en 1970. Mathematica autorizó RAMIS a varios clientes internos (incluidos Nabisco y AT&T Corporation ), y también lo ofreció National Empresa de tiempo compartido CSS . En [6] octubre de 1975 [7] Cohen dejó Mathematica y formó Information Builders, después de lo cual recreó el producto que había construido en Mathematica en forma de FOCUS, que era muy similar a RAMIS: "los mismos errores y el mismo error ortográfico mensajes." [4] [8]
La sintaxis de FOCUS en sus elementos más simples es casi un clon directo de la sintaxis de RAMIS con un parecido similar a las diferencias entre varios dialectos tempranos de SQL. Al mismo tiempo, NCSS decidió trabajar en su propio producto, más tarde llamado NOMAD . Los tres productos florecieron durante la década de 1970 y principios de la de 1980, y FOCUS también se ofrecía en régimen de tiempo compartido a través de Tymeshare . [4]
El tiempo de Mathematica se acabó a mediados de los años 80, y NCSS también fracasó, víctima de la revolución de la informática personal que obvió el tiempo compartido comercial.
RAMIS se vendió a una serie de empresas y finalmente aterrizó en Computer Associates . NOMAD sufrió un destino similar. FOCUS, bajo la dirección de Cohen, siguió prosperando ampliando su línea de productos.
Competitivo libremente con SAS , [9] FOCUS nunca alcanzó el mismo grado de adopción generalizada, tal vez porque solo tenía funciones analíticas y estadísticas básicas y carecía de la amplia gama de herramientas analíticas especializadas que hicieron de SAS el estándar en campos como los ensayos clínicos farmacéuticos. . En cambio, FOCUS se concentró en una flexibilidad extrema en la importación y exportación de datos, así como en informes ad hoc para el usuario final .
Los paquetes de software con los que FOCUS se ha vinculado e integrado incluyen:
Los competidores del software de inteligencia empresarial incluyen: [12]
Aunque FOCUS se parece a otras herramientas de análisis y acceso a datos, como SQL y SAS , también incluye funciones de presentación y visualización de informes y gráficos. Automatiza el proceso de identificación de archivos para el sistema operativo , abriendo el archivo de entrada, leyendo el siguiente registro, abriendo el archivo de salida, escribiendo el siguiente registro y cerrando los archivos. Esta operación básica permite al usuario/programador concentrarse en los detalles del trabajo con los datos dentro de cada registro, de hecho trabajando casi por completo dentro de un bucle de programa implícito que se ejecuta para cada registro, algo así como RPG (Generador de programas de informes) . Otros procedimientos operan sobre el conjunto de datos en su conjunto, por ejemplo, la impresión o el análisis estadístico , y simplemente requieren que el usuario/programador identifique el conjunto de datos.
En comparación con los lenguajes de programación de propósito general , esta estructura permite que el usuario/programador esté menos familiarizado con los detalles técnicos de los datos y cómo se almacenan, y relativamente más familiarizado con la información contenida en los datos. Esto desdibuja la línea entre usuario y programador, lo que atrae a personas cuyos roles laborales son en negocios o investigación en lugar de tecnología de la información . Esto, a su vez, tiene el doble resultado de permitir respuestas rápidas a preguntas comerciales o de investigación, incluso aquellas que requieren varias iteraciones para llegar desde los resultados iniciales hasta una respuesta final; pero también puede contribuir a la construcción de una gran cantidad de código fuente mal escrito y/o difícil de mantener .
Una característica que era única en ese momento es que FOCUS presenta la capacidad para que el usuario construya un archivo de descripción de datos (llamado "descripción de archivo maestro") [13] [14] en referencia al archivo de datos real, o incluso a varios datos diferentes. archivos de descripción que abordan el mismo archivo de datos de diferentes maneras, en lugar de la práctica habitual de tener la estructura del archivo codificada en el programa.
De esta manera, se puede acceder a archivos de cualquier estructura desde cualquier fuente o producirlos de muchas maneras diferentes, eliminando gran parte de la manipulación de datos (por ejemplo, concatenación o análisis) que a veces era necesaria con otros lenguajes de programación anteriores. Por ejemplo, el usuario puede acceder al mismo archivo de datos real (lectura o escritura) ya que cada registro es una cadena de texto de 80 bytes, o como 40 campos numéricos de 2 caracteres, otros como 10 números de punto flotante de 8 bytes, etc. simplemente vuelva a escribir la descripción del archivo maestro adecuada según sea necesario.
El segundo comando produciría un informe con encabezados CUSTNAME CUSTID PROJNAME PROJCOST
Hay palabras clave para facilitar la modificación (o eliminación) de los datos existentes, y los mensajes de aviso y error de la sesión interactiva se pueden personalizar.
En 1997, [15] se introdujo una versión web de FOCUS llamada "WebFOCUS" que se basó en el acceso a datos y la base de informes de FOCUS, [16] expandiéndolos a un paradigma de cliente ligero orientado visualmente y accesible desde cualquier navegador web .
El lenguaje de WebFOCUS tiene una estructura de comando tanto "procedimental" como "no procesal". Los primeros son para una ejecución más inmediata, mientras que los segundos "se colocan en una pila de memoria para una ejecución posterior". [17]
.. incluye toda la funcionalidad de... Focus