Bem, recentemente vocês viram um exemplo de código enxuto, nos 4 Kbytes de código do Pac-man do Atari, pendurados num quadro na parede da retrodungeon de Blake Patterson (e eu não canso de dizer que eu MORRO DE INVEJA desse cômodo da casa dele).
Em compensação, Charles Petzold, programador, Microsoft MVP, autor de um monte de artigos sobre computação e colunista da PC Magazine por 20 anos… Resolveu expor ao mundo um “Hello World!” que ele encontrou no SDK do Windows 1.0, escrito em 1985.
Tentando justificar o injustificável, ele criava uma janela, escrevia “Hello Windows” na barra de título e na janela em si, e adicionava um item clicável no menu, a opção Sobre, que abria uma caixa de diálogo ao ser selecionada.
Agora, vamos ao atentado: O dito cujo tem QUATRO PÁGINAS de código. No Windows 3.1 ficou menor, e o próprio Charles escreveu esse novo. Mas mesmo assim, ainda está graaaaande. Quer ler o que ele tem a dizer a respeito? Clique aqui.
Pois é…
…programar em Win SDK API direto é isso aí, talvez até nos dias de hoje.
Em meados de 90 até o início dos 2000 eu escrevi muito código para Windows usando API e depois usando a MFC, que supostamente nasceu para tentar diminuir a complexidade de um código Windows e C/C++ e também para tentar possibilitar uma alternativa orientada a objeto à Win API.
Charles Petzold também é reconhecido por ter influenciado muitos programadores a usar notação húngara, que foi criada por Charles Simonyi.
A propósito, Charles Petzold é autor da melhor obra de programação para Windows que é o Programming Windows, eu mesmo tenho a versão de 1992 que é a Programming Windows 3.1, depois comprei a atualização, Programming Windows 95 e depois se tornou Programming Windows apenas, que é uma versão gingante em capa dura e que comprei na Amazon entre 2001 e 2002 senão me engano.
Programming Windows está para literatura técnica no mesmo patamar que o clássico “Linguagem C” de Dennis Ritchie e Brian Kernighan, portanto quem quer aprender de fato como o sistema funciona, deve ter na prateleira.
[]’s
PopolonY2k
Povo não diferencia programa de biblioteca. =P
A primeira versão do Hello World tinha 4 páginas porque não existia ainda uma biblioteca para lidar com os eventos.
Com o tempo, os programadores foram descobrindo a melhor forma de componentizar a bagaça, até que um dia todo mundo concordou numa biblioteca que levou ao programa Hello World de 6 dúzia de linhas.
Este programa ainda faz tudo o que o primeirão faz (e até mais), mas tá tudo em biblioteca. Se você incluir o fonte das bibliotecas usadas na listagem, você consegue fácil umas 30 páginas. =P
lembrei que o “C Completo e Total” do Herbert Schildt ja trazia um exemplo de hello world em WIN API e era bem esquisito. Mas não lembrava q era tão grande!
Em 1992 eu comprei dois compiladores C/C++ para desenvolver um emulador de terminal parauma aplicação que iria trocar dados pelo sistema STM400 do RENPAC da Embratel. UM deles era o Microsoft C++ e outro o Borland Turbo C++ 3.0. Fiquei abestalhado como era complicado e confuso o compilador da Microsoft e com o contraste com a qualidade do compilador da Borland. O Turbo C da Borland era um compilador completo, com uma interface excelente e intuitiva, com janelas redimensionáveis e um help sensível ao contexto com ligações de Hipertexto, tudo em modo texto, mas com funcionalidade equivalente aos melhores softwares para o então novíssimo Windows 3.11.
Trabalhei muitos anos com o Visual BAsic da Microsoft, inclusive desenvolvendo componentes OCX e DLLs ActiveX, com uso de uns truques pouco documentados do Register do Windows e posso dizer com conhecimento de causa que a Microsoft é gera códigos extremamente prolixos e com pouca legibilidade. Não sou um Microsoft Hater mas não gosto nem um pouco do estilo e da forma [des]organizar o código da MIcrosoft. Melhorou muito com a tecnologia .NET (DOTNET), mas ainda acho que a MIcrosoft complica as coisas excessivamente, talvez até por razões comerciais e não técnicas.
Me recordo de uma análise feita pela PC Magazine Brasil, também por esta época, em que comparava o Microsoft C/C++ o Borland Turbo C/C++ e um terceiro que não me recordo no momento. Lembro deles comentando que a Microsoft recomendava o compilador dela para o desenvolvimento de aplicações para o Windows mas o treco não possuía ferramenta alguma que rodasse no Windows! Tudo deveria ser feito a partir do DOS (até mesmo o desenho da janela) e depois compilado. Ao mesmo tempo a solução da Borland também compilava em Windows mas com a diferença de vir com várias ferramentas que rodavam em modo gráfico.