logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog

follow us in feedly

Belíssimo!

Retirado da página do meu sócio-camarada Fernando Roberto no Wiki C/C++:

"Foi no curso de Informática Industrial que descobriu a beleza do software do tipo que se estiver funcionando perfeitamente ninguém nota a presença dele."

Sim, isso é belíssimo! E é uma boa explicação para minha preferência por software server-side e kernel-mode. Eu discuti com um pessoal do trabalho semana passada sobre as vantagens e desvantagens de fazer programas para usuários. E cheguei a conclusão que é bem melhor fazer programas onde os usuários são outros programas. :-)

Em 15/03/2006 17:13, por Rodrigo Strauss


  
 
 
Comentários
Fernando Roberto | e-mail | em 15/03/2006 | #
Não estou desmerecendo o trabalho de programadores que compõem telas, mas o pouco tempo que trabalhei com isso, somado à vontade de programar em C/C++, fizeram com que muitas vezes fosse preciso muito trabalho para que determinada tela atendesse os desejos visuais do cliente, e exibisse os mesmos dados de uma maneira diferente.
Na minha opinião, vale mais a pena dedicar o tempo escrevendo linhas de código tentando atender uma necessidade real. Não é a toa que a maioria das ferramentas que realmente fazem coisas interessantes tem interface muito pobre ou nenhuma. Exemplos práticos disso são as ferramentas oferecidas pela Sysinternals ( http://www.sysinternals.com) e OSR Online ( http://www.osronline.com).
É necessário que uma grande empresa compre uma boa idéia de um NERD e invista em interface, e assim para que seres humanos possam usufruir a tecnologia empregada. Programadores de telas e programadores "background" vivem em planetas diferentes. Peça-me para fazer uma tela e você entenderá o que estou dizendo.
Felizmente tive poucas oportunidades de demonstrar meu talento em Design. Quando trabalhei na Provectus ( http://www.provectus.com.br), uma empresa que faz coletores de dados, me aprisionaram num display de duas linhas e quarenta colunas para que meu potencial em fazer telas não machucasse ninguém. Outros programas que eu desenvolvia lá eram apenas de uso interno da empresa e os funcionários eram obrigados a me perdoar.
É obvio que existem ferramentas que ajudam muito no desenvolvimento de interfaces. O que seria de nós sem elas. O próprio Rodrigo Strauss mandou muito bem em um aplicativo feito em WTL para um produto que desenvolvemos em uma empresa que trabalhamos juntos. O fato é que a interface de um produto pode variar bastante e isso faz nosso código muito volátil. Acredito que a ferramenta certa deve ser utilizada para fazer determinadas coisas. Criar API’s para que uma aplicação RAD possa utilizar a fim de compor um produto parece ser o mundo ideal.
Cesar | em 15/03/2006 | #
Com certeza! É muito melhor escrever para pessoas que não vêem problema em digitar um comando que ocupa três linhas da tela. :-D
Rodrigo Strauss | website | em 15/03/2006 | #
Eu gostei particularmente da tua frase por exaltar a beleza de fazer algo que ninguém vê. Um usuário comum não tem a menor idéia que existe um kernel ou mesmo um driver de filesystem fazendo o trabalho enquanto ele usa a máquina. Mas é o básico que ele precisa, sem isso nada funciona.

Eu faço telas usáveis por osmose e por seguir o "Damn Microsoft Guidelines for User Interfaces". Nada que copiar o Office não resolva. E também tem outra: se é pra fazer em WTL, aí dá ânimo de fazer interface :-)

E é legal não ter usuário. Não tem ninguém pra reclamar que alguma coisa está piscando na hora errada. Quando eu recebo reclamação aqui, é da equipe de monitoração dizendo que um componente está levando 30ms para responder. E, é claro, eu fico muito feliz com essa reclamação, já que assim eu tenho uma motivo para gastar tempo otimizando o componente.
Rodrigo Strauss | website | em 15/03/2006 | #
César, a coisa vai um pouco além: não existe usuário. :-)
Cesar | em 15/03/2006 | #
Sem usuário nenhum é melhor ainda mas são raras as oportunidades para eu escrever esse tipo de software.

