Pedro Teixeira pertence ao grupo exclusivo de 12 programadores que trabalham no kernel do Windows, em Redmond. O único português com acesso à receita do sistema operativo admite que, hoje, a maior concorrência de um novo Windows é a versão anterior do Windows, mas lembra que o sistema operativo mais evoluído do mundo soube mudar para acompanhar as tendências de múltiplos núcleos de computação ou correr netbooks.
Como é que se passa do departamento comercial de uma subsidiária da Microsoft para a equipa de desenvolvimento do kernel do Windows, em Redmond?
Também foi uma questão de sorte. Comecei a apoiar clientes no desenvolvimento de aplicações empresariais e, pouco depois, estava a discursar nas conferências da Microsoft. Quando dei por mim já estava na área comercial, a fazer evangelização. Apesar de desempenhar funções comerciais, o bichinho de mexer com programação, kernel e hardware, estava lá. E dedicava umas boas horas do meu dia a esse hóbi. E então pensei: "Se gasto tanto tempo por dia por que não hei-de candidatar-me a um lugar em que me paguem por isso?". Na Microsoft, há um site para candidaturas internas. Um dia visitei o site e vi uma um série de posições interessantes… e descobri esta oportunidade do kernel, mas pensei: "não me vão aceitar. Além das minhas coisas pouco tenho para experimentar". Na altura, tinha um director com muita experiência, que me aconselhou a fazer um currículo que integrasse as coisas que fazia a título pessoal – até porque já tinham eco na Internet. E assim fiz. Para minha surpresa, sugeriram-me que fosse fazer uma entrevista em Redmond. Isto foi em Fevereiro de 2007.
Foi um salto considerável… o kernel do Windows deve ser dos segredos mais valiosos da actualidade.
Há uma boa parte do kernel que é conhecida do público. E existem universidades e também entidades militares e agências governamentais que têm acesso. Eu só tive contacto, quando cá cheguei.
E gostou do que viu?
Gostei. À semelhança Linux, (e do Linus Torvalds), também tivemos um ditador benevolente. Neste caso trata-se do David Cutler, que escreveu o sistema operativo do PDP, o VMS e, depois, o kernel do Windows NT. Além de ser um senhor com muita bagagem, sempre fez uma microgestão dos seus produtos e sempre foi picuinhas relativamente ao kernel. E isto a todos os graus, incluindo os comentários e a linguagem que podia ser usada, as formas como o código pode aparecer e como se faz a actualização. O que significa que uma pessoa que entre tem facilidade em perceber o que faz o código.
Essa ditadura não limita a criatividade?
Acho que não. Não há desculpas para a má programação… a não ser vírus. Ainda não encontrei uma coisa que não permitisse saídas correctas durante a fase de desenvolvimento. Claro que é muito bom desafiar o que está feito… ou desafiar o nosso próprio código. Mas o que está antes e depois tem de estar bem feito, não pode pôr em causa retro-compatibilidade, pelo menos, a um nível aceitável. E não devo escrever nada que impeça que outra pessoa que vem a seguir de fazer algo de novo.
Tendo em conta as versões e a compatibilidade com as várias marcas de harware e software, a retrocompatibilidade do Windows não deverá ser propriamente pêra doce…
A Microsoft tem uma grande capacidade de testes. Se eu fizer uma alteração, quando fizer uma compilação passo a ter Windows que é só meu. Mas posso pegar neste Windows que é só meu e submetê-lo em centenas de máquinas para efectuar uma bateria de testes com aplicações velhas, com instalações, upgrades, versões… e no dia seguinte, tenho um relatório que com tudo o que funcionou bem ou mal, que anda mais devagar ou rebentou.
E é esse o seu dia-a-dia?
Não digo todos os dias, porque algumas alterações demoram mais de um dia a fazer. Quando chego a um ponto em que concluo que determinada alteração está testável, coloco-a num site de partilha de código e as máquinas da plataforma de testes pegam no que escrevi.
Toda a gente está a falar do Windows 7, mas para si deve ser já não deve ter novidades.
Tenho o Windows 7 instalado no meu portátil desde Junho de 2008. Às vezes acontece isso, mas o Windows é vasto, e é frequente olhar para algo e não fazer a mais pálida ideia de onde está o código daquilo. No (grupo do) kernel, os prazos acabam mais cedo. Na fase de planeamento, todos acordamos que devemos seguir numa direcção, com uma lista de cenários a criar. Imagine que a pessoa que trabalha a fotografia quer criar uma nova forma de tratamento de imagens. Para o gráficos executarem essa nova funcionalidade é preciso que os drivers, o hardware e o kernel o permitam. Logo, muitas vezes a equipa do kernel tem de acabar o trabalho mais cedo para que as outras equipas possam trabalhar em cima do nosso trabalho. Daí que a nossa equipa tenha sido a primeira a dizer que tinha o Windows 7 fechado. Por vezes, tínhamos que revisitar algumas áreas, devido às reacções dos utilizadores das versões beta.
As versões beta já permitem ter uma ideia mais próxima do que foi mal feito…
A grande maioria das alterações que temos de fazer nas fases tardias do processo tem a ver com aplicações que confiam em comportamentos antigos não documentados.
Será que o Windows é tão vasto que já contém partes que não são conhecidas?
Não. Qualquer programa que disponibilize uma API (interface de programação de aplicações) tem um comportamento documentado, que informa o que sucede se o programador chamar essa API, com determinados valores. Mas normalmente não revelamos onde são guardados internamente esses valores, ou que operações se faz com esses valores. Muitas aplicações descobrem que guardamos determinados valores em determinadas posições, e que é muito mais fácil ler esse valor do que chamar a função que obtém esse valor. Se na versão seguinte introduzirmos um algoritmo novo que já não necessita daquele valor, porque permite melhorias de 30% de desempenho e 80% de consumo energético, pode haver aplicações que deixam de funcionar porque estavam preparadas apenas para ir buscar valores que estavam em determinadas posições.
E como é que se consegue garantir a compatibilidade com essas aplicações que optaram por seguir o processo menos correcto?
Tentamos gerir isto da forma mais correcta possível. Tentamos falar com o produtor da aplicação… se ainda estiver vivo, para que possa corrigir o comportamento da aplicação que está errada. E só no caso de ser uma aplicação muito importante para uma série de clientes, cujo produtor já não está não mercado, podemos arranjar um processo que finge que o valor ainda é calculado e evita que a aplicação rebente.
Até onde pode ir essa aposta na retrocompatibilidade?
O bom senso é o limite. Do ponto de vista do desenvolvimento, tentamos sempre forçar a barra com o objectivo de fazer cada vez mais coisas, mas do outro lado, temos uma equipa que actua como uma polícia da retrocompatibilidade. O Windows Vista teve grandes desafios de retrocompatibilidade, mas houve muito menos cortes que os foram feitos no passado por outros concorrentes. A Microsoft tem uma responsabilidade acrescida que alguns concorrentes que têm menos aplicações e menos diversidade e, por isso, um conjunto de aplicações mais controlável. Se quebrar a retrocompatibilidade, a Microsoft rapidamente acaba por causar danos não só do ponto de vista pessoal como empresarial. Quando se trata de aplicações que toda a gente usa, como um Skype, um Winzip, um Safari ou Firefox, temos essas aplicações na plataforma de testes e facilmente vamos ver se está tudo bem. É no domínio empresarial que existe mais código à medida.
O Windows 7 é apenas um Vista mais limpinho, ou será que temos um corte radical com o passado?
Tínhamos como principais responsabilidades reduzir recursos de computação. E, sim, ficou muito mais leve. Tenho aqui um tablet com Pentium 3, que já estava quase para ir para a reciclagem porque já não era usável – mas agora estou a usá-lo outra vez.
Era algo impensável com o Vista?
Honestamente, era impensável com o Vista.
Na sua opinião quais as principais novidades do Windows 7?
Temos uma barra de start, que nos poupa imenso trabalho. Antes abria várias janelas e tinha um problema enorme a encontrar algo que estava "aberto"; agora não tenho qualquer dificuldade. Segundo o que li na Gartner, um servidor caro com todas as licenças paga-se no primeiro ano – a partir daí, é só energia eléctrica. Agora, imagine que tenho um servidor para o correio electrónico e faço upgrade do sistema operativo e, de um dia para outro, passa a gastar menos 30% de electricidade… qual o impacto de uma coisa destas? Isto sem esquecer que ao gastar menos 30% de energia, também liberta menos 30% de calor, logo há outro componente (o ar condicionado) que vai poupar energia. Outra novidade nos servidores: eliminámos a limitação dos 64 processadores. Temos aqui uns brinquedos com 256 processadores e esse é o número de processadores que estamos a suportar para o Windows 7/Server 2008 R2. Até ao Windows 7 havia um ponto de encontro de todos os processadores de cada vez que um processador mudava de tarefa, para guardar a sanidade dos dados. Com o Windows 7, conseguimos encontrar uma maneira de garantir a coerência dos dados sem termos de bloquear os processadores. Hoje todos os processadores conseguem decidir o que vão fazer a seguir e sem qualquer perda de dados. É uma alteração muito interessante, para servidores, que provavelmente, as pessoas que usam PC não vão notar.
No Windows 8, tudo está por fazer… quando podemos começar a saber um pouco mais?
Não sei, nem tenho acesso a nada oficial… e mesmo que soubesse não lhe poderia dizer. Posso dizer o meu ponto de vista pessoal: geralmente, a Microsoft lança um sistema operativo que é considerado um lançamento mais curto e depois um mais longo. O Windows 7 foi um passo curto – demorou dois anos a sair. Acredito que o próximo sistema operativo será mais longo, poderá levar três anos… mas é apenas uma opinião pessoal.
Provavelmente, quando o Windows 8 sair já terá mais concorrência do Chrome, do Linux, ou da Apple!
Sem concorrência isto não tem piada nenhuma! Não se deve desvalorizar a criatividade da concorrência, mas não podemos dedicar-nos a correr atrás dos outros. Temos de saber os caminhos da concorrência, mas termos as nossas próprias ideias e valorizarmo-nos por isso. Temos de concorrer com todos, mas sobretudo saber concorrer connosco. Cada versão do Windows concorre mais com a versão anterior do que com qualquer outro sistema operativo do mercado. O número de XP que ainda há no mercado é a prova disso mesmo.
Pertencer aos 12 eleitos que trabalham com o kernel torna-o um profissional muito valioso. Faz lembrar as três únicas pessoas do mundo que sabem a receita toda dos pastéis de Belém…
Evito dizer a pessoas trabalham ou gostam de tecnologias que trabalho no kernel. Geralmente digo que trabalho no Windows. Se digo que trabalho no kernel a pessoas que são techies, geralmente há uma reacção de reverência. Mas se não são techies, passo eu a ser rotulado como o geek da sala…!