Como trabalhamos com ASP.NET MVC no Stack Overflow, me vejo violentamente empurrado de volta aos velhos e ruins dias de sopa de tags que me lembro de quando era um desenvolvedor ASP clássico no final dos anos 90. Se o senhor não for cuidadoso, quase maniacamente exigente na construção de suas visualizações, acabará com uma mistura gigantesca de HTML, Javascript e código do lado do servidor. Sopa de tags clássica; difícil de ler, difícil de manter.
Não me refiro à sopa de etiquetas no sentido de HTML mal formadoou o mundo malformado em que vivemos. Refiro-me à sopa de etiquetas no sentido de mistura de marcação HTML e código do lado do servidor. Agora o senhor pode dobrar seu prazer: HTML mal formado, conheça o código mal escrito.
O problema da sopa de tags parece ser endêmico em todas as pilhas modernas de desenvolvimento da Web. Vejo que os aplicativos Ruby on Rails têm o mesmo problema; aqui está uma fatia representativa RHTML de Erro de digitação, um mecanismo de blog em Ruby.
O senhor acha que isso é legível? O senhor consegue ver onde começa o código e termina a marcação? O senhor tem certeza de que poderia alterar a estrutura do código sem quebrar o HTML ou alterar a estrutura do HTML sem quebrar o código?
Às vezes, editar esse material me faz sentir como se estivesse jogando Operação. Tenho que manobrar minha pinça de metal com muito cuidado em uma pequena fatia de código ou HTML e fazer minhas alterações sem tocar nas bordas e disparar aquela maldita campainha elétrica.
Não estou tentando destacar o Rails ou o Typo aqui; eu poderia facilmente mostrar uma visualização do ASP.NET MVC que é tão confusa quanto (ou tão “clara”, se o senhor achar que isso é perfeitamente legível, eu acho). A sopa de tags está em toda parte; dê uma olhada no Python modelos da estrutura Django:
<h1>Archive for {{ year }}</h1> {% for date in days %} {% ifchanged %}<h3>{{ date|date:"F" }}</h3>{% endifchanged %} <a href="{{ date|date:"M/d"|lower }}/">{{ date|date:"j" }}</a> {% endfor %}
Talvez quando se trata de misturar HTML e código do lado do servidor, alguma forma de sopa seja inevitável, um mal necessário. A sopa pode ser bastante palatável, talvez até deliciosa. Certamente é possível escrever bom tag soup e ruim tag soup.
Mas eu tenho que me perguntar: existe uma maneira melhor? Existe algo além de RHTML, visualizações e modelos? Que exemplos o senhor poderia indicar de pilhas de desenvolvimento da Web que evitaram se degenerar em uma sopa de etiquetas ainda mais perigosa e difícil de manter? Existe algo realmente melhor no horizonte?
Ou será que a nova, mais sofisticada e ainda mais deliciosa iteração da sopa de tags deste ano é a melhor possível para o desenvolvimento da Web?