Tableless vs. Mundo Real, Take 2

July 1st, 2007 § 10 comments

O Diego respondeu ao comentário do Lopes sobre o assunto, e eu quero dar a minha opinião.

Antes de começar, eu devo dizer que sou um forte proponente do uso adequado dos padrões Web. Eu já desenvolvia no que hoje é chamado de tableless antes mesmo que a palavra ganhasse evidência e já escrevia sobre o assunto há quatro anos atrás. Basta olhar o código desse próprio texto para ver que eu me dou ao trabalho de marcar até palavras em uma idioma diferente para maner o padrão ao longo de exportações, mesmo que o tema atual do blog não valide completamente. Meu comentário no texto anterior, foi, com muitos outros, a observação de uma ironia. Acho que preciso de mais smilies

Na minha realidade atual de desenvolvimento, eu uso padrões mesmo quanto o cliente não pede e mesmo quanto a linguagem não os suporta de maneira fácil. Qualquer um que já desenvolveu usando padrões Web usando .NET–ou pelo menos tentou–sabe que não é fácil adequar o seu código quando o framework insiste em ir contra você. Atualmente o .NET não está tão ruim, mas ainda há certas coisas que causas problemas difíceis.

Layouts completamente tableless são geralmente mais leves, mais legíveis e, conseqüentemente, mais fáceis de manter do que layouts que usam e abusam de tabelas.

Sobre os pontos que o Diego levanta, alguns comentários.

Primeiro, quanto ao fato do tableless ser ou não mais fácil de implementar. Atualmente, na maioria dos casos realmente é mais fácil. Escrever uma mera lista e transformá-la em um menu com um pouco de CSS é realmente um ganho muito grande. Mas existem algumas tarefas para as quais mesmo receitas prontas ainda são complicadas. Determinados tipos de menu, bordas arredondadas, rodapés fixos, e uma série de outras construções que povoam as listas de discussões e as buscas ainda possuem dificuldades inerentes que as colocam no nível de uma implementação utilizando tabelas.

Obviamente, muitos desses problemas serão resolvidos com CSS3, mas estamos a vários anos de implementações completas. Outro ponto complicado é a quantidade insana de bugs de CSS ainda não resolvidos nos navegadores atuais e as grandes divergências de implementação que tornam certas tarefas e ajustes bastantes complicados. Existem várias técnicas para ajudar, mas algumas são como o provérbio diz: emendas piores do que o soneto.

Segundo, quanto a levar mais tempo para testar, eu também acho que depende muito. Como no exemplo anterior, determinadas coisas são bem fáceis de serem feitas e testadas. Outras, nem tanto, exigem um grau de experimentação muito maior, mesmo quando há uma técnica presente. Mesmo assim, em uma coisa o Diego está mais do que certo: uma vez que o layout esteja pronto, testes e modificações são triviais.

Terceiro, sobre suporte. Aqui, concordo com o Diego, pelo motivo anterior. Depois que a primeira implementação fica pronta, modificações são muito mais simples e o suporte é correlacionado a isso.

Quarto, sobre o custo. Depende de todos os fatores acima. Uma coisa que muito desenvolvedor não fatora são as diferenças de plataforma operacional. Elas podem tornar o custo de um site tableless realmente mais alto. Mas isso também acontece com implementações decentes usando Ajax e acessibilidade.

Existe ainda um caso em que não há como escapar: manutenções. Manutenções são a minha via crucis atualmente e investir em renovações do layout em um formato novo é factualmente impossível.

Em última instância, eu prefiro continuar com o tableless. Como o Diego menciona também, depois que a curva de aprendizado é vencida, muitos dos problemas desaparecem. Nesse ponto, os casos em que o CSS é mais complicado se tornam uma simples questão de esforço cujos benefícios são superiores a longo prazo–o que, no final das contas, é o ponto do exercício todo.

