Este artigo faz parte da série de voltada a designers focados em Joomla!.

Em uma época em que há vários frameworks de template Joomla que prometem agilizar o desenvolvimento, com demonstrações de algo feito que são de dar inveja, é natural que alguém procure usar tais frameworks em vez de fazer "à moda antiga". No ano passado, dei um tempo no desenvolvimento back-end e fiz um cowork com um colega do @joomlatche, focado em desenvolvimento front-end, e paramos para estudar a sério frameworks de template Joomla da época (ref: twitter / backup). Não vou negar que minha opinião inicial girava em torno de "ah, mas isso e aquilo eu sei fazer do zero e sem framework", porém naquele momento não se tratava de um programador, um desenvolvedor back-end, saber fazer templates, mas sim de ter um modo que um desenvolvedor front-end pudesse fazer e dominar bem, um método de fazer algo funcionasse bem e não tomasse tanto tempo de desenvolvimento quando estivesse em produção.

Naquela época, tinha em mente que poderia demorar para entender algo novo, ou mesmo criar algo novo, mas a condição era a de que, durante uma situação real, em que pedidos estivessem entrando, o tempo entre o .psd e o site final fosse o menor possível, e que a manutenção e o assemble com extensões fosse suave. Independente do meu pre-conceito, o marketing em cima de cursos de template focados em torno de tais frameworks em detrimento do modo mais braçal naquela época era significativo, então eu deveria pelo menos ter uma ideia pessoal e fazer um benchmark do tempo e da qualidade do resultado final, considerando o uso também de um não-programador.

Não demorou para perceber que, para quem tem domínio razoável em HTML/HTML5 e CSS e que está disposto a parar e estudar um pouco para fazer a própria base de código (ref: twitter / backup), usar tais frameworks tendem a dificultar em vez de facilitar (ref: twitter / backup), a um ponto de procurar só usar código de tercerios de forma minimalista, que no caso do Joomla seria apenas ou Mootools/JQuery e um grid de CSS ( ref: twitter / backup).

Comparação de alguns pontos comuns

Todos os pontos aqui levam em consideração que:

  1. Por "com framework" o desenvolvimento com um framework de terceiro, como T3, Gantry e assemelhados;
  2. Por "sem framework" o desenvolvimento de um template sem ajuda de frameworks do item anterior, porém podendo incluir o próprio framework ou um framework minimalista.

Profissional sem qualquer experiência ou com pouca em HTML e CSS

Com framework, tenderá a ser a melhor opção sempre, independente de quanto tempo trabalhe. Caso a sua experiência não evolua, terá dificuldades em fazer sem algo que já esteja meio pronto.

Profissional com experiência medíocre ou avançada em HTML e CSS

Tanto com framework como sem framework será uma boa opção a médio e longo prazo. Nos primeiros trabalhos, sem framework passara mais tempo para fazer o código base.

Uso de HTML5

Sem framework tende a ser a melhor opção, pois, o que você consegue fazer sem usar o Joomla, conseguirá dentro dele. Com framework só o é, caso as implementações que deseja fazer já estejam presentes nele. Reescrever um framework de terceiro para exibir HTML5 em vez de HTML4 é inviável.

Versão Mobile

Com framework tende a já vir por padrão com uma versão mobile de modo trivial de ser implementado. Sem framework, exige que o desenvolvedor faça uma checagem em PHP de qual dispositivo está acessando, que é fácil, e que conforme a checagem carrege um tema diferente e especifico, ainda que este tema seja extremamente parecido entre projetos diferentes e possa ser reutilizado. O que pode fazer diferença é estudar como fazer versões mobile, e até o Maujor já lançou um livro a respeito.

Qualidade do código gerado ao usuário final

Sem framework, a tendência a quantidade de código enviado ao usuário final ser significativamente menor, pois permite que até mesmo um profissional com experiência medíocre tenha automomia plena sob o código gerado. Com framework, a única opção do desenvolvedor avançado é ativar funções que juntam arquivos de javascript e de CSS e os compactam antes de enviar ao usuário, e qualquer opção de fazer evitar isso trara uma quantidade de trabalho maior a ponto de não valer a pena usar o framework.

Para um desenvolvedor front-end avançado e mais perfeccionista, tende a considerar o código fonte gerado deselegante. O HTML tende a ter IDs e classes demais, e os arquivos CSS usados poderiam ter uma quantidade na ordem de pelo menos 5 vezes menor para fazer a mesma coisa, e a quantidade de javascript pode ser ainda pior. Um desenvolvedor que opta por usar apenas Mootools poderá ser forçado a ter também JQuery carregado por padrão, e mesmo que desative o carregamento de jQuery, extensões poderão parar de funcionar.

Manutenibilidade, sobrecarga de banca e processamento e comportamento em servidores diferentes

