[SP-pm] Otávio: NÃO USE PERL NEM OPEN-SOURCE! [Was: Boas Vindas ao Otávio Fernandes]

Luis Motta Campos luismottacampos em yahoo.co.uk
Quarta Abril 18 06:02:52 PDT 2007


On Apr 18, 2007, at 2:43 PM, Otávio Fernandes wrote:
>>    Você sabe usar o seu pre-processador C? Ou você tem medo dele?
>
> não tenho medo não, mas não entedi onde vc quer chegar ...

   C é uma linguagem verborrágica, e a gente se repete muito.
   Mas a maior parte dos controles e verificações podem ser  
executados por macros.
   Se você tem uma boa biblioteca de macros, desenvolvida ao longo do  
tempo de acordo com a suas necessidades, não vai ter coragem de jogá- 
la fora, e vai achar que qualquer outra linguagem é mais produtiva  
que o seu C sem regras e sem macros.

   Exemplo: o Itaú usa uma pseudo-linguagem para gerar muitas  
aplicações internas em C. Os programadores mal tem a noção que  
programam C, já que a maior parte do tempo basta usar as macros para  
expandir C o bastante para realizar o que eles precisam.

   Minha cunhada trabalha nisso, e é impressionante escutar ela falar  
sobre a produtividade. E olha que o ANSI C dela não é nenhuma  
maravilha... é aquele arroz-com-feijão da faculdade.

   Como você reclama de produtividade com C, eu deduzo que você nunca  
usou o seu pre-processador para nada muito grande, nem para nada  
conscientemente maligno...

   Claro, é preciso que um programador mais experiente com a  
linguagem te guie no início, não é algo para sair fazendo do nada. É  
preciso saber que tipo de testes você vai ter, por exemplo, e  
estabelecer normas para cada pequeno "jargão" que você vai  
transformar em macros.

   Aqui, um programa C:

   #include "company_macros.h"
   #include "database_macros.h"
   #include "io_magic.h"
   #include "user_interface_magic.h"
   #include "report_generation_macros.h"
   STRING filename = ASK_USER;
   FILE_HANDLE handle = OPEN filename;
   DB_HANDLE db = CONNECT_TO_DATABASE('accountance');
   ACC_DATA week_data = GET_ACC_WEEK_DATA( db );
   REPORT report = GENERATE_ACCOUNTANCE_WEEK_REPORT( week_data );
   CLOSE_FILE( handle );
   CLOSE_DB( db );
   CLAIM_MEMORY( week_data );
   PDF_OUTPUT_REPORT( report );
   CLAIM_MEMORY( report );
   CLEANUP;

   Espero que agora você perca o medo do seu pre-processador. Ele  
morde, mas é seu amigo... ;-)
   Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}




Mais detalhes sobre a lista de discussão SaoPaulo-pm