Tuesday, October 04, 2005

O legado

C++.
A minha linguagem de eleição, infelizmente vítima de inúmeros mitos e preconceitos nos dias que passam.

Certamente um dos mais infundados e, na minha opinião, injustos é o de que o C++ é uma linguagem ultrapassada e antiquada.

A minha humilde opinião : Embora o standard tenha estado parado durante alguns anos, os usos da linguagem e as suas boas práticas alteraram-se radicalmente durante o tempo de vida da mesma.
O C++ é frequentemente comparado ao Java e não menos frequentemente considerado menos "avançado". Há que notar uma grande diferença aqui. Java foi criado com uma filosofia quase oposta à do C++. Enquanto que o primeiro tenta esconder as fontes de erros do programador, o C++ deixa o poder (e as responsabilidades) nas mãos de quem o usa. Isto certamente torna C++ uma linguagem com uma curva de aprendizagem menos amena do que outras linguagens mais simples, mas nunca o tornará menos "avançado". Até pelo contrário...

Não conheco ninguém, que depois de compreender o que é possível fazer, e já foi feito, em projectos como a famosa STL, as libs do Boost ou ainda na lib Loki por indivíduos brilhantes, que considero como hackers dignos deste nome nos dias que correm, continue a olhar para C++ com os mesmo olhos de desdém ou até de medo...

O meu medo é do ímpeto que as linguagens concorrentes possam adquirir, atraindo cada vez mais novos talentos e esforço para as suas causa, deixando assim o C++ depleto do que faz qualquer linguagem vingar. O apoio, a escolha e o uso alargado por parte dos programadores.

E este preconceito vem de onde ?
Em grande parte julgo vir do forte legado que C++ tem. A sua luta para manter um alto nível de compatilidade com C.
O que começou por ser um ponto forte para a adopção da linguagem é, actualmente e na minha opinião, a raíz de muitos problemas com código C++ (e, irónicamente, também o que possibilitou uma fácil adopção progressiva do C++ por parte de programadores da velha guarda).
Ao usar o C++ como apenas um C com classes (ou seja, o que C++ já foi, lá nos princípios, na década de 80), acabamos por ficar com o que eu gosto de chamar de código C mais ou menos ...
É este tipo de código que, apesar de ser código válido, vai dar o mau aspecto que C++ parece ter aos olhos de quem ainda não o abraçou de alma e coração.