Sem e com framework são semelhantes, porém sem framework tende a ter vantagens que só quando algo de muito errado acontece. Funcionalidades a mais e que geram um consumo maior de uso de CPU e memória podem fazer diferença em servidores com acesso maior, em especial se não for viável deixar o cache ativado. Quando há uma mudança de ambiente, como entre servidores, ainda que ambas as opções possam dar problemas, sem framework a resolução tende a ser mais simples e o desenvolvedor provavelmente conseguirá achar o problema mais rápido, enquanto que ao usar um framework de terceiro, em situações muito especificas pode-se ocorrer alguma incompatibilidade entre servidores por alguma função usada no framework.

Reaproveitamento do conhecimento em outras áreas

Com framework, segundo propaganda de alguns destes e que pessoalmente não testei, há de forma direta ou parecida certa compabilidade de um tema também com o Wordpress. Agora, se seria util para um desenvolvedor que não é do tipo clube de templates, é questionável.

Sem framework, o trabalho adicional de ter que conhecer melhor como o Joomla funciona, torna o desenvolvedor front-end mais próximo de como o CMS realmente funciona, sem uma camada intermediária do framework de template. Isto quer dizer que ele tenderá a resolver melhor e mais rápido não só problemas ligados diretamente ao template, como também com extensões. A liberdade e a possibilidade de fazer códigos mais perfeccionistas do HTML e CSS também ajudara para que o mesmo desenvolvedor sabia fazer layouts sem o Joomla. É razoável imaginar que um profissional que não usa frameworks poderá implementar novidades antes do tempo e terá um domínio mais transparente de HTML, CSS e PHP em qualquer situação.

Então, qual escolher?

Se ainda tem dúvidas, ou quer ouvir o que eu pessoalmente recomendaria o seguinte.

É alguém que só quer fazer o próprio site ou o de familiares, e não tem interesse em seguir carreira na área de web design

Se não tiver fortes objeções, pode até mesmo usar o tema padrão que vem com o Joomla e só trocar as imagens. Se for usar temas gratuitos, cuide para ver se funcionam bem. Recomendo que leia o Temas e extensões não são 'só comprar e sair usando' .

Quem tem pouca experiência e/ou interesse de aprender HTML e CSS e costuma atender clientes com pouca ou nenhuma exigência na aparência visual ou de exclusividade

O uso de algum framework de template tende a ser uma boa opção. Sim, você pode comprar templates prontos, mas procure pelo menos alterá-los e não deixar exatamente como o padrão. E vender um site com template pronto sem pelo menos avisar o cliente sobre isso não é algo ético.

Tem pouca experiência em HTML e CSS porém interesse em aprender, mas precisa atender clientes logo

Ou se baseie em um template pronto, mesmo que seja um que vem com o Joomla, ou use um framework. Deixe para aprender a fazer um template do zero em um projeto que possa levar tempo, ou um cliente que não se importe em estourar prazos. Mesmo ao usar o framework de templates, procure entender o melhor possível a lógica de sobreposição de saída HTML de extensões e fazer sites em HTML puro, preferencialmente HTML5 e CSS3 e procure garantir que durante os testes ele sempre valide na W3C.

É desenvolvedor frontend avançado mas usa um framework de template e o considera ágil, e tem um rítimo de clientes e não pode parar e correr risco de atrasar prazos

Continue fazendo com framework, porém pegue algum projeto, preferencialmente um com exigências visuais mais simples e com prazo maior, e o faça de cobaia para criar sua própria base de template desde o zero. Mesmo depois de alguma experiência, pode ser que prefira escolher qual projeto usara um framework e qual usará o seu próprio. Versatilidade pode ser útil.

É um profissional que quer se destacar como desenvolvedor frontend Joomla no mercado de trabalho, e não tem experiência prévia com frameworks

Faça um investimento pesado em fazer seu próprio template do zero. Depois de ter o primeiro template medíocre, do tipo "cara de CMS", e que tenha pelo menos estilos básicos como os de navegação no com_content, posição de módulos, e desista da ideia de se basear em sites que são em Joomla e se baseie por sites que são referência em HTML5, CSS3 e Javascript e não sites em Joomla. Caso se esforce em 6 meses poderá estar fazendo trabalhos melhores do que outros que fazem isso há uns 4 anos.

Se é uma empresa que tem uma equipe de três ou mais desenvolvedores

Exceto em condições aonde o seu cliente padrão não tem uma exigência visual por novidades, tende a ser extremamente interessante fazer sem framework, pois, passado o período inicial de criar sua própria base, sua empresa estará em vantagem frente as demais em situações que precise ir além do que é esperado.Uma empresa que já tem esse perfil poderá implementar de forma mais rápido um conceito visual totalmente diferente do que se espera de um CMS.

Usar framework ou não, é uma questão de opção pessoal, e ambos podem ser ágeis

