O Internet Explorer 6 é culpa nossa!

Não há nada que um desenvolvedor web odeie mais do que o Internet Explorer 6. Por mais que desejemos, parece que ele não vai embora. Entretanto, e por incrível que pareça, a permanência do Internet Explorer 6 no mercado é culpa nossa!

O Internet Explorer 6 precisa morrer!

Logo que o IE7 foi lançado em 2006, parecia algo lógico manter a compatibilidade com o IE6 por algum tempo, por mais doloroso que isso fosse. Usuários comuns mal sabem diferenciar entre um browser e o Google, atualizar para o IE7 nos primeiros dias seria pedir demais. O estranho é que, até hoje, quase 3 anos depois, muitos de nós continuam a dar suporte ao browser. Perdemos tempo, paciência e alguns anos de vida corrigindo bugs e assegurando que tudo funcione relativamente bem. Isso significa que nivelamos nosso desenvolvimento por baixo, deixando de usar coisas como PNGs transparentes, muitos seletores CSS e scripts mais eficientes, só para começar a listar alguns. Algo está errado aí, você não acha?

Mas se o browser é usado pelo usuário, como isso pode ser culpa nossa? Simples: enquanto tudo funcionar, o usuário não fará o menor esforço para atualizar seu software. O usuário é acomodado (pra não dizer ignorante). É preciso tomar atitudes para que ele se atente que seu software está muito ultrapassado, e essa atitude cabe a nós. Por pressão dos clientes e dos nossos superiores, o máximo que conseguimos foram barrinhas sutis no topo da página que, convenhamos, não servem para nada mais do que decoração e alívo de consciência. Será preciso muito mais que isso.

Sweet! IE6! After this, maybe you can go chat on AOL, you fucking dinosaur!

Até que as coisas deixem de funcionar, o usuário não fará nada. Fato. Em um mundo ideal, os sites de maior tráfego não dariam mais suporte a browsers legados, e a evolução começaria a acontecer. Como não vivemos em um mundo ideal, precisamos dar o nosso jeito. Educar o cliente, os parentes, os amigos, pode até parecer legal, mas é numa escala muito pequena. Em meus projetos pessoais, coisas como a singela tela acima começarão a aparecer. Como freelancer, o suporte ao IE6 terá seu preço (e as telas de aviso serão um pouco mais educadas). Na agência onde trabalho ainda enfrento alguns problemas, mas na maioria dos projetos o IE6 é completamente ignorado, e simpáticas telas explicando como atualizar o browser estão sendo implementadas.

Não existe mais motivo algum para a existência do IE6. Não deveriam mais existir motivos para mantermos a compatibilidade. Eu seria um profissional muito mais feliz se, em 2010, eu nunca mais ouça falar em Internet Explorer 6. Acredito que esse seja o desejo de muitos, e espero que ele consiga ser realizado dessa vez. Vamos fazer nossa parte e acabar com o monstro que criamos?

06 de julho, 2009

Novatec – 20% de desconto!

Recentemente fui contatado pela Editora Novatec para participar do programa de afiliados deles. Tenho certeza que vou demorar um bom tempo pra receber qualquer coisa que seja, mas há um lado bom: eles me ofereceram um código promocional, com 20% de desconto.

O esquema funciona assim: você compra qualquer livro do catálogo da Novatec e, na hora de fechar o pedido, entra com o código promocional JULIOGREFF. Você ganha um bom desconto, e eu uns trocados.

Caso você queira comprar algum livro, mas ainda não tem idéia do que, aí vão alguns que podem valer a compra:

Se você precisava de (mais algum) incentivo pra comprar um livro, esse é um. Tá esperando o que?

15 de abril, 2009

Fórum do Spaghetti*

O Spaghetti*, desde o dia de seu lançamento, precisava de um fórum. Muita gente pediu, implorou, alguns até mandaram cartas ameaçando a nós, nossa família e nossos repositórios por aí. Só que o que nem todos sabiam é que estávamos construindo uma solução há um bom tempo, mas por motivos diversos ela demorou muito mais do que esperávamos. Mas, como somos pessoas muito legais, resolvemos terminar isso de uma vez, e foi lançado o Fórum do Spaghetti*, finalmente.

Como dito no nosso blog, queríamos algo que compartilhasse da filosofia do framework: simplicidade e descomplicação. Por isso, descartamos IPB, SMF, phpBB, entre outras sugestões, e construímos nosso próprio sistema. Como qualquer um pode notar, ele ainda não está completo, mas aos poucos estamos trabalhando nisso. Queremos um produto de qualidade!

Esperamos que o fórum ajude a tirar as principais dúvidas do Spaghetti*, e a alavancar o crescimento da comunidade, conectando desenvolvedores e se tornando uma boa fonte de informações para os que estiverem chegando. E você, já se cadastrou lá? Esperamos você!

22 de março, 2009

Spaghetti* Framework Lançado!

Spaghetti* Framework

