2008/02/09


Devaneios sobre interfaces e sistemas operacionais

Hoje saiu no slashdot um punhado de artigos interessantes remotamente relacionados...



O que essas coisas tem em comum é a questão da distância entre as discussões sobre que programas e SOs utilizar, e como as coisas realmente acontecem...

Como o próprio Linus diz aĺi, na hora de conversar existem inúmeras teorias e argumentos, mas na hora do "vamo ver" muda tudo. Na prática a teoria é outra...

Nesse primeiro artigo, uma das reclamações do cara tem a ver com o menu do Exploder... Isso me fez lembrar de uma coisa que percebi uma vez. Ninguém sabe ao certo o que mostrar ou não numa interface gráfica. Algumas pessoas acham que a prioridade no projeto duma interface gráfica é OCULTAR coisas. Pegar tudo que parece "difícil", e esconder do usuário.

Outros como eu adoram a possibilidade de colocar pro usuário tudo o que é possível fazer. Isso ajuda a pessoa trabalhar, porque se ela não sabe bem o que fazer, pode ir fazendo coisas aleatórias e ver no que dá. Em interface de texto isso é mais difícil, vc tem que ficar dando "help", mas nem assim... Aliás, não sei porque esse povo "ocultista" não ama interfaces de texto, já que não aparece NADA, então devia ser a mais fácil de todas, né???...


Claro que a "resposta" na verdade está no meio termo entre esconder e mostrar todas as opções (ou, como diz aquela nossa opção favorita dos menus do windows: "TODOS os programa"). Claro que a respsota é uma interface estruturada de uma forma que as opções são ou menos visíveis conforme elas são amis ou menos necessárias a cada instante.

E é aí que entra o problema. Quem vai ter saco / paciência de fazer essa interface "matadora"? Ninguém. nenhum usuário tem paciência também pra ficar configurando interfaces modulares. E aposto que um programa de machine learning que tentasse otimizar uma interface também falharia...

Porque?: Porque simplesmente não existe "ótimo". Ninguém sabe ao certo o que quer.

Sabe outro domínio em que exsite um sofrimento semelhante? Na tal programação orienta a objetos... Meu ídolo, Bjarne Stroustrup, fala sempre sobre criar expressões sintaticamente simples para operações mais simples e mais eficientes, a serem beneficiadas, e expressões mais complicadas pra cosias q nós queremos que os programadores evitem. Mas quantas boas bibliotecas vc já viu / usou por aí? Passei por muito poucos momentos da minha vida em que vi expressões que achei assim, "poéticas"... Ninguém tem paciência pra definir essa tal linguagem / biblioteca maravilhosa. É mais fácil usar nosso poder de adaptação humano usando uma interface sub-ótima...

Ou seja, fala-se muito, e faz-se pouco. Em parte por preguiça, e em parte porque essa coisa perfeita que estamos procurando não existe.

***

Algo similar acontece no mundo político do software livre. No começo da entrevista do Linus eles falam sobre Linux no terceiro mundo. Não entendi o que ele quis dizer... Até onde eu sei, o Linux e outros softwares livres são MENOS utilizados no terceiro mundo do que no primeiro. É um fenômeno de causas complexas... Usa-se menos do que se podia / devia, mas ainda fala-se muito em Linux sendo utilizado por pobres.

É a mesma situação, existe a idéia, a boa idéia, mas não dá muito certo, em parte por preguiça de se fazer o que tem que ser feito (tanto pelos programadores quanto pelos usuários), e em parte o objetivo que se quer alcançar nem existe, ou está sempre mudando.

***

Fala-se muito em comparação entre programas, em "funcionalidade" das coisas... (ao mesno tempo fala-se em ocultar a funcionalidade das coisas pra manter tudo simples, mas...) O que as pessoas não falam é sobre o verdadeiro problema que existem em utilizar um computador: quando as coisas NÃO FUNCIONAM. Ninguém fala bem sobre os problemas de se instalar e atualizar programas, e na verdade este é o cerne (o "kernel") da questão!!...

Eu sempre falo: na engenharia a gente passa 10% do tempo estudando como as coiass funcionam. Os outros 90% é analisando o que acontece quando as coisas não funcionam. Na computação é tipo isso. A gente fala muito sobre as cosias funcionando, ma so trabalho em se "instalar" algo, é porque existem problemas, e estas coisas não funcionam direito.

Por isso não tem sentido comparar windows com linux com sei lá o que. A gente tá comparando coisas que funcionam, e quando a coisa funciona, todo mundo tá feliz. O problema é quando as coisas não funcionam. E que justiça existe em comparar os problemas? Cada problema de cada pessoa em cada distribuição é uma coisa diferente, única, incomparável. Problemas são singulares... Mesmo porque problemas freqüentes e parecidos e simples são rapidamente resolvidos pelo programadores e usuários, e deixam de existir rapidamente.

Por essas e outras a "computação autonômica" tá vindo aí... Vamos ver se vai pra frente......

Enfim... Só queria chamar a tenção pra isso... As pessoas falam como se tudo fosse simples, mas na hora do vamo ver, todos programas são incompletos, sub-ótimos, mal-feitos... Pro trabalho que Realmente Importa todos sistemas são igualmente ruins.

No comments: