O que é estudado:
Até o final da década de 1970, os computadores eram utilizados somente para resolver problemas de engenharia e problemas administrativos. A preocupação dos programadores concentrava-se apenas na resolução dos problemas, ficando a interação com o usuário em segundo plano. A comunicação dos programas com os usuários era bastante rudimentar: a entrada dos dados era geralmente feita através de arquivos de textos frequentemente formatados segundo a conveniência dos programas e não dos usuários, onde o usuário utilizava um editor de texto linha a linha; os resultados de saída eram apresentados em relatórios.
Essa não interação com o usuário ocorria devido às limitações impostas pelos recursos computacionais da época, que eram limitadas quanto à memória e aos tipos de dispositivos gráficos. Contudo, com o avanço tecnológico, estas mesmas limitações foram deixando de existir e o uso dos computadores acabou se difundindo para diversas, além da administração e da engenharia, alcançando o uso doméstico, com a difusão dos micro-computadores. A partir desse momento, os computadores começaram passaram a ser limitados não pela sua capacidade computacional, mas sim pela capacidade dos programas de se comunicar com os usuários.
Foi só no final da década da mesma técnica de 19070, que o centro de pesquisa da Xerox criou o sistema Star, que era baseado na metáfora de uma mesa de trabalho, derivando daí o termo desktop, para fazer a interação homem– máquina. Após conhecer o sistema, em 1984, Steve Jobs criou o sistema de interface que roda, até hoje, nos Macintosh da Apple. O sistema projetado por Steve Jobs também utiliza a metáfora de uma mesa de trabalho, além de utilizar extensivamente recursos gráficos; suas principais características são:
- um dispositivo para apontar, tipicamente um mouse;
- menu de barra, que pode aparecer e desaparecer sob controle do mouse;
- janelas que exibem o que o computador está fazendo;
- ícones que representam arquivos e diretórios (folders);
- caixas de diálogos, botões e muitos outros elementos gráficos de
- interface representando técnicas de interação.
O sistema do Macintosh popularizou o uso das interfaces gráficas com usuário (GUI) fazendo surgir outros sistemas como: Macintosh Toolbox, MS-Windows, Presentation Manager, Motif, Open Look, HP-NewWave, Gem. Alguns destes sistemas disputam ainda hoje a condição de “padrão de fato”.
A grande diversidade e a falta de um padrão de fato para sistemas de interface criaram um problema para os programadores que precisavam decidir qual sistema deve ser utilizado. A escolha de um sistema errado poderia limitar o potencial comercial de uma aplicação a uma determinada plataforma. Por outro lado, se o sistema escolhido se tornasse um padrão em GUI, o número de potenciais usuários aumentaria e o programa poderia ficar a um passo do sucesso.
Podemos ilustrar a dificuldade em escolher um sistema de interface observando a disputa das duas maiores potências do mundo da micro-informática:
Microsoft e IBM. Elas trabalharam para tornar seus sistemas operacionais, Windows-NT e OS/2 respectivamente, como padrão de fato. Apesar da disputa ser sobre sistemas operacionais, cada um tem sua própria GUI para micro-computadores.
Como consequência, o sistema operacional que se saísse vencedor, levaria junto o sistema de interface. A Microsoft estava tão otimista em relação ao seu novo sistema que dizia que o Windows- NT é o unix-killer, isto é, está pretendendo entrar no mercado das workstations RISC, onde o Unix é completamente absoluto. A comunidade GUI espera ansiosamente pelo fim desta disputa, e no momento seu desfecho ainda é imprevisível.
A solução para os desenvolvedores de programas é escolher não um sistema de interface, e sim vários. Contudo, programar um aplicativo interativo que suporte vários sistemas de interface é uma tarefa penosa, pois a experiência nos mostra que aproximadamente metade do código de um programa é responsável pela interação com usuário (Marcus–van Dam [1991]). Isto se deve principalmente à necessidade de controlar vários dispositivos de entrada simultaneamente (e.g., mouse e teclado) e de atender às necessidades cognitivas dos usuários. Nota-se que os principais responsáveis pela grande quantidade de código são dependentes da plataforma computacional. Por exemplo, o tratamento do teclado e do mouse no IBM-PC/DOS difere do Unix/X11, que também difere do IBM-PC/MS-Windows.
Da mesma maneira, as primitivas gráficas necessárias na geração de um feedback são diferentes entre as plataformas. Isto implica na existência de um conjunto de funções de interface diferente para cada ambiente, aumentando significativamente o trabalho de documentação e manutenção. Sem uma ferramenta de interface adequada, o programador da aplicação acabará deixando de lado o objetivo principal do programa para se preocupar com objetos de interface nos diferentes ambientes computacionais.
Hoje os micro-computadores ou desktops domésticos passaram a apresentar outras ferramentas que auxiliam o usuário a realizar suas atividades cotidianas. Entretanto, muitas dessas ferramentas podem ser consideradas de menos importância para o funcionamento da máquina em si.
Referências
LEVY, Carlos Henrique, IUP/LED: Uma Ferramenta Portátil de Interface com
Usuário. PUC – Rio, Rio de Janeiro: 1993.