FOCUS é um software desenvolvido pela empresa Information Builders Inc. Originalmente desenvolvido para lidar com dados e análise de Mainframes IBM, a medida que novos sistemas eram desenvolvidos e os computadores se tornavam menores e mais poderosos, as plataformas disponíveis para o FOCUS foram estendidas até os computadores pessoais, até que, em 1997, foi expandido para a WEB através do WebFOCUS.
Perdendo na competição por mercado para o Instituto SAS, FOCUS nunca alcançou o mesmo número de mainframes de seu rival, talvez por ter apenas comandos básicos de análise e estatística, sofrendo de uma falta de ferramentas de análise especializadas, que foi o que determinou o padrão da SAS em campos de atuação como o farmacêutico. Ao invés disto, FOCUS se concentrou em melhorar sua flexibilidade quanto a importação e exportação de dados e adicionou funções de relatório para o usuário-final. Competidores diretos da FOCUS incluíam a NOMAD e a RAMIS, a qual tem decaindo desde que a FOCUS têm ascendido.
Descrição da FOCUS
Criada em 1975, FOCUS, a primeira linguagem chamada de "4GL", sigla em inglês de Linguagem de Programação de Quarta Geração, lembra outras linguagens de acesso e análise de dados, tais como SQL e SAS, mas além disto ela inclui geradores de relatórios e ferramentas de apresentação. FOCUS assumiu uma estrutura de arquivos padrão, e automatizou o processo de identificação de arquivos para os Sistemas Operacionais, abrindo arquivos para escrita, leitura, e fechamento. A operação básica permite ao desenvolvedor que se concentre em detalhes de programação para cada tipo de dado, trabalhando na verdade quase que inteiramente com loops de programa que são executados para cada dado. Existem outros procedimentos que operam nos sets de dados, como por exemplo impressão e análise estatística.
Comparado a linguagens de programação em geral, sua estrutura permite que o usuário/programador tenha menos familiaridade com detalhes técnicos do banco de dados e como estes são armazenados, e relativamente mais familiar com as informações que os dados contêm. Isto diminui a linha que separa usuário de programador, se voltando mais para as áreas de negócio e pesquisa e menos para a tecnologia de informação como um todo. Isto contribui para um resultado final dúbio, onde se aliam a capacidade de fornecer respostas rápidas para questões de negócio e pesquisa, mas também pode acarretar em um código fonte difícil de se manter e compreender.
FOCUS dá a habilidade para o usuário de construir arquivos de descrição de dados (chamados de 'master file description') se referindo a um arquivo/banco de dados atual, ou até mesmo para diferentes tipos de arquivos/bancos de dados que contém as mesmas informações mas em maneiras diferentes, se distinguindo da meneira comumentemente encontrada de ter todos os dados de aplicativos em uma mesma linguagem ou até mesmo incluídos dentro do próprio programa. Desta forma, arquivos com qualquer tipo de estrutura gerados a partir de qualquer tipo de fonte podem ser acessados e manipulados de maneiras diferentes, eliminando a manipulação de dados, usualmente requerido em outras linguagens de programação para se modificar formatos de variáveis e estruturas de dados. O que acontece, na realidade, é um mapeamento das tabelas de um banco de dados e seus relacionamentos.
EM 1997, uma versão baseada em WEB do FOCUS foi introduzida, chamada de "WebFOCUS". Ela foi construída dando ênfase ao acesso a dados e geração de relatórios em diversos formatos e plataformas, podendo rodar em qualquer sistema operacional e em qualquer navegador web.
Em 2005, consultores da Information Builders, em conjunto com JPMorgan Chase, desenvolveram um tradutor de 4GL que poderia automaticamente converter programas NOMAD para se adaptar os padrões do WebFOCUS. a ComputerWorld honrou esta consolidação com o Laureate Award em 2006. Adaptações semelhantes estão sendo implementadas para converter outros programas 4GL para WebFOCUS, tais como o próprio FOCUS e o RAMIS.
Exemplo de Linguagem de Consulta do Focus
A linguagem de manipulação de dados do FOCUS (DML) é uma linguagem que permite um certo grau de formatação livre e guarda uma semelhança distante com a SQL. Por exemplo, a consulta abaixo:
TABLE FILE EMPRESAS PRINT CNPJ RAZAO_SOCIAL DATA_FUNDACAO IF FATURAMENTO GT 100000 IF RECORDLIMIT EQ 10 END
equivale a consulta SQL:
SELECT CNPJ, RAZAO_SOCIAL, DATA_FUNDACAO FROM EMPRESAS WHERE FATURAMENTO > 100000 LIMIT 10