O fim do artífice computacional

O fim do artífice computacional

The Death of the Computeral Craftsman

Autor original: Ersin Y. Akinci

Publicado originalmente no: osnews.com

Tradução: Roberto Bechtlufft

Há mais de uma década os sites vêm passando por uma transição para o paradigma Model-View-Controller, separando os dados da formatação e da interação do usuário em suas bases de código. Infelizmente, isso significa não apenas o fim daquelas páginas “clássicas” e horrorosas do Geocities do início dos anos 90, mas também o fim da era do artífice digital, ou computacional, para ser mais exato. O futuro dos computadores vai depender dos artistas, estudantes e programadores que puderem reunificar conteúdo ao formato e recriar a programação como arte.

Outro dia, visitando o blog groundswell de Josh Bernoff, um analista do [grupo de pesquisa de mercado]Forrester, chamou minha atenção um artigo sobre a ascensão da “Splinternet” [rede fragmentada], que defende que a enorme variedade de formatos e tecnologias web está causando perturbações na natureza unificada da web:

“O marketing na web cresceu desde 1985, com base na ideia de que tudo está conectado. Redes de anúncios, análise de tráfego, otimização de mecanismos de busca, tudo funciona porque a web é padronizada. O Google funciona porque a web é padronizada.

Mas isso acabou. Cada dispositivo novo tem suas próprias redes de anúncios, formatos e tecnologias. Cada site social novo tem seu próprio login, e muitos ocultam seu conteúdo de mecanismos de busca.

Chamamos este novo mundo de Splinternet, em referência a Doc Searls e Rich Tehrani, que usaram o termo antes de nós com um significado bastante diferente. Ela vai fragmentar a web, que antes era um sistema unificado. A era de outro durou 15 anos. Como todas as eras de ouro, ela durou tanto tempo que pensamos que duraria para sempre. Mas o fim está próximo.”

O principal argumento de Bernoff, no meu entendimento, é o de que o conteúdo online está sendo balcanizado em diversas redes privadas, e que com isso a web não é mais unificada por padrões que garantem a interoperabilidade; isso tem os seus méritos, mas também tem muitos efeitos colaterais que os leitores correram a apontar nos comentários. Com relação aos login, o OpenID teve um sucesso relativo na simplificação da autenticação de usuários online, e com relação ao conteúdo de mídia social, recentemente o Google teve êxito ao integrar atualizações em tempo real do Twitter aos seus resultados de pesquisa. Uma abordagem possível é dar um passo atrás e defender que o conteúdo de mídias sociais só desvia a atenção do que realmente importa, já que conteúdo que não está sendo compartilhado geralmente está relacionado a questões de privacidade, e que esse conteúdo nem estaria online se não fosse pelo Facebook.

Seja como for, a infinidade de dispositivos com acesso à internet, navegadores web e afins fizeram uma bagunça com os padrões web, e apontam uma tendência rumo a um ciberespaço genuinamente fragmentado. Onde antes o HTML e outros padrões prometiam aos navegantes uma língua franca,

“Hoje os iPhones, Androids, Kindles, Tablets e TVs que se conectam à web mostram que isso não é verdade. Seu site talvez não funcione nesses dispositivos, especialmente se incluir Flash ou se presumir a navegação via mouse. Aplicativos que funcionam no iPhone não funcionam no Android. Os widgets lançados para o serviço de TV FIOS da Verizon só funcionam nele.

Só que tanto as críticas de Bernoff quanto as réplicas de seus leitores deixam passar um aspecto mais fundamental, o de que a padronização da web está em franca expansão no momento, e de uma maneira muito curiosa. Além das listas de discussão secretas e das negociações sigilosas do W3C e do WHATWG, os órgãos não muito transparentes que criam e mantêm especificações na web como o HTML, os desenvolvedores vêm reestruturando lentamente (mas sem perder o ritmo) toda a internet sob o esquema Model-View-Controller, que vem estimulando dramaticamente a padronização.

O MVC é um padrão básico de arquitetura de software que faz uma separação rígida entre dados (modelo) e o código usado para criar a interface de usuário (view) por meio de uma camada lógica de intervenção (controlador), que atualiza os modelos de dados de acordo com o que é fornecido pelo usuário nas views, e vice-versa. Proposto pela primeira vez em 1979 durante uma visita ao PARC, o centro de pesquisas da Xerox em Palo Alto (mais especificamente, o lugar onde nasceu o mouse) realizada por Trygve Reenskaug, um influente cientista da computação norueguês, só na década passada o MVC tomou a web de assalto, e hoje quase todos os grandes sites, da Amazon ao Yahoo, têm esse paradigma como base.

Um exemplo comum vai ajudar a ilustrar como o MVC funciona. Quando você faz logon no Twitter pelo navegador web e posta alguma coisa, por exemplo, a página que você vê é um exemplo de view, com a caixa de texto com a mensagem que você digitou, o botão para enviar seu twit e todos os outros elementos visuais que você pode ver na página. Só que você também pode usar um cliente de mídia social ou mensagens instantâneas, como o Digsby, para postar um twit, ou até postar pelo telefone, com resultados idênticos. Isso acontece porque todos esses métodos de postagem são exemplos de “views”, e independentemente da view você usa, a atualização é enviada para o mesmo controlador, que faz o trabalho duro de atualização dos modelos de bancos de dados do Twitter com a sua mensagem para, em seguida, transmiti-las de volta para as views, para que todos possam ver o seu post. Geralmente, a implementação envolve uma view escrita em JavaScript e em HTML dinâmico, e o componente JavaScript altera o HTML no ato, dependendo das novas informações recebidas do controlador.

