jQuery e Microsoft – Sinal dos tempos?

Este blog foi criado para falar exclusivamente sobre Visual Studio Team System. Hoje vou abrir uma pequena exceção.

Não é novidade para as pessoas que me conhecem quão apaixonado sou pelo produto – ter recebido o título de MVP foi essencialmente uma consequência dessa paixão.

Acho que é natural para qualquer pessoa apaixonada sempre querer o melhor para sua paixão. Neste caso, obviamente torço (e faço minha parte, claro!) para que o VSTS seja a melhor e mais utilizada solução de ALM do mundo.

Mas e o quê isso tem a ver com o título deste post? Bem, inúmeras vezes perguntamos ao time de produto porque investir seu limitado orçamento (acredite, o orçamento dos times de produto na Microsoft é limitado sim :)) desenvolvendo novas soluções quando existem excelentes alternativas no mundo open-source? Um exemplo bastante recorrente de discussão é NUnit vs. MSTest. Por quê a Microsoft criou um novo framework de testes unitários ao invés de usar o NUnit? Empresas como IBM e Oracle têm se beneficiado de um relacionamento mais estreito com projetos de código-aberto.

A resposta do time de produto faz sentido – até certo ponto. Mas antes de dizer qual a resposta do time de produto, sabe a pena refletirmos um pouco sobre como a comunidade de uma forma geral enxerga o relacionamento da Microsoft com projetos de código aberto. Muitas pessoas acreditam que a Microsoft é estritamente contra código aberto, que quer sufocar qualquer projeto que não saia de seus laboratórios… Bem, nada mais longe da verdade:

  1. Antes de mais nada, deixemos de lado o romantismo tolo seguido por muitos dos defensores de projetos de código aberto. A Microsoft, como qualquer outra empresa neste nosso mundo capitalista, visa ao lucro. Ponto. Sendo assim, ela vai “combater” a concorrência aos seus produtos a fim de aumentar suas vendas. Nesse sentido, seus concorrentes são outros produtos similares aos que ela própria desenvolve – independentemente de serem open-source ou closed-source. Por isso, não faz sentido dizer que a Microsoft seja contra o modelo de desenvolvimentos de softwares em código aberto;
  2. A própria Microsoft já liberou MUITOS projetos de código aberto que são consumidos livremente pela comunidade, abertos à contribuições, melhorias e sugestões vindas de desenvolvedores do mundo inteiro;
  3. Apesar de já existirem sites que ofereciam hospedagem de projetos de código aberto (SourceForge é um dos mais conhecidos), havia espaço para um novo portal, capaz de oferecer o melhor em termos de controle de versão e rastreamento de itens de trabalho. Com o CodePlex a Microsoft mostrou que pode apoiar o desenvolvimento de qualquer projeto, usando qualquer licença de código aberto – “no strings attached”.

Porém, na minha opinião faltava um último passo da Microsoft no seu relacionamento com F/OSS: se libertar da “Síndrome do Não-Inventado-Aqui”. O tal do not-invented-here sempre impediu que a Microsoft usasse em seus produtos qualquer coisa que fosse desenvolvida por terceiros – principalmente código aberto. Agora podemos voltar aos motivos do time de produto para não usar o NUnit: do ponto de vista legal, sempre foi bastante nebuloso entender o que aconteceria do ponto de vista da Propriedade Intelectual se a Microsoft usasse código de terceiros. Na dúvida, ela sempre se limitou ao seu próprio código (o do invented-here).

Hoje vi um post do ScottGu que pode significar o começo da mudança. A Microsoft vai distribuir um projeto open-source – jQuery, um framework de programação JavaScript – como parte do ASP.NET MVC e do próprio Visual Studio!

Tomara que isso realmente signifique que a Microsoft possa, daqui para a frente, usar os excelentes projetos open-source que existem para criar produtos ainda melhores, contribuindo de volta para a comunidade as melhorias que vierem como parte dessa utilização.

Sinal de bons tempos por vir? Torço para isso.