O ano de 2009 chegou, e com ele trouxemos junto o Spaghetti* Framework 0.1, a primeira versão do nosso framework para PHP. Exatamente na virada do ano, o site do Spaghetti* foi liberado, assim como downloads, documentação, screencasts e tutoriais. E você, já deu uma passada por lá?

Recepção

Antes de tudo, gostaria de agradecer muito a recepção que o Spaghetti* já vem tendo. Em apenas 3 dias de vida, já recebemos vários elogios, agradecimentos, twittadas e sugestões (críticas são muito bem aceitas, estamos esperando elas também!). Vários downloads foram feitos, os screencasts estão gastando uma banda considerável, e pelo jeito o pessoal anda gostando. Se você também gostou (ou não gostou), nos deixe saber! É só entrar em contato direto com a gente.

Documentação

Pelo menos para mim, uma documentação razoável é um dos fatores chave para a adoção de uma nova ferramenta. Por isso, trabalhamos bastante em cima dessa parte, e o resultado é uma documentação que cobre boa parte do que o Spaghetti* faz. Gostamos tanto do resultado que até fizemos um PDF para download. Quem me segue no Twitter deve ter notado o quanto falamos dessa documentação.

Além da própria documentação, fomos um pouco mais longe, e também já temos alguns screencasts e tutoriais, especialmente para o pessoal que já quer ver alguma coisa funcionando antes de colocar a mão na massa. Já estou devendo um screencast meu, abordando outros aspectos do framework, deve sair em breve. Ou pelo menos assim espero.

O que já está por aí

O Spaghetti* não foi criado em um laboratório fechado, baseado em hipóteses e teorias. Construímos ele em aplicações já em produção. Já existem vários projetos prontos, funcionando, com versões alfa e beta do Spaghetti*. Além disso, o Rafael também criou uma aplicação super legal, uma lista de tarefas. Toda a aplicação feita em menos de duas horas de trabalho. Divirta-se!

E o que vem por aí

Não estamos parados, e já estamos trabalhando para a próxima versão, programada para primeiro de maio, se tudo der certo. Fomos amadurecendo ainda mais a idéia, e vimos que muito ainda falta no Spaghetti*. Você deve ter sentido falta de suporte a vários bancos de dados, validação, além de vários outros detalhes no próprio core, helpers e componentes. Você pode nos acompanhar pelo Trac, ou então pelo nosso Twitter. Sinta-se livre para se cadastrar no Trac, submeter tickets, anexar sugestões de código, e nos ajudar a melhorar nosso framework.

Espero que o nosso trabalho possa tornar o seu mais fácil e mais divertido. Também espero que você possa usar o Spaghetti* em seus projetos, e adoraria ouvir qualquer coisa sobre a experiência. Assim que alguém já estiver usando o framework em algum projeto internet afora, farei questão de dizer isso aqui ou mesmo no site do Spaghetti*. Até mais!

03 de janeiro, 2009

7 coisas que todo desenvolvedor web deveria saber

Desenvolvimento Web é coisa séria, e evoluiu muito em termos de maturidade e complexidade. Para fazer frente ao crescente níveis de exigência, nós, desenvolvedores, devemos estar aprendendo a todo instante. Não importa qual campo você deseja seguir, seja ele no lado cliente ou servidor. Mas acredito que existam coisas que todo desenvolvedor web de verdade deveria saber.

Web Standards

Hoje em dia, o mínimo que se espera de um bom desenvolvedor web é o conhecimento dos Web Standards, XHTML e CSS. Eles contribuem para a criação de documentos mais consistentes entre si, mais compatíveis e de manutenção extremamente mais simples. Aliás, o conhecimento dos padrões não é mais um diferencial como era há alguns anos atrás, mas sim um requisito básico. Se hoje sonhamos com a web semântica, os padrões web são o primeiro passo. Com documentos mais semânticos, temos mais acessibilidade e também mais relevância, principalmente no que diz respeito a motores de busca.

Mesmo depois de muita evangelização, ainda temos desenvolvedores que acabam de descobrir as maravilhas do mundo validado. Também temos aqueles que não fazem a mínima idéia do que isso signifique, ou que não tem o mínimo interesse em aprender. Se você é um desses, hora de rever seus conceitos…

JavaScript

O JavaScript, apesar de ter sido muito injustiçado no passado, é uma linguagem onipresente, e de extrema importância. Qualquer usuário tem pelo menos um interpretador instalado em seu computador. Além do mais, ela é a única linguagem client-side disponível, e permanecerá assim por um bom tempo.

JavaScript vai ser a próxima grande linguagem. Apesar de ainda estarmos longe de resultados surpreendentes, caminhamos rápido nesse sentido. Muita coisa que antigamente só era possível com Flash hoje é feita com JavaScript.

Além da própria linguagem, aprenda a usar alguma biblioteca, como Mootools, jQuery ou Prototype. Aliado a essas ferramentas, você poderá criar aplicações muito mais interessantes em muito menos tempo. Mas atenção: não aprenda somente a biblioteca, sem aprender antes JavaScript puro. Afinal, saber só jQuery é coisa de designer.