Um bom desenvolvedor fará um bom template independente se for usar um framework ou não, e é uma questão muito pessoal de o que considera mais ágil. Isso não invalida quem queira fazer um curso de template baseado em um destes frameworks, até porque o aprendizado e o resultado inicial pode ser mais simples e rápido, e a diferença aumenta se para ambas as situações você for fazer de forma auto-didata. Há um ano atrás, não só os navegadores estavam um pouco menos amigáveis, mas até mesmo alguns editores de conteúdo do Joomla tendiam a fazer código que não validava em HTML5. Mas esse tipo de coisa é um preço que se paga por estar querendo fazer algo que a maioria das pessoas ainda não está fazendo. Tanto o CMS Joomla como o JPlatform estão "forçando a barra" para dar opções a quem quer lidar com tecnologia de ponta, porém extensões de terceiros tendem a estar preocupados em agradar quem paga eles, e quem os paga em geral vai demorar para se preocupar com tecnologia de ponta. E se você não se ligar, é como se estivesse comprando um carro.

Relembrando que esta discussão está mais a nível de desenvolvedor do que de cliente final. Se você está lendo este artigo, e está entre dois orçamentos em que um é em um tema feito sem framework, e o outro é com um deles, entenda que se não está tão preocupado com o código fonte gerado ou com uma flexibilidade mais extrema, pode ser indiferente qual dos orçamentos escolher. E, claro, tenha em mente que pode haver uma diferença significativa de preço entre ambos os orçamentos, e nem por isso um deles pode estar tendo uma margem de lucro maior que o outro.

Enfim...

Ano passado achei estranho quando, depois de ter ficado creio que uns dois meses estudando como fazer extensões para o Joomla 1.6 e que, em um momento em que até a documentação em inglês era insignificante, ou seja era "só traduzir" e passar adiante mas naquela época saiu sangue, em especial porque coisas que eram "o padrão" até o Joomla 1.5 passaram a ser más práticas de programação,  foi eu anunciar que ministraria o que seria o primeiro curso aberto de programação de extensões Joomla do Brasil e que iria ser presencial e direto para a nova versão 1.6 e, *magicamente* surgiram na mesma época uns quatro cursos de se diziam ser de programação. Até ai ok, mas nenhum deles deixava explicito que as extensões não iam funcionar na nova versão do Joomla, exceto por um que dava ate certificado e nem exigia que o cara soubesse PHP e que seria só uma questão de esperar o CCK atualizar para seu componente funcionar no 1.6. Por coincidência logo depois que parei de anunciar o curso os demais também pararam. E aonde quer chegar com esse comentário?

Bem, muito tempo atrás eu tuitei que "Programação é binário: ou funciona ou não funciona. Já design exibe 32 bits de possibilidades". Indo direto ao ponto, quer dizer que um curso de programação exige um domínio elevado e a qualidade pode ser vista de forma fácil. Não obstante, um curso de template que foque em ensinar sem framework pode sofrer de forma extremamente significativa na qualidade, com o agravante de que o aluno pode nem ter argumentos para diferenciar se é um curso ruim, ou se o CMS em si é ruim. Se, em algum momento, você fez ou fará um treinamento, e tiver impressões negativas ao ver que fora do curso simplesmente não consegue ir adiante, pare e veja se não tem outras opções de curso e, se quer ser bem pragmático, em vez de procurar um curso que leve um nome ao estilo "curso avançado de templates Joomla do zero", vá atrás de curso que seja de HTML/CSS/Javascript puro e que tenha boas referências. Não culpe o CMS porque deve uma sorte ruim.

Creio que com esse post sobre este outro tema, em que chuto o balde ao dizer que você deveria estar fazendo seu tema do zero, o modo pragmatico como procurei abordar em vez de apelar para super estimar o tema dê uma colaborada para evitar que pessoas saiam decepcionadas, pois template Joomla do zero exige mais esforço por retorno menor a curto prazo. Ano passado, referencia a isso no meu site foi só o artigo Como validar o Joomla! em HTML5 e CSS?, e publicamente só um e outro tweet. Com um e outro colega via Skype eu fui na época mais além ao dizer até que fazer templates Joomla do zero em HTML5 era apenas uma questão de fazer por perfeccionismo, mas sim que a manutenção era tão mais fácil do que fazer de outro modo que se o cara fosse volta e meia validando o código, daria pra fazer template até bêbado. Posso ter sido um pouco mais egoísta do que normalmente eu seria, mas ao menos naquela época passei pela lógica de que é um tanto quanto constragedor você pesquisar e se esforçar por algo e pessoas distorcerem a um nível quase pornográfico por aparecer antes no google para um termo, e resolvi incentivar mas as pessoas que eu tinha próximo e que os tinha como profissionais de respeito do que um pessoal aleatório, e não por acaso tenderam a ser justamente essas as que tenderam em 2011 a oferecer treinamento com tema em HTML5. Mas antes que me chamem de filho da mãe, procurei ser mais meritocrático ao ajudar os que pelo menos estiveram JoomlaDayBrasil 2011, ao dar o start no Dojoomla mostrando como fazer um template em HTML5 do zero , tentando mudar um pouco a mentalidade das pessoas em aceitar só o padrão e não ousar ir adiante. Aliás, cá entre nós, não foi todo mundo que sentou na mesa pra fazer acontecer.

comments powered by Disqus