Mesmo na informática, um ramo considerado de “tecnologia de ponta”, ainda vale o ditado “quanto mais ascoisas mudam, mais elas permanecem as mesmas” – ou até mesmo voltam para trás. Recentemente fomos testemunhas dessa “volta ao passado” em vários aspectos da informática.
Uma das coisas que mais chamam a atenção nas “novidades” recentes é a centralização. Na época dos mainframes, a maioria do processamento e armazenamento dos dados era efetuada por mainframes, muitas vezes contratados de terceiros e fisicamente localizados fora das empesas. Depois dos mainframes tivemos a “revolução do computador pessoal”, onde os usuários compravam e usavam os próprios computadores sem muita supervisão de um local centralizado. “Livrar-se dos dinossauros dos mainframes”, que “demoravam anos para fazer qualquer coisa funcionar” era visto como uma das grandes vantagens dos micros. Hoje em dia o que está na moda são coisas muito semelhantes aos mainframes: alugar servidores reais ou mesmo virtuais “na nuvem” e lá rodar a maior parte dos aplicativos, que foram na maior parte desenvolvidos para usar terminais remotos (hoje chamados “navegadores Web”). E o pessoal que cuida dos computadores centralizados (agora micros “crescidos” ao invés de mainframes) é notório pela falta de agilidade e “demorar anos para fazer qualquer coisa funcionar”.
Mas as “novidades” não param por aí: as interfaces gráficas com o usuário dos anos 80 e 90 trouxeram o conceito de janelas sobrepostas como principal interface com o usuário dos aplicativos. Isso era tão importante que o principal sistema operacional da Microsoft chama-se “Janelas” (ou “Windows”). No entanto, o “Windows 8” em sua nova interface com usuário chamada “Metro” abandona as janelas em favor de uma interface sem janelas sobrepostas e onde apenas um aplicativo está rodando em primeiro plano, sempre em tela cheia. As interfaces gráficas trouxeram o mouse como importante dispositivo; o Metro deixa o mouse de lado em favor do toque. Tem mais: apenas um programa pode estar rodando, não podemos ter mais processamento em “background” a não ser para algumas tarefas bem definidas e feitas na verdade pelo sistema operacional. Pois bem, um ambiente sem mouse e com apenas um programa rodando em tela cheia é o que tínhamos no DOS usado na década de 80.
O que mais me surpreende, no entanto, são as ferramentas de desenvolvimento. Na década de noventa as bibliotecas de classe “OOP” como OWL (Borland) e MFC (Microsoft) usadas na linguagem C++, uma evolução do C, eram consideradas o que havia de mais moderno no desenvolvimento de software. O desenvolvimento para sistemas operacionais Apple era feito de forma semelhante, só que com uma linguagem ligeiramente diferente, mas também uma evolução do C, chamada ‘”Objective C”. Esta maneira de desenvolver foi suplantada por ferramentas como Visual Basic e Delphi, onde o paradigma principal é um formulário e a OOP é secundária ou até supérflua. Quando a Apple teve que criar às pressas um “SDK” para iPhone, ela usou essa mesma tecnologia antiga “dos anos 90”, que ela tinha disponível. O resultado é que para programar para iPhone ou iPad, você tem que usar uma tecnologia com 30 anos de idade. A Microsoft, para não ficar atrás, ressuscitou o C++ como cidadão de primeira categoria no Windows 8 e está até mesmo enfatizando seu uso ao invés da linguagem C#, esta muito mais produtiva e amigável. Em minha opinião existem pouquíssimas razões para se desenvolver em C++ sob Windows e muitas para desenvolver sob C# ou mesmo Visual Basic.NET. Mesmo que este fato deva-se mais a brigas politicas internas da Microsoft do que uma real necessidade técnica, sobra o fato que um monte de gente vai desenvolver para a plataforma Metro com algo que a Microsoft chama de C++. É verdade que os ambientes de desenvolvimento são mais modernos, mas a base é antiga e volta e meia atrapalha.
A plataforma Android usa uma linguagem mais moderna - o Java - como padrão – se bem que o Java não tem alguns conceitos interessantes introduzidos pelo Visual Basic e Delphi como propriedades e eventos.
Temos então uma geração de novos desenvolvedores que está fascinada por linguagens como C++ e Objective-C e que considera Visual Basic, Delphi e C# obsoletas. Vai entender!