CSS: A linguagem de programação mais complexa de todas!

Em questões de programação, o CSS é a linguagem mais simples de todas, porém, para os programadores ela é considerada a mais complexa de todas.

Autor: Redação Impacta

Um website pode ser construído com base em diversas linguagens web como HTML, CSS, JavaScript e PHP, por exemplo.
No meio da programação web, costuma-se concordar que entre todas as linguagens supracitadas e diversas outras, o CSS é a mais simples. Com ele, é possível definir o layout, as cores, dimensões e tipografia dos websites de uma maneira simplificada, direta e objetiva.
Entretanto, você poderá se surpreender ao saber que, à parte das opiniões de programadores profissionais, quando avaliados determinados aspectos, o CSS pode ser paradoxalmente a linguagem de programação mais complexa de todas.
O Cascading Style Sheets – mais conhecido por sua sigla CSS – programa documentos, separando formato e conteúdo por meio de links para páginas que contenham os estilos e os atrelam à todas as páginas de um portal.
Diferentemente de outras linguagens, o CSS trabalha como uma matriz onde alterações realizadas valham para todas as páginas dela dependentes.
E é exatamente este diferencial positivo que, sob outro prisma, pode torná-lo tão complexo. Confira a seguir cinco razões para considerar o CSS a linguagem de programação mais complicada de todas:
   1 – Não há report de erro
Todas as linguagens web seguem regras específicas de escrita codificada. No caso do CSS, por exemplo, inicia-se com o nome do seletor (geralmente classe, id, seletor de atributo, entre outros), seguido por uma abertura de chave e uma declaração de estilo dentro da mesma, terminando cada linha com o sinal de ponto e vírgula. Por exemplo:

  1. .class {
  2.     color: #fff;
  3.     background-color: #000;
  4. }

Na maioria das linguagens web, essas regras são estritamente precisas, de modo que, havendo erros, o programador receberá algo como uma “mensagemde erros” informando detalhadamente sobre eles. Não é o caso do CSS. O CSS não aponta erros.
Caso você acidentalmente remova ou esqueça de algum elemento como o  ponto e vírgula ou a chave, por exemplo, seu layout sairá errado e ponto final.
No PHP, por exemplo, você seria informado detalhadamente sobre cada erro; qual foi o erro, em que etapa ele ocorreu, etc, podendo consertá-lo mais rapidamente.
   2 – Não conte com as variáveis
JavaScript e PHP permitem que você armazene valores em uma variável. Variáveis são elementos alteráveis com facilidade no processo da programação e ajudam – e muito – a ganhar tempo, tornando os códigos facilmente manuseáveis.
Caso haja necessidade de alteração, basta trocar os valores de uma variável ao invés de localizar a informação necessária em meio às diversas linhas.
Infelizmente, no CSS não há variáveis. Pelo menos não aplicáveis de maneira prática e simplificada como nas outras linguagens.
Como exemplo, verifique como web designers costumam proceder para gerenciar esquemas de cor:

  1. /*======= color scheme ==========*/
  2. primary              #000
  3. secondary            #ccc
  4. text                 #333
  5. hover                #aaa

Esta abordagem, no entanto, requer uma disciplina e um cuidado extra em sua implementação, uma vez que se pode acidentalmente deletar um elemento que não deveria ser substituído.
   3 – A compatibilidade de browsers
Atualmente está em desenvolvimento a versão CSS3, e cada vez mais, a compatibilidade de browser é um dos maiores problemas do CSS em si.
Apesar do padrão W3C, cada browser implementa especificações de CSS diferentemente, e existem, inclusive, websites especializados na verificação de como certos atributos do CSS seriam suportados em determinada versão de um browser.
Quando se requer suporte a browsers mais antigos (como IE6 e IE7) – geralmente por demanda do cliente – pode-se acabar tendo que criar arquivos múltiplos e dispô-los através de estruturas condicionais, para somente depois realizar um monte de alterações que equiparem a visualização do site em CSS à de browsers mais atuais.
Uma verdadeira preocupação extra que costuma não existir em outras linguagens.
   4 – Especificações do CSS