§ 10 Responses to Tableless vs. Mundo Real, Take 2"

  • […] Link to Article ajax Tableless vs. Mundo Real, Take 2 » Posted at Superfície Reflexiva on […]

  • Karin says:

    Aprendi HTML bem cedo e migrei para o marketing quando entrei no mercado de trabalho. Mas sempre me interessei pela web, continuei “brincando” sempre que podia.
    Quando voltei de fato para a web, já se falava em CSS. Mesmo assim, como não cheguei a me apegar aos WYSIWYG, já que eu aprendi a escrever no notepad mesmo, uso o dreamweaver, mas escrevo 99% do código.
    O que eu vejo em muitos desenvolvedores é uma falta de vontade de aprender. Como em muitos assuntos na vida – e na Administração eu vejo muito isso -, as pessoas aprendem um conceito e o tomam como final.
    Sobre o comentário do Lopes, acho que faltaram algumas pavras no que ele respondeu para o cliente:
    “PARA NÓS, tableless é mais difícil de implementar, leva mais tempo pra testar e, sinceramente, EU não ACHO QUE compra nada pra você – aliás vai tornar mais difícil pra outros DA NOSSA EQUIPE te darem suporte. Inclua entre 20 a 40% sobre o orçamento inicial E TERÁ O NOSSO ORÇAMENTO.”

    Como eu queria um cliente desses que já tivesse vontade de fazer o site em webstandards.

  • Ronaldo says:

    Eu sei que para muitas pessoas falta realmente a vontade de aprender conceitos novos. Pelo que conheço do Lopes, esse não é o caso dele, mas não vou entrar nos méritos dessa discussão.

    Como eu disse no meu texto, uso padrões Web para tudo o que faço mesmo quando o cliente não pede e é possível, mas acredito que existam situações em que o uso do mesmo realmente é mais complicado (como citei no texto e por razões diversas), embora os benefícios a longo prazo sejam maiores. E já vivi situações em que o uso de padrões era impossível ou indesejável por condições localizadas de desenvolvimento.

    O que eu vejo nos comentários é um certo fervor religioso que procura primeiro ofender quem está do outro lado. Isso torna qualquer discussão improdutiva, na minhão opinião.

  • Karin says:

    Ronaldo,
    em nenhum momento minha intenção foi ofender quem quer que seja. Minha colocação sobre o tema “aprender um conceito e tomarem como final” foi para todos, não apenas para o Lopes.

    Digo isso porque cada dia que passa vejo que as pessoas não gostam de discutir (no sentido literal, de debater, não de brigar) assuntos. Preferem tomar uma idéia só e chega. Talvez por isso “ataquem” as outras idéias. Isso vale para os desenvolvedores tableless também, inclusive os “fervorosos” que você comentou.

    Muitas vezes já precisei recorrer à tabelas e outras cositas más para conseguir atualizar sites mais antigos, por exemplo. Quando o código foi criado por outro desenvolvedor, você precisa “ir com a maré” na maioria das vezes, porque não tem como refazer o código inteiro.

    Meu comentário quanto ao Lopes foi de que ele poderia ter colocado isso como opinião dele, em vez de generalizar. A empresa dele não fará sem adicionar 20 a 40% no orçamento.

    Talvez eu tenha me expressado mal, ou talvez tenha sido a caixa alta que usei pra diferenciar meu texto do dele, mas realmente não comentei para ofendê-lo. Até porque concordo com você sobre a improdutividade da discussão.

  • Ronaldo says:

    Tudo bom? Obrigado pelo comentário bem sensato. Eu é que peço desculpar por ter adotado um tom mais defensivo–praticamente todos os outros comentários estavam com um tom mais duro e eu acabei me retraindo. :-)

    Concordo completamente com você sobre a questão de que algumas pessoas simplesmente querem tudo pronto e por isso não conseguem ir adiante. Desenvolver em CSS representa um cuidado maior e isso afasta algumas pessoas. Acho que alguns desenvolvedores, por esse medo, ainda acham que estamos na época em que era necessário desenvolvedor dois sites diferentes. Oh, o horror. 😛

    Aliás, boa expressão “ir com a maré”. Essa é justamente a minha sensação quando pego alguns projetos–principalmente quando é manutenção. Ironicamente, acabei de manter um página aqui onde tive que recorrer às mazelas do elemento “font” para fazer o que eu queria: o site foi escrito na época do PHP3.

  • C.E. Lopes says:

    Oba… :-)

    Gente, eu não fico ofendido com nada do que foi argumentado/comentado aqui, no blog do Diego, ou em qualquer outro lugar. E também não sou contra padrões web ou favorável ao uso de tabelas em detrimento do uso de tableless.

    A Karin tem razão. Pra MINHA equipe, à época da história que contei, simplesmente usar tableless e testar nos diferentes browsers seria mais trabalhoso PRA NÓS do que adotar os standards. Aquela história tem tempo, diga-se de passagem…

    Diga-se de passagem também, estamos falando de um ambiente sério onde eu não desenvolvia sozinho, onde havia um ambiente de teste formal, com testadores (é assim que fala em Português?) que não desenvolviam, apenas testavam em múltiplos browsers e sistemas operacionais, e onde o cliente pagava – diga-se de passagem feliz – por toda essa infra. Havia um custo envolvido em prover essa infra. E era ao gosto do cliente buscar outro prestador de serviços que pudesse implementar com tableless e fosse capaz de testar por um preço melhor. Mercado é isso aí. A pergunta que vocês tem de se fazer é: porquê será que o cliente aceitou? Será que porque eu e minha equipe causamos uma má impressão??? 😉

    O posto do Diego também é muito oportuno. Mas não leva em consideração – culpa minha talvez por não ter sido claro no meu comentário original – que essa curva de aprendizado que ele menciona e que é, realmente, normal em qualquer tecnologia, abrangia vários desenvolvedores (com tempos de aprendizado diferentes) num projeto que já começava com uma data de entrega definida (quantos não são assim?) pelo cliente e que contava com o refactoring de um grande montante de código de outra empresa – código esse que ainda sequer tinhamos visto (e que era um espaguete só, como descobrimos mais tarde e eu já suspeitava – ninguém vem te oferecer trabalho se está satisfeito com seu prestador de serviços atual) em duas linguagens diferentes. O tableless era um alfinete num projeto relativamente grande.

    O cliente queria o projeto pronto na data tal, tinha requerimentos técnicos de legacy code e queria impor um outro requerimento técnico. Tudo bem. Mas vai custar tanto a mais. Qual o problema? Não vejo nada de não profissional na conduta…

    Eu não queria passar a impressão de ser contra tecnologias modernas, de ter parado no tempo, de ser retrógrado (título do post do Diego). E, só pra registrar, concordo que “sem trabalho não há recompensa” – acho que não há profissional de verdade que discorde. :-)

    Queria só prover contexto e explicar minha posição. Isto dito, todo mundo tem direito de pensar o que quiser… :-)

    Mas fico feliz de ter podido dar um pontapé numa disucussão, espero eu, útil…

  • Diego Eis says:

    Celso, agradeço por ter dado o ponta-pé inicial desta discussão.
    O título do meu post não foi me referindo a você… É como a música que o Gabriel Pensador fez: Loira Burra.
    As loiras ficaram iradas quando essa música foi lançada. Mas o Gabriel Pensador fez pensando em todas as mulheres e usou a Loira como um esteriótipo.

    Essas discussões são válidas. Parabéns por não quebrar o barraco como muitos por aí que se sentem ofendidos fazem. Esses merecem ser ignorados.

  • A sua opinião é muito parecida com a minha. Em todos os meus projetos eu procuro usar os padrões da Web e padrões de desenvolvimento também.

    Mas há casos, e casos…

    Obviamente os padrões, no momento atual, trazem trade offs dos quais você não pode escapar. Se por um lado traz facilidade de manutenção, às vezes, exige mais investimento(seja estudo ou financeiro).

    Procuro não adotar uma posição extremista, e tento ser ponderado na hora de desenvolver. Nem sempre nos é dada tal opção… infelizmente.

  • Padroes sempre, mas realmente entendo o que ele disse, principalmente quando ainda esta começando a desenvolver nos padroes é um pouco mais dificil e lento, hj faço 100% sempre focado nos padroes, nem sempre valida 100%, pq realmente as vezes vc tem que procurar uma soluçao para alguma maluquice que alguém inventa de querer no layout como um pato voando de cabeça pra baixa, dando piruetas sobre tudo 😛

  • Luiz Rocha says:

    Uma parcela dos desenvolvedores que estão no mercado aprenderam em um mundo diferente, onde um software — principalmente se a gente pensar em âmbito corporativo — é o que faz o processamento dos dados. Web é apenas a saída do programa, nessa linha de raciocínio. Ao invés de publicar um arquivo texto, vc redireciona a saída para uma página HTML. E só. Pensando assim, padrões web e afins parecem bem menos importantes do que realmente são.

    Olhando pelo outro lado, já vi (e convivi) com desenvolvedor que veio do mundo web e só pensava na interface web, apresentação e tudo mais (e não se importava com padrões, mas isso é outra história). Parecia uma vedete, sem se importar com o resto do projeto.

    Sou da opinião que ambos — interface (seja web ou o que for) e processamento — não são dissociáveis. E ambos precisam ser feitos corretamente (seguindo padrões, melhores práticas, ser documentados e etc)

    Mas nem todos os profissionais que estão no mercado tem uma visão mais abrangente sobre o que é desenvolvimento. Muito pelo histórico de cada um e por um bizarro medo de mudança que assola alguns desenvolvedores.

Leave a Reply

Your email address will not be published. Required fields are marked *

What's this?

You are currently reading Tableless vs. Mundo Real, Take 2 at Superfície Reflexiva.

meta