segunda-feira, 18 de janeiro de 2010

Nostalgia seletiva

Meus colegas estavam ontem reclamando que os programadores mais novos parecem ter déficit de atenção; escrevem código sem planejar e não se preocupam com o desempenho. Eu brinquei que eles estão é ficando velhos.

Concordei que seria mesmo interessante que a faculdade de informática começasse com um bom micro de 8 bits. Poucos recursos ajudam a criar caráter. Mas também fiquei com medo que alguém ainda mais velho propusesse que o primeiro semestre se passasse a cartões perfurados.

Afinal, as máquinas de 8 bits já tinham linguagens interpretadas. Não era preciso compilar BASIC. Então, o desenvolvimento já podia se dar por tentativa e erro, mesmo sem uma IDE gráfica.

O BASIC que eu aprendi (BBC Basic) permitia misturar código de máquina e até criar funções cujo assembly seria remontado a cada invocação:

3590 DEFPROCnmiread
3600 nmi$="read"
3610 VDU 21
3620 FOR opt% = 0 TO 2 STEP 2
3630 P%=&D00 :REM NMI address
3640 [
3650 OPT opt%
3660 PHA
3670 LDA statusregister%
3680 AND #&1F
3690 CMP #&03 \data ready & busy bits set
3700 BNE exit
3710 LDA dataregister%
3720 .save
3730 STA &FFFF
3740 INC save+1
3750 BNE exit
3760 INC save+2
3770 .exit
3780 PLA
3790 RTI
3800 ]
3810 NEXT
3820 VDU 6
3830 ENDPROC
Essa procedure é de um programa para ler disquetes com FAT12. É a procedure que executa a leitura. O programa envia um comando para a controladora e essa procedure monta o código que vai receber a resposta através de uma interrupção. A interrupção é tratada pelo código que estiver no endereço &D00 (linha 3630). Há um laço que inicia na linha 3620 (e que termina na linha 3810), porque o código precisa de uma montagem de duas passadas (o comando da linha 3750 faz referência a um endereço posterior).

Quanto aos jovens, acho que há muitos que já se preocupam com o desempenho de seus programas. Há muitos que conhecem a fundo o Linux, por exemplo. Outros sabem escrever aplicações de alto desempenho para a web. Os problemas de hoje, assim como as ferramentas, são diferentes e não faz mal termos idéias novas para atacá-los.

Só por segurança, é bom manter um programador grisalho na equipe.

Nenhum comentário: