11 habilidades de programação que fizeram históriaO Computerworld preparou uma lista de competências que os programadores tinham de desenvolver para disputar um lugar no mercado de trabalho.Embora ainda não seja uma tarefa necessariamente fácil, desenvolver software nos dias de hoje é algo bem mais simples do que no passado. Os programadores mais veteranos sabem bem disso: muitas das tarefas que eram manuais são feitas automaticamente com as ferramentas atuais.
Computerworld conversou com antigos programadores e compilou uma lista das 11 habilidades de programação que já tiveram uma importância muito grande do passado, mas que não deixaram saudades.
1- Escrever algoritmos de ordenação à mãoHoje em dia, para obter um algoritmo de ordenação de dados, basta utilizar um código já existente nas ferramentas de programação. No entanto, os desenvolvedores dos anos 80 travavam verdadeiras batalhas nessa tarefa, pois tinham de lidar com imensas árvores binárias e todas as vezes era necessário escrever um novo código.
2- Criar as próprias interfaces gráficasOs jovens não sabem, mas as interfaces em modo texto já dominaram o mundo. Durante toda a década de 80 e começo da década de 90, era muito complicado criar alguma interface gráfica. E quem o fizesse deveria testá-la com diversos os modelos de vídeo, como DGA, EGA e VGA, da mesma forma que os desenvolvedores de aplicativos web devem testar com Firefox, Internet Explorer, Safari, entre outros.
Havia a alternativa de comprar uma biblioteca com elementos gráficos, mas ela custava muito caro e mesmo assim exigia vários dias de configuração. Com as ferramentas de hoje, basta clicar e arrastar componentes, para os quais você declara e chama funções. Bem mais fácil.
3- Lidar com "código espaguete"Muito antes do desenvolvimento orientado ao objeto, metodologia era uma palavra que não existia no vocabulário dos desenvolvedores. O fluxo de aplicação na maioria das linguagens antigas era controlado por instruções que mandavam ir à linha de código 10, por exemplo. O problema é que esta linha de código não ficava necessariamente entre as linhas 9 e 11, o que acabava gerando o “código espaguete”.
As novas linguagens orientadas a objetos, iniciadas pelo C++ no início dos anos 90, eliminaram a necessidade de programação estruturada.
4- Definir manualmente códigos multi-instância e multitarefaHoje, todos querem que seus computadores trabalhem de forma simultânea com processos de programas diversos e instâncias de um mesmo software. No entanto, os antigos sistemas operacionais eram construídos para realizar cada operação uma única vez. Programadores de linguagem C, por exemplo, gastavam finais de semanas somente com a parte de depuração do código e eliminação de bugs.
5- Escrever códigos com capacidade de automodificaçãoNos anos 60, quando a memória máxima ainda era medida em Kbytes, os programadores faziam qualquer coisa para amontoar códigos em um computador com pouquíssimo poder de processamento. Uma das alternativas era escrever programas capazes de alterar suas próprias instruções enquanto rodavam, cabendo, assim, em um espaço menor. O problema é que essa forma de trabalhar gerava um pesadelo para a manutenção do código.
6- Modificar programas em execuçãoEm algumas circunstâncias terríveis, alguns programadores precisavam realizar modificações em um software ainda durante sua operação. Isso envolvia girar botões no painel frontal do computador (sim, isso existia) e modificar instruções ou dados.
Em outra situação, os desenvolvedores precisavam se conectar a operações de segundo plano - como o spooler de uma impressora – e tinham de escrever um código para inserir em alguma seção livre de memória e então modificar uma instrução no programa em execução para que ele entendesse o novo código. Com isso, fica fácil imaginar o desastre que um mínimo erro no processo poderia causar em todas as operações.
7- Gerenciar memóriaAté a década passada, memória RAM e armazenamento eram coisas bem limitadas. Quanto mais eficientes os programas eram no gerenciamento desses recursos, melhores eram as cotações que eles ganhavam. Garantir essa eficiência consumia um tempo significativo dos desenvolvedores, que gastavam madrugadas analisando o processo de alocação de memória. Nos dias de hoje, quase todo ambiente de desenvolvimento tem bons sistemas para que os softwares possuam um gerenciamento adequado de memória.
8- Utilizar cartões perfuradosAtualmente, a velocidade com que você digita importa mais do que a precisão com que você aperta as teclas. Isso não foi verdade durante um bom tempo, quando os cartões perfurados reinavam. Para arruinar o trabalho, bastava errar uma tecla. Para poder consertar os cartões depois de erros que eram quase inevitáveis, havia vários truques: usar cartões com cores sortidas, numerar as linhas de código, entre outros. Uma situação bastante inusitada para quem começou a programar nos anos 2000.
9- Escrever códigos matemáticos e com datasAssim como o esmiuçamento de algoritmos, todas as funções matemáticas eram de responsabilidade do desenvolvedor, incluindo até mesmo questões trigonométricas. As datas também eram um caso à parte: todo desenvolvedor tinha de escrever códigos considerando anos bissextos e diversas outras variantes.
10- Trabalhar com limitações da linguagemOs antigos programadores de Windows já foram acostumados com um tipo de identificador que necessitava de prefixos. Um exemplo: pX indicava que a função se referia à variável X. Se o programador mudasse o tipo de identificador, ele teria de renomear a variável, o que poderia causar um problema em cascata. Hoje, é desnecessário usar esse tipo de identificador - a maioria dos editores de código diz instantaneamente qual é o tipo de variável.
11- Uso de hacksHá algum tempo, era comum confiar em recursos não documentados para conquistar o resultado desejado na programação. São os famosos hacks, muito presentes no cotidiano de quem desenvolvia para Visual Basic. Esses hacks causavam problemas todas as vezes que a Microsoft lançava uma nova versão do Windows. O uso de hacks não caiu em desuso, obviamente, mas a documentação de hoje melhorou significativamente.
http://computerworld.uol.com.br/carreira/2009/05/08/11-habilidades-de-programacao-que-fizeram-historia/