Com canudo por quê?

Eu tomo café da manhã na padaria: um suco de laranja e um croissant. Como vou sempre na mesma,  o atendente já me conhece, mas quando ele começou lá foi a mesma coisa do anterior, ele me servia o croissant, servia o suco e ia pegar um canudo, que eu sempre recusava (questões ambientais)… Se você pede um suco sempre colocam um canudo, mas se você pede um refrigerante, um chocolate quente, uma água com gás, uma cerveja… não colocam! Por quê? O copo é o mesmo. Acho que quando inventaram o canudo era para você conseguir beber um líquido de um lugar do tipo uma garrafa, ou até mesmo acho que era para crianças. Não tem  sentido servir um suco com canudo e um refrigerante sem!
No desenvolvimento de software é a mesma coisa. Não usamos canudo, mas já perceberam como fazemos coisa que não sabemos por quê? Alguém fez a primeira vez, talvez para resolver um problema específico, e outro copiou, depois outro… E de repente está todo mundo fazendo, e ninguém sabe por quê.
Por quê se usa Dataset’s? Além do fato de vários livros de .Net básicos ensinarem e o pessoal parar de estudar no básico ou intermediário, se você perguntar para algum desenvolvedor o motivo que o levou a usar Dataset ele não vai saber explicar. Teve alguma vantagem? Ele não vai saber. É mais rápido? Ele não vai saber.
Por quê usamos Try…Catch? Muitos desenvolvedores não vão saber explicar! Aliás, muitos não sabem nem mesmo usar! Ou alguém nunca viu um método FazTudo com um Try…Catch abrangendo um código gigantesco?
Por quê ainda usamos ADO.Net puro quando temos outras maneiras melhores de acessar um banco de dados? Por quê programamos estruturado em uma linguagem orientada a objetos?
Meu pai fala uma frase: “O ser humano é um animal acostumado a hábitos”.
Nós simplesmente acostumamos a fazer alguma coisa e isso vira um processo, sempre se repetindo, sem espaço para inovação, criatividade, pensar fora da caixa. E a sociedade, a vida cotidiana, força-nos mais ainda a manter esse hábito de repetição (olha a recurividade aí, hábitos já são repetitivos).
Os estudantes não são ensinados a pensar e sim a repetir, a decorar, desde os primeiros anos. Não são forçados a questionar, a verificar, a pesquisar, a tentar entender e quem sabe no futuro entender esse conhecimento sozinho. Anos atrás por conta da pobreza dos editores das linguagens de programação e também por causa da fraca tipagem era uma questão de bom senso usar um prefixo com o tipo da variável.

[code lang=”c”]<br />
float fValorTotal;<br />
int iQuantidade;<br />
[/code]

Mas era algo totalmente justificável, pois você não tinha algo como o Intellisense do VS.Net, você podia atribuir um valor decimal para uma variável declarada como inteira, e por aí vai. Mas e hoje, por quê ainda se usa esse prefixo? E por quê ele é ensinado em muitos lugares? Não tem o menor sentido. E os alunos habituados a anos a decorar sem questionar não conseguem perceber que sem o prefixo o código compila da mesma maneira.
Por quê ao ensinar o paradigma de orientação a objetos não deixamos de codar estruturado? Temos ainda o paradigma funcional, dinâmico, … Mas essa distinção não é clara para recém formados ou participantes de cursos de programação. Por que até hoje se ensina OO como se fosse uma evolução do estruturado, o que nunca foi uma verdade.
Hoje os bancos usam programação estruturada, indústrias com seus softwares MRP também, esse tipo de linguagem não vai sumir, ela tem o seu uso, e o OO não é o futuro dela.
Manter a mente aberta para o aprendizado é algo extremamente difícil, questionar processos, discutir teorias, é complicado, pois somos avessos a mudanças. Albert Einstein, disse: “A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original”. E é assim que deveríamos agir em todos os momentos da nossa vida, e precisamos de pessoas que queiram experimentar, criar, aprender e evoluir principalmente na área de software. Quem sabe assim termos mais qualidade, seremos mais econômicos, mais rápidos e assertivos. Só depende de quem faz.

Adobe Reader posto, Adobe Reader morto!

Se você acompanha esse blog sabe que sou desenvolvedor da plataforma .Net, e portanto sou mais pelo lado do software proprietério, pois ganho dinheiro com isso… Gosto dos produtos da MS, e defendo eles sempre que a discussão vai pro lado filosófico e sai das questões técnicas.

Portanto, era natural que para ler PDF eu usasse o software “original”, o Adobe Reader…
Mas uma coisa sempre me intrigou nesse software, apesar de saber que ele não é apenas uma leitor, você pode desenvolver formulários com ele. É complicadinho, usa Java Script, mas funciona e,  dizem que os norte-americanos declaram o imposto de renda assim; além de ele ter uma segurança elevada no PDF usando certificados digitais, etc… E portanto,  isso faz dele um software “robusto”. Ele é robusto DEMAIS!

É extremamente grande, extremamente pesado, e extremamente chato pois de mês em mês, ou menos, baixa uma atualização de mais de 40Mb!!! Eu disse uma atualização de mais de quarenta megabytes!! Ou seja, baixa toda vez que ele faz um update um novo Adobe Reader! Uma vez,  até eu mandei um e-mail para a Adobe perguntando o porquê de o software ser tão pesado, logicamente não tive resposta.

Bom… O tempo passou e tudo isso me fez perder a paciência, ainda mais no peso quando eu quero abrir mais de um arquivo ao mesmo tempo. E decidir matar o Adobe Reader… pelo menos na minha máquina.

Eu já havia visto algumas soluções de leitores de arquivo PDF, mas nenhuma me agradou, até que ano passado vi que o Foxit melhorou muito! A interface ficou confortável, é verdade que não é parecida com a da última versão do Adobe Reader, mas não se pode ter tudo. Mas o que mais me chama a atenção é a leveza, poxa, é pequeno e muito leve, já usava nas duas últimas empresas e agora instalei aqui em casa, e estou feliz… e leve!! 🙂

Nesse caso o software livre se mostrou muito superior ao fechado, e nesse caso em específico eu faço propaganda, mate o seu Adobe Reader também!

http://www.foxitsoftware.com/