Um software nesse estilo que gostei bastante de escrever foi um pequeno daemon para um gravador VoIP, ele ficava capturando os pacotes G711 que estivessem passando na rede, montava as sessões VoIP em arquivos WAV e gravava no disco junto com algumas outras infos como os IPs de origem e destino por exemplo para que outro software suasse essas infos.

Outro legal é o meu "agente de atualização assíncrona", um programa que fica vasculhando a base de dados do meu ERP recebendo eventos do PostgreSQL e fazendo tarefas e atualizações no banco de dados de acordo com os dados e os eventos do próprio banco.

Quanto a desenvolver interfaces, sempre foi um problema para mim, eu nunca gostei dos toolkits do X Window System e menos ainda da API do Windows. Cheguei a criar meu próprio toolkit com C++ conversando com o X via xlib. Agora como o negócio parece ser interface Web e eu odeio escrever código HTML estou reescrevendo parte do meu toolkit para no lugar de criar as widgets do X gerar uma saída em HTML.

Rodrigo Strauss | website | em 15/03/2006 | #
Pra mim não são tão raras, já que é exatamente meu ramo de atuação (server side e kernel mode). Acho que valeu a pena as madrugadas programando e os todos os livros lidos :-)

Como tudo que eu desenvolvo de interface é simples e não precisa ficar lindo, o dialog editor do Visual C++ é mais do que suficiente. Eu gosto mesmo é de WTL, mas ultimamente tenho feito tudo em MFC.
Wanderley Caloni Jr | website | e-mail | em 15/03/2006 | #
Sem contar que é frustante desenvolver uma interface e as pessoas acharem um lixo, quando você: 1. teve pouco tempo para desenvolvê-la - afinal as pessoas acham que interface é tipo arrastar botões e voilà - e 2. não recebeu nenhuma instrução sobre como que a coisa tem que funcionar. Geralmente o desenvolvimento é aos poucos, com as pessoas opinando e o programador de interfaces mudando tudo =)
Fabio Galuppo | website | em 15/03/2006 | #
Não sei se concordo com todos os argumentos expostos, mas fazer um "jogo 3D" é mais interessante do que qualquer outra coisa. Além de envolver física, matemática e AI temos a presença da "interface" com o usuário.... O lance é que escrever software é divertido! No entanto escrever software corporativo (o que entendo que incomodam os programadores) para satisfazer o usuário é uma merda, um trabalho chato e quase não tem um trabalho intelectual (fora o business em si). Por outro lado, trabalhos que possuem um "misticismo" (aqueles que poucas pessoas fazem) - como escrever drivers, criar bibliotecas e frameworks, utilitários, ... são legais porque demandam pesquisa, tem desafios intelectual e pouco ou nenhum envolvimento com usuário(s).

Resumindo, para um programador todo software é legal, desde que exista desafio! O fato de não notarem sua presença é porque ele está funcionando corretamente.
Rodrigo Strauss | website | em 15/03/2006 | #
Sim, mas se você programa a parte de Física ou AI de um game não tem interação direta com o usuário, e sim com o programador que vai usar a sua engine. O resultado do seu erro chega no usuário (assim como um erro no driver chega ao usuário através do BSOD), mas ele não tem controle.

Fazer coisas clicáveis e controláveis exige um grande entendimento do ser humano que vai além das capacidades de um escovador de bits normal :-)
Algo a dizer?
Nome:


Site:


E-mail:


Escreva o número vinte e seis:


 Não mostre meu e-mail no site, não serve pra nada mesmo...

Comentário





Os comentários devem ser sobre assuntos relativos ao post, eu provavelmente apagarei comentários totalmente offtopic. Se quiser me enviar uma mensagem, use o formulário de contato. E não esqueça: isso é um site pessoal e eu me reservo o direito de apagar qualquer comentário ofensivo ou inapropriado.
rebarba rebarba
  ::::