Saudações pessoal.
Achei este texto sobre a arte de programar, bastante interessante. Relatando à vida de uma pessoa com o saber na ajuda de programar. Espero que gostem da leitura.
—————————————
Zen e a arte de programar
Traduzido por Handerson Ferreira Gomes
Diz a lenda que um nobre da antiga China certa vez perguntou ao seu médico, membro de uma família de terapeutas, qual de seus familiares era mais hábil na arte da medicina.
O médico, de uma reputação tão difundida que seu nome era sinônimo da própria ciência médica na China, respondeu: “Meu irmão mais velho percebe o espírito da doença e o remove antes que possa assumir qualquer forma, e por isso seu nome não sai de casa. Meu segundo irmão mais velho cura a doença quando esta ainda é bem pequena, e por isso seu nome não passa da vizinhança.
Quanto a mim, perfuro as veias, prescrevo poções e massageio a pele, e por isso, de tempos em tempos, meu nome cruza as fronteiras e chega aos ouvidos dos nobres.”
Este talvez seja um dos maiores desafios da área tecnológica, resolver problemas complexos com soluções simples. Temos sempre a vontade de fazer algo grande, complexo, difícil, para que possamos nos superar, aparecer na mídia, superar a máquina e até mesmo algumas vezes a tecnologia que estamos usando.
Tenho acompanhado dezenas de estudantes desenvolvendo sistemas complexos e trabalhosos que pouco serão aplicados no dia–a–dia, um verdadeiro genocídio de idéias e esforço intelectual.
Achar que todo o aval tecnológico existente deve ser usado em um projeto não é uma regra e nem sempre uma recomendação. Partir do desenvolvimento de uma solução para encontrar em seguida problemas que ela resolva não é a melhor forma de desenvolver um sistema. E por incrível que pareça, conheço vários sistemas que começaram assim.
A adoção de soluções simples no desenvolvimento de projetos resulta quase sempre em vários ganhos, como facilidade de manutenção do código, utilização de menos recursos de servidores, facilidade de contratação de recursos para agregar valor a equipe, para citar alguns.
Mas atenção, todo cuidado para não confundir simplicidade com comodidade. Desenvolver um sistema sem se preocupar com concorrência a base de dados, performance de acesso, disponibilidade e portabilidade não é ser simples, é ser cômodo e isso é imperdoável e crucial.
Mas nem sempre a melhor solução é a mais simples, certamente alguns projetos necessitam de uma boa dose de tecnologia e algumas vezes teremos que fazer como o médico, perfurando veias e prescrevendo poções, mas isto se aplica nos casos mais graves.
Como diz a lenda, a verdadeira arte não consiste em resolver o complexo, mas não deixá–lo complicar–se. Buscar a simplicidade. Paradoxalmente a simplicidade é difícil de ser conquistada e mais ainda de ser reconhecida. Por que?
Porque é conseguida no plano das idéias, em nossa cabeça, e não numa impressionante sucessão de classes, métodos e packages. Pouca gente sabe “ler” a beleza de uma solução simples, mesmo porque, se for mesmo simples, vai parecer natural, e portanto não parecerá obra do pensar … Não se fica famoso por fazer coisas simples, mesmo quando fazê–lo exige gênio e sabedoria.
O Tao Te King tem algo sobre isso (que, claro, serve para tudo na vida ):
“Planeja o difícil enquanto é fácil, faz o que é grande enquanto ainda é pequeno. As coisas mais difíceis devem ser feitas enquanto ainda são fáceis, as maiores enquanto ainda são pequenas. Por isso o sábio nunca faz o que é grande, e é por este motivo que alcança a grandeza”.
———————-
Abraços.