sexta-feira, 17 de junho de 2011

Porque não vou comprar o WinC++ na madrugada do seu lançamento

Humm… Sexta-feira. 17:50. Silencio em casa, as meninas ainda não chegaram da escola. Estou lendo uma thread de discussão sobre o WinC++ – a implementação que a Microsoft irá lançar da nova versão do C++.

Após ler a thread, que – como sempre em discussões de linguagens, desde o VB x Delphi – descambou para tons um pouco mais irritados, dado que o assunto sempre é discutido com um fervor beirando o religioso, enviei os pontos principais com meus comentários para nossa lista interna, que reproduzo aqui:

Parece só geek tentando mostrar que conhece mais que o outro. Discutir linguagem de programação pra mim é igual discutir qual é o tipo de calçado que vai otimizar sua ida à padaria comprar pão. Se você mora na Sibéria, tem que ter uma bota quente e anti-derrapante; se você mora em Nápoles e a padaria fica do outro lado do Vesúvio você tem que ter uma bota a prova de fogo. Mas fora essas situações específicas, qualquer calçado que você escolher dá conta do serviço. As questões importantes são outras: como eu chego na padaria? Ela tá aberta a essa hora? E etc.

Se linguagem fosse *o* fator decisivo no desenvolvimento  de projetos, desenvolvedor ganhava mais que gerente de projetos. Vai vir um C++ novo, vai ter o seu nicho, mas se 95% das empresas que desenvolvem software adotarem C++ novo no lugar das suas atuais linguagens de programação, duvido que vão aumentar significativamente o desempenho de entregas. Agora se investirem em processo e gerenciamento deste processo, aí sim eu aposto que vai haver ganhos.

Isso daí também me parece a Microsoft fazendo o que ela faz melhor: barulho pra vender. Lembram das filas nas lojas toda vez que a MS lança uma versão nova do Windows? Há vários debates sobre a qualidade técnica da M$, mas acho que ninguém duvida da capacidade de marketing dela...

No artigo do The Register sobre o C++, uma coisa me chamou a atenção. “E enquanto novas linguagens nasceram desde então, C++ permaneceu. Java é a única a ganhar em popularidade […]”. Realmente, estas duas linguagens são que nem o U2: agradam a mais de 20 anos, continuam agradando, e parece que continuarão. O que faz uma linguagem de programação ser bem sucedida? Vamos ver alguns pontos:

  • Facilidade de aprendizado e simplicidade no uso. Grande parte dos desenvolvedores são, em parte ou totalmente, auto-didatas. Quero abrir a IDE, pegar uns walkthrough’s no Google, começar com o “Hello World” e rapidamente estar fazendo minha agendinha telefônica, com tela Web e acesso a BD.
  • Riqueza de recursos. “Linguagem de programação” hoje não é só a linguagem em si. E a IDE, o quê ela provê de recursos? É fácil instalar a aplicação, depois que ela está pronta? As bibliotecas são ricas, ou tenho que construir um monte de coisa “na mão”? ORM? TDD? ALM?
  • Portabilidade. Nesse mundão sem porteira de hoje, tem hardware de tudo que é jeito. Tem um monte de sistemas operacionais. Quer um dos fatores de sucesso do Java? Taí.
  • Marketing. Bem, isso não é só pra linguagem de programação, né?

bulabulaNo final das contas, a “corrida” entre as linguagens de programação é como aquela brincadeira de pular carniça que a gente fazia quando era criança. X implementa 1, 2 e 3 na sua linguagem; Y vai e copia 1 e 2, implementa 3 melhorado, e ainda coloca 4 e 5. X atualiza sua linguagem pra colocar 6, além de incluir as últimas novidades de Y (sempre com outro nome ;-). E por aí vai… Vide Java e Microsoft.NET:

  • Olhando mais de perto para alguns aspectos de arquitetura do .NET:
    • Common Language Runtime: ambiente de execução das aplicações .NET. (Java: Java Virtual Machine).
    • MSIL: Código intermediário, independente de harware, resultante da compilação das linguagens de alto nível. (Java: bytecode)
  • Agora o Java:
    • É um C++ simplificado, portável e com ótima penetração de marketing no mundo open source.
    • Não sou especialista em Java, mas certamente a linguagem deve ter puxado conceitos bem sucedidos de outras.

Isto é lógico. É esperado. E, de várias formas, é bom.

Ou seja: legal que vem aí um novo C++. Espero que ele seja mais fácil de aprender e simples de usar do que seu predecessor. O WinC++ certamente incorporará a riqueza de recursos das outras linguagens do .NET Framework. Com a popularização dos tablets e os investimentos da Microsoft no Windows Phone, certamente veremos algum mecanismo para aumentar a portabilidade desta linguagem. E o marketing, esse não tenho dúvidas: será bem feito. Até eu já estou fazendo marketing pra ela…

Mas essa linguagem vai mudar minha vida? Hard to believe. Vou ficar sentado confortavelmente no meu C# pra esperar no que vai dar (acredite ou não, o trocadilho apareceu sem querer), e na próxima vez que eu chegar em casa e as meninas ainda não tiverem chegado da escola, quem sabe eu não faço o meu “HelloWorld.wincpp”… :-)

[]s,
GB