O efeito ASP

January 16th, 2008 § 13 comments

Muito do meu desenvolvimento diário, para minha infelicidade, ainda é feito em aplicações legadas em ASP e PHP. Desnecessário dizer, não é um trabalho muito agradável mesmo quando a aplicação foi construída com um cuidado maior do que simplesmente gerar arquivos e mais arquivos em uma tentativa de trazer ordem ao caos.

Aplicações ASP são capazes de infligir terror ao mais corajoso desenvolvedor Web. A mistura de lógica e apresentação vem sendo usada há vários anos para exemplificar o que há de pior da área e não sem razão. Atualmente, para falar a verdade, é muito raro que eu aceite um contrato de manutenção ASP se a aplicação não atende certas práticas que eu estabeleci como referência. O trabalho simplesmente não vale a pena, por melhor que seja o pagamento.

Nos últimos anos, é claro, eu tenho tentado me dedicar mais e evangelizar, sempre que possível, novos modelos e frameworks de desenvolvimento. Nem sempre a empresa aceita mudar para algo que ela considera esotérico e fora da realidade do mercado, mas algumas vezes a vontade de reduzir o time-to-market vence o medo e algo de interessante acontece.

Estamos hoje há mais de três anos do início da evolução do desenvolvimento Web que frameworks como Rails e Django começaram e acho que estamos começando a ver os reais efeitos que o desenvolvimento nestes novos paradigmas está tendo. O uso de MVC está se tornando uma constante e mesmo a questão de desenvolvimento guiado por testes está se firmando como algo mais comum em locais onde usualmente se via um processo menos elaborado.

Nos últimos tempos eu tenho recebido alguns propostas para completar ou manter aplicações Rails já existentes e estou surpreso com a baixa qualidade do que estou vendo. De fato, no que tange a falta de cuidado com o código e a mistura de lógica e apresentação, eu só não compararia o nível dessas aplicações ao que usualmente vejo com ASP porque pelo menos a parte de convenção versus configuração segura os abusos mais berrantes.

Eu ainda não tenho dados suficientes para dizer a mesma coisa de Django, mas é possível notar um pouco disso nas aplicações e projetos espalhados pela Web que pouco cuidam em promover técnicas como TDD ou mesmo um reuso mais efetivo de código. E quanto promovem, o que se vê são usos pouco significativos dessas técnicas como a eterna persistência em testar o funcionamento de camadas ORM. Isso é válido também para quase todos outros framework Web, independentemente de linguagem e estruturação.

Parte do motivo desse uso incorreto é explicada pela soma de dois fatores distintos: o fato de que poucos programadores são realmente capazes de entender o que OOP significa e o fato de que Rails, Django e todos esses outros frameworks promovem uma versão mais light, por assim dizer, de OOP que efetivamente isola muitos programadores de um desenho mais efetivo do domínio do problema.

Eu fico pensando no mercado daqui a cinco anos, quando o mesmo estiver inundado de aplicações nesses novos frameworks. Provavelmente, não haverá diferença nenhuma em termos de manutenção para o que vemos hoje. Aplicações realmente bem feitas permanecerão confinadas a um pequeno conjunto dentro da indústria. Um efeito ASP em ação.

A revolução ainda espera e Frederick Brooks continua mais válido do que nunca. Rails e Django podem ser indolores no começo, mas eu tenho pena dos programadores que terão que manter o que está sendo criado hoje.