Expressões Regulares

Um simples replace nem sempre é suficiente quando trabalhamos com manipulação de textos. Aí entram as Expressões Regulares, poderosa ferramenta que todos conhecem, alguns usam, e poucos realmente sabem. Seja em PHP, Ruby, Python ou mesmo JavaScript, algum dia você precisará delas.

Se você leva desenvolvimento a sério, dedique um tempo a aprender expressões regulares (Expressões Regulares – Uma Abordagem Divertida é um bom começo!). Além de uma ferramenta de desenvolvimento, elas podem se tornar ferramentas de produtividade. Se você usa IDEs com suporte a busca e substituição com expressões regulares, pode se beneficiar muito disso.

Controle de Versão

Para alguns, o Controle de Versão mudou completamente, e para a melhor, a forma de trabalhar. Para outros, parece simplesmente inútil, principalmente para quem trabalha sozinho. Seja CVS, SVN, GIT, Mercurial ou qualquer outro, o controle de versão, aliado a ferramentas como o Trac, pode fazer maravilhas. Além de manter controle de suas alterações, podendo sempre voltar atrás caso alguma modificação dê errado ou mesmo quando o cliente não aprova, você pode manter um controle de sua produtividade, analisando quantos commits foram feitos em quanto tempo, quantos tickets foram fechados, quantos ainda permanecem pendentes.

Desde que passei a utilizar SVN em alguns projetos, como no próprio Spaghetti, notei uma grande melhora no controle sobre o código. Nunca mais pensei duas vezes em apagar grandes blocos de código pensando que eles poderiam ser úteis outra vez (e geralmente nunca seriam realmente necessários). Uma excelente forma de analisar seu progresso, uma excelente forma de backup, uma excelente forma de manter seu código sincronizado. Esqueça aquele colega que tem uma versão ultrapassada de seu código e sobrescreve partes importantes. Quando passei a utilizar ferramentas de tracking, bugs não eram esquecidos, idéias estavam sempre à mão. Digo, como muitos por aí: isso realmente mudou a minha maneira de desenvolver.

MVC

O Model-View-Controller, ou MVC para os íntimos, nunca fez tanto sentido quanto na web. Depois do Ruby on Rails, virou quase um requisito básico para o desenvolvimento de bons projetos. E desde então, desenvolver não tem mais graça. Além disso, a separação de aplicações nessas 3 camadas torna o desenvolvimento e manutenção muito mais simples.

Se você não quer ficar para trás, adote seu framework. O pattern é usado na maioria deles, e de brinde você ganha muita produtividade. Frameworks tornam as linguagens menos ruins. Se você usa PHP, eu sugeriria o Spaghetti. Se você usa Ruby ou Python, e é seu primeiro contato com frameworks, siga a tendência e adote Rails ou Django. Se você é corajoso, faça como fizemos na minha agência: crie seu próprio framework. Usando algum framework ou não, o que importa é pegar o espírito da coisa.

SQL

Mesmo com toda a flexibilidade e abstração da camada de dados que os frameworks MVC nos oferecem, SQL ainda é necessário. Apesar de você não vê-lo, ele ainda está lá. Consultas complexas ou mais específicas nem sempre são disponibilizadas pelos frameworks, e sempre pode haver a necessidade de uma incursão via terminal, para tarefas de manutenção, por exemplo.

Talvez você não acredite no retorno que isso pode trazer. Até ter nas mãos uma aplicação gigante e extremamente dependente de banco de dados, onde as consultas devem ser otimizadas ao máximo para minimizar a carga do servidor. Você não quer sua aplicação baleiando por você não saber SQL, quer?

Desenvolvimento Guiado a Testes

Test Driven Development, ou simplesmente TDD, é, na minha opinião, a melhor maneira de manter seu código livre de bugs. Fazer o desenvolvimento guiado a testes significa desenvolver o teste antes da funcionalidade. A cada iteração, os testes são rodados novamente, de maneira automática, e você sempre saberá se alguma modificação quebrou o restante do código.

Sem testes automatizados, aplicações nunca são testadas como deveriam. São tarefas repetitivas e cansativas. Com o auxílio de ferramentas de testes, eles podem ser rodados várias vezes, certificando de que tudo está correndo bem. Se um novo bug é descoberto, um novo teste é criado, as modificações são feitas, e você terá a certeza de que o problema foi resolvido para todo o sempre, sem quebrar o restante da aplicação. E convenhamos, não há nada pior do que bugs…

Não é obrigatório que um desenvolvedor saiba tudo isso, embora eu considere extremamente importante, mesmo alguns não sendo necessários todos os dias, todos podem melhorar nossa maneira de trabalhar. Ainda não domino todos os itens citados, mas tenho um bom conhecimento em todos eles. O que importa mesmo é buscar isso, e sempre continuar aprendendo. Mexa-se! Você não quer ficar para trás, quer?

06 de novembro, 2008