Isso contrasta com a maneira como a maior parte da web era escrita antes do MVC, com páginas estáticas em HTML que unificavam seu conteúdo à formatação sem qualquer controlador intervindo. O HTML é uma linguagem de marcação, ou seja, é uma linguagem intimamente integrada ao texto, e ao contrário de outras linguagens de marcação como o XML, ela nos diz explicitamente como o conteúdo deve ser formatado. Quando escrevemos uma página HTML básica e estática, do tipo que populava os primórdios da internet, é como se estivéssemos criando um documento de formatação e conteúdo unificados, como em uma folha de papel escrita à caneta. Também de forma semelhante a documentos no papel, a unificação de formatação e conteúdo em páginas HTML estáticas faz com que seja difícil abstrair o conteúdo, o que torna aplicações como o comércio eletrônico quase impossíveis. Tocar uma grande loja online como a Amazon com HTML estático seria como gerenciar a cadeia de distribuição de uma grande loja física como o Walmart com etiquetas de preço em cada item, que seriam a única forma de acompanhar o inventário. Se fosse preciso pesquisar um preço, você teria que consultar as etiquetas em vez de um banco de dados ou um registro no escritório; para saber a quantidade disponível de um certo produto em todas as lojas afiliadas, você teria que contar os itens um por um. Com um sistema desses, a view é o modelo de dados, e a formatação proporciona a estrutura dos dados, não apenas para o usuário final (ou para o vendedor, no nosso exemplo), mas também para o analista ou para o programa que só precisa dos dados (ou preços) de forma abstrata.

Por causa dessas limitações, o HTML puramente estático está perdendo terreno há mais de uma década, e as views geralmente são estritamente separadas dos modelos por uma camada de abstração controladora. A prova de Bernoff de que a web está se fragmentando é a proliferação dos iPads, Kindles, widgets e outras formas de acesso à web; todas essas coisas são instâncias de views diferentes, e os dados acessados por esses dispositivos são fornecidos por controladores padronizados, que são a espinha dorsal da experiência contemporânea na internet. O Facebook, o Google, o Twitter e outros provedores de serviços web têm mecanismos de acesso publicamente acessíveis para que você integre seus dispositivos e programas ao conteúdo deles, e é exatamente a estabilidade e a disponibilidade dessas interfaces que interagem com os controladores dos sites em questão que proporcionaram o surgimento de tantas views diferentes. Em outras palavras, a criação de tantos dispositivos e maneiras de se acessar a web é um sintoma de uma nova estrutura para a internet, que unifica grandes concentrações de dados sob métodos comuns e (relativamente) abertos de acesso aos dados por meio de controladores. Isso não quer dizer que a web esteja se tornando mais “unificada” como um todo, mas que hoje é mais fácil do que nunca acessar grandes quantidades de dados online de forma consistente, uma tendência que sem dúvida ajuda a ampliar as margens de lucro de empresas de análise de dados como o grupo Forrester, do qual Bernoff é empregado, já que essa tendência é responsável por fazer o “trabalho sujo” de extrair apenas os dados utilizáveis da pilha de formatação.

É claro que quem está familiarizado com o desenvolvimento para web provavelmente se oporia a chamar as APIs (interfaces de programação de aplicativos, os mecanismos pelos quais os programas interagem com os controladores de sites grandes para obter acesso a dados como atualizações de status ou twits de amigos) do Facebook e do Twitter de “padrões web”, mas o fato é que, funcionalmente, esses mecanismos estão substituindo o que era regulamentado pelo HTML, uma vez que toda a internet está migrando para o MVC, e ele (ao contrário do HTML) separa rigorosamente o formato (views) do conteúdo (modelos). Devido a essa mudança fundamental, a opinião de Bernoff sobre o estado fragmentado das views e sua falta de padronização está presa a quinze anos atrás, quando o HTML era praticamente o único padrão, governando não apenas a formatação de conteúdo em nossas telas como também a estrutura do conteúdo do arquivo das páginas web em si. Qualquer quebra extrema nas views daquele tempo teria de fato implicado na fragmentação da natureza unificada da web, porque o mesmo padrão que determinava as views também ajudava a determinar o conteúdo. Algo parecido aconteceu durante a guerra entre o Internet Explorer e o Netscape, quando implementações rivais do HTML forçaram os web designers a criar páginas que seriam carregadas corretamente apenas em um navegador, ou que usariam um subconjunto restrito de recursos comuns a ambos. Não teria sido trivial para os analistas do Forrester (como o próprio Bernoff) vasculhar a web com ferramentas automatizadas de mineração de dados naquela época, porque o HTML variava muito (e ainda varia), mas seria razoavelmente simples fazer a mineração de dados do Twitter ou do Facebook hoje, usando a API pública possibilitada pelo modelo MVC.

Não é de se estranhar que o desenvolvimento do HTML 5, a nova versão do HTML que tem por objetivo oferecer um padrão aberto não apenas para a formatação do texto como também para vídeo, som, gráficos 2-D, geolocalização, threads múltiplas e outros recursos em páginas da web, esteja se tornando cada vez mais irrelevante. Sendo desenvolvido há seis anos, o HTML 5 foi aprisionado pelos esquemas maquiavélicos de pesos-pesados da indústria como Apple, Opera, Mozilla, Google e Microsoft, cujos representantes formam a organização WHATWG que está desenvolvendo o padrão. Muitos dos novos recursos propostos pelo HTML 5 já foram implementados por alternativas como o Flash ou a dobradinha CSS + JavaScript, e essas alternativas alcançaram altos níveis de sofisticação que o HTML nunca vai alcançar. Na verdade, aqueles que que fizeram como Steve Jobs, CEO da Apple, defendendo que uma solução como o Flash poderia facilmente ser substituída pelo HTML 5, foram ridicularizados.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X