Seletores de CSS têm níveis diferentes de especificação. Por exemplo:

  1. p {
  2.     color: #000;
  3. }
  4. p {
  5.     color: #333;
  6. }

Quando dois seletores de especificações iguais contêm os mesmos estilos, ou referem-se às mesmas coisas, conforme demonstrado acima, o que vem por último sobrescreve o anterior.
Mas quando adicionamos seletores de classe, como “.paragraph” , por exemplo:

  1. p.paragraph {
  2.     color: #000;
  3. }
  4. p {
  5.     color: #333;
  6. }

independente de sua posição, o elemento p do HTML que estiver com o valor do atributo classe como “.paragraph” terá #000 color, por ser mais específico.
Especificações no CSS são tão específicas quanto confusas. É necessário atenção ao definir regras de estilo. Pode haver seletores com especificidades mais altas que sobrescrevam seletores menos específicos, deixando você buscando o elemento responsável por um bom tempo até localizá-lo.
   5 – O cliente
Como citamos anteriormente, o CSS define o layout, cores e dimensões de um website e aproxima-se bastante da visualização final do design do mesmo. Esse é um dos maiores diferenciais desta linguagem. E é exatamente este um de seus maiores problemas. 
Obviamente, design é sempre algo de características subjetivas e que depende muito do gosto pessoal de cada um.
Por esse lado, seu cliente pode ter uma perspectiva bem diferente de você quanto ao visual do site, e pode acabar por infernizá-lo com solicitações específicas e difíceis de serem atendidas em uma programação CSS; discretas alterações de cor, espessuras, traços, etc. Por trabalhar com links como uma matriz, atender o gosto pessoal e pontual de seu cliente pode ser uma grande dor de cabeça na programação CSS.
Resumindo, todos sabemos que não existe linguagem web perfeita, porém linguagens adequadas a cada projeto, website e documento. Algo perfeitamente simples de ser programado em uma determinada linguagem, pode ser simplesmente impossível ao utilizar outras, e o uso de cada uma varia conforme a demanda.
O CSS pode ser considerada, sem sombra de dúvidas, relativamente fácil de aprender, mas é necessário que o programador seja disciplinado e atento aos detalhes, para usufruir o máximo desta linguagem e torná-la o mais maleável possível.
Esse conteúdo foi adaptado do artigo disponível em Hongkiat.com.
Colaborou nesse artigo: Wilson Divino.

Curtiu o post? Deixe seu comentário nos contando se o conteúdo foi relevante pra você ou caso tenha ficado alguma dúvida!

4 Comentários

  1. Baguerinha disse:

    ehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh maisssssssssssssssssssssssss ou menossssssssssssssssssssssssss…. mais ou menos!!! Concordo que CSS é a linguagem mais foda de todas, porém não é uma linguagem de PROGRAMAÇÃO carinha… consideraria mais como uma linguagem de marcação ou de estilização, se preferir… Abraço e Sucesso!

    • Davi Romero disse:

      Baguerinha, compreendemos seu ponto, e realmente faz
      sentido. De fato, esta questão é polêmica. Os padrões e definições da W3C,
      assim como o uso prático do CSS, sobretudo com as inovações da versão CSS3,
      costumam ser utilizados em programação. Ainda que o CSS não seja propriamente
      uma linguagem de programação no sentido literal, (acima de tudo por não ter a
      ordem das instruções como fator crucial) é possível programar através dele, ainda
      que de maneira diferente. Concordamos que é complicado comparar linguagens, mas
      para os fins deste artigo, foram consideradas linguagens que servem para
      programar, não apenas linguagens de programação em si. De qualquer maneira, boa
      consideração!

  2. André Luiz Ribeiro disse:

    Parabéns pelo post, muito instrutivo!

  3. Junior disse:

    Bom Post fera!

Deixe o seu comentário!

Não perca nenhum post!