HTML, SGML e W3C

O objetivo deste texto não é ser uma verdade absoluta, tampouco pretendo abordar todos os mínimos detalhes do tema a ser discutido, pois, provavelmente poderia ser escrita toda uma coleção de livros e ainda assim não abordaria-se todas as minúcias de um tema tão complexo.

Observação: Eu posso estar errado.

HTML quer dizer Hypertext Markup Language – Linguagem de Marcação de Hipertextos – e é baseada na SGML (Standard Generalized Markup Language – Linguagem de Marcação de Generalizada Padrão) que é a base para a criação de todas as linguagens de marcação. Elas são documentadas pelo W3C (World Wide Web Consortium) que é o órgão que regulamenta os padrões da web, o W3C, por sua vez, foi criado por Tim Berners Lee (tio Bern), o criador da tão conhecida WWW.

O mais importante é que você entenda que HTML não é linguagem de programação, é linguagem de marcação, ou seja, se você aprende HTML isso não faz de você um programador, mas sim um marcador, que títulozinho mais fubanga né? Mas é verdade, sinto muito.

A diferença básica é que num programa você entra com dados esses dados são processados e devolvidos a de alguma outra forma. Como numa calculadora, você entra com os números e a operação a ser executada, o programa calcula e devolve o resultado. Já um texto marcado você simplesmente vê um texto com uma formatação especial e com algumas funcionalidades da linguagem de marcação em questão, como hiperlinks, figuras, animações, botões etc.

Quer que eu simplifique mais? Simples, numa linguagem de marcação, você não pode dizer "some 2+2 e exiba o resultado na tela", mas você pode dizer "exiba ‘MarcoGomes.com’ em negrito, maior que o texto normal e com um hiperlink para http://www.marcogomes.com". Entendeu?

Sintetizando: Na marcação, você marca, na programação você executa uma sequência de comandos lógicos.

Exemplos de marcação HTML: <strong>Este texto aparecerá com ênfase (normalmente negrito)</strong>, <h1>Oi, eu sou um título grande e destacado</h1>, <h2>Eu sou um título menos importante que o h1, mas ainda assim, mais importante que o h3.</h2>.

O problema, é que com o tempo, os "sobrinhos que fazem página" (inclusive eu) começaram a usar as tags HTML de maneira diferente do seu propósito inicial, o erro mais comum era usar as tabelas para dividir o conteúdo do site, a tag de divisão de conteúdo é <div> e não <table>. É como se você usasse um carro como peso de papel, é possível, mas é muito mais inteligente usar para isso uma pedra, uma pequena estátua ou seu CD-ROM do Windows.

A web não foi projetada exclusivamente para PC‘s, mas sim para ser acessível de qualquer meio que tivesse acesso à internet, como PDA‘s, celulares, leitores de tela, browsers em braile, geladeiras, programas que vasculham a rede em busca de informações específicas (robôs como o do Google) e vários outros que ainda podem surgir.

Houve um momento que os documentos HTML estavam ficando tão complexos e ininteligíveis que o só podiam ser acessados por PC‘s e a maioria das páginas apenas com o Microsoft Internet Exploder. O W3C teve que intervir e em 1999 lançou o HTML 4 em que recomendava a separação de conteúdo – que deveria ser feita com um arquivo HTML – e formatação – que deveria ser feita com um arquivo CSS. Também começou a chamar atenção dos desenvolvedores para a importância de ter suas páginas em HTML válido e com alto nível de acessibilidade.

Com isso, surgiu o movimento tableless, mas isso é assunto para um outro post.