§ 13 Responses to O efeito ASP"

  • Muito bom o post… soou como uma versão digerível e “light” do post de Zed Shawn. 😀

  • E o que é pior nisso tudo é que quem vai sair queimado na estória, muitas vezes, são as tecnologias. Já vi isso acontecer na empresa onde trabalho.

    Fico impressionado como as pessoas desenvolvem ou adotam uma tecnologia sem ler a documentação e os best practices delas antes de as aplicarem. Triste.

  • .. Claro, apenas no que diz respeito a parte em que ele fala a respeito da demanda para “faxineiros” de código. E não é o Rails (nem o Django ou whatever) que mudará isso.

  • Samir says:

    Ronaldo,

    Infelizmente eu também já cansei de presenciar situações como essas e da disgosto de trabalhar.

    Eu tenho um exemplo clássico da sua comparação ao ASP, no ultimo emprego que passei, essa “tal” empresa resolveu adotar o ASP.NET como plataforma, mas com aquele velho pensamento do ASP, ou seja, misturar regras de negócio com eventos e programação estruturada, imagina o parto que era dar manutenção nisso…

    E tambem concordo que não adianta adotar Rails e Django se o paradigma não mudar, são justamente essas mentalidades que acabam queimando as novas tecnologias.

  • Marcos Ganine says:

    As boas práticas sempre existiram, mas nem sempre (ou quase nunca) as pessoas seguem, a desculpa pelo descaso, geralmente é falta de tempo.

    Eu axo que a solução para esse tipo de problema não depende da ferramenta, e sim na vontade do programador de seguir padrões.

  • Ronaldo says:

    Daniel, depois fui conferir no texto do Zed e ele menciona a mesma coisa. Acho que o assunto ficou na minha cabeça e como eu recebi essas propostas nas últimas duas semanas, voltou. :-)

    Parte do que eu escrevi também veio do que o Frederick Brooks e Scott Rosenberg falam em seus livros sobre a dificuldade de escrever código que seja um pouco mais complexo. Nós estamos tão acostumados com aplicações comparativamente simples e com um domínio mais isolado que esquecemos que ainda não há uma bala de prata.

    Rafael, exatamente. Esses dias eu estava conversando com o TaQ e o Luiz que o maior problema do Ruby pode ser o próprio Rails daqui a algum tempo.

    Eu fico impressionado com algumas perguntas que vejo nas listas que freqüento, com pessoas tentando fazer algo mais complexo mais traindo na pergunta que não entenderam mais do que o básico do básico–e muitas vezes, nem isso. O pior de tudo é que Ruby e as outras linguagens dinâmicas são mais vulneráveis por causa da natural repulsa do mercado. Mas acho que pelo menos essa parte vamos evitar.

    Samir, essa história do ASP.NET feito igual a ASP parece ser a constante de mercado. Eu fico impressionado como até mesmo o código que você vê em alguns blogs conhecidos é mal feito. O pessoal faz na pressa e tenta simplificar para o texto ficar curto e esquece que o pessoal está se apoiando naquilo como boas práticas.

    A questão da paradigma é essa mesma. O que eu gostaria é que um framework realmente OOP como o Seaside pegasse para “ensinar” boas práticas ao mercado como um todo. Infelizmente, nem Rails nem Django chegam nesse ponto.

    Marcos, com certeza. Sem um esforço específico por parte do programador não há como progredir.

  • Rafael Silva says:

    Talvez eu até diga uma bobagem, mas acho que no Brasil isso é ainda mais forte.

    A questão do brasileiro sempre querer levar vantagem faz com que muita gente corra atrás do hype, depois saem alardeando que dominam a tecnologia, e na hora do “vamo vê” sai essas pérolas.

    Agora eu espero, sinceramente, que ao menos linguagens como Ruby escapem dessa má sorte.

  • Ronaldo says:

    Eu acho que em qualquer lugar o mundo. O Martin Fowler hoje respondeu indiretamente ao texto do Zed Shaw dizendo que prefere contratar gente com perfil de aprendizado e sem conhecimento específico na tecnologia do projeto do que o contrário. Eu concordo, mas o que ele não diz no texto é que isso muitas vezes é mascarado pelo fato de que as pessoas mentem descaradamente.

    Eu também estou botando um pouco mais de fé nas linguagens modernas, mesmo sem considerá-las balas de prata, por causa da conjuntura. Isso pode mudar um pouco o barco.

  • Muito bom o texto…

    Hoje estou trabalhando em uma aplicação Rails legada que não usa 20% da maneira Rails/Ruby de fazer as coisas. Uma pena.

    Abraços

  • Ronaldo says:

    Você também. Vixe. :-)

  • […] baseado numa (ainda mais antiga) entrevista com Eric Evans na InfoQ, não pude deixar de lembrar de um post do Ronaldo de uns tempos atrás, no qual ele mencionava sua preocupação com relação a qualidade dos […]

  • Witaro says:

    Pois é. Existe uma linguagem mais importante e acima de qualquer Ruby ou ASP que poucos parecem se importar: Design. Afinal, é possível fazer belas esculturas independente de se usar pedra ou ouro.

  • […] efeito está intimamente ligado à maldição da popularidade. Mais popularidade significa mais gente e […]

Leave a Reply

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

What's this?

You are currently reading O efeito ASP at Superfície Reflexiva.

meta