Para visualizar este conteúdo corretamente, é necessário ter o Flash Player instalado.

Para visualizar este conteúdo corretamente, é necessário ter o Flash Player instalado.

Entrevista com Pamela Fox e Mike Repass, da Google
Pamela Fox e Mike Repass Pamela Fox e Mike Repass
Minibio

Pamela Fox é Google Developer Advocate, ou seja, advogada dos desenvolvedores. Atua especificamente com a API Google Maps criando amostras de código e projetos Open Source.


Mike Repass é gerente de produto na equipe de desenvolvedores do Google com foco no serviço de Cloud Computing Google App Engine, recentemente lançado para Java.

Certificações

Logo Open4Education

Este minicurso apresenta o que é GWT, o seu ecossistema, várias demos e a integração com a plataforma Java. Perfeito para quem trabalha com Web e quer conhecer uma nova alternativa para criação de aplicações ricas. Além disto entre em alguns outros detalhes como por exemplo GWT no cliente ou no servidor, a utilização de JavaScript e CSS, sem esquecer de mencionar testes unitários com JUnit.


Logo Academia Web

A carreira Academia Web é direcionada aos profissionais que já atuam com a plataforma Java, tais como programadores, arquitetos, analistas e gerentes técnicos, que desejam conhecer e trabalhar com os recursos web da plataforma Java Enterprise Edition (J2EE/Java EE), utilizando servlets e JavaServer Pages (JSP), Struts, JavaServer Faces (JSF), Hibernate e geração de relatórios com JasperReports.

02/07/09

Entrevista com Pamela Fox e Mike Repass, da Google

1. Poderia comentar um pouco sobre Java e Python na Google ?

Mike Repass: Trabalhamos muito nos últimos meses para o lançamento do Google App Engine para Java e houve muito interesse, mais de 35.000 desenvolvedores. Java tem muitas funcionalidades novas excelentes que não estão disponíveis em Python, mas Python continua tendo uma série de coisas características únicas e diferenciais que nós amamos. Por causa disso, nosso compromisso é ter suporte de primeira classe para Java e Phyton. Então não vamos focar em um ou outro, queremos paridade de funcionalidades, equivalência de experiência do usuário, e sempre que possível queremos oferecer o mesmo nível de performance e qualidade do serviço.

Uma diferença interessante é que Python talvez seja mais rápido para você transformar uma ideia em uma aplicação Web, enquanto Java tem uma engine de compilação chamado JIT compilation oferecendo alta performance. O Core Runtime de Java tende a ser sempre mais performático do que Python, que é a realidade natural das linguagens compiladas, ou melhor, JIT versus Scripting Languages, mas estamos comprometidos em suportar os dois.

2. Como você visualiza o modelo de negócios já que as empresas estão acostumadas a ter um orçamento mensal para infraestrutura e com o modelo de Cloud é mais difícil prever o custo já que será baseada em parâmetros como tráfego ou CPU ?

Mike Repass: Esta é uma excelente pergunta. Eu acredito que a visão que temos é de um modelo progressivo, queremos democratizar / ubliqus a infraestrutura de disponibilização de uma aplicação Web. Queremos permitir que um desenvolvedor publique uma aplicação de forma tão simples quanto criar um blog ou subir um vídeo para o YouTube. Queremos que a pessoa tenha a ideia, desenvolva, faça deploy nos servidores e BUM!, a aplicação está pronta e no ar! Então, o primeiro nível é gratuito, ou seja, você começa de graça e, se você tiver muito sucesso e atingir certos níveis, passa a pagar, primeiramente com cartão de crédito, que é muito atraente para desenvolvedores ou pequenas e médias empresas, e certamente se tivermos grandes corporações será necessário oferecer mecanismos de cobrança mais sofisticados com alocação de budget, etc que já estão sendo analisadas.

Nosso objetivo é que o App Engine seja universalmente acessível: poucas barreiras para entrar, gratuito para começar, nenhum custo fixo, não é necessário fazer reserva, com o principal objetivo de atender o consumidor na Web. Mas se as pessoas nas empresas tradicionais olharem melhor o App Engine e quiserem utilizar, com certeza vamos oferecer outras formas.

3. Como você vê a competição com o Cloud da Amazon ?

Mike Repass: Acredito que são muito complementares, duas grandes e excelentes empresas compartilhando sua experiência com o mercado. A Amazon é excelente para disponibilização de infraestrutura e manutenção de máquinas: Linux, Windows. Enquanto no App Engine temos diversos serviços de software da Google sendo oferecidos: BigTable, e-mail, XMPP, Jaber, então acredito que são duas empresas compartilhando sua experiência e temos muitos clientes que utilizam os dois, ou migram de um para o outro. Mais do que competição acredito que é uma nova realidade que reduz a barreira de disponibilização de aplicações Web. Torna a web melhor e mais simples.

4. Existe algum plano de adicionar serviços para o ciclo de desenvolvimento da aplicação como Integração Contínua com Hudson, ou coisas deste tipo como foi anunciado para o Cloud da Sun

Mike Repass: Não, não há planos para este tipo de serviço, mas há outras coisas que funcionam de forma bem simples, minha preferida é o emulador local do ambiente, Cloud, através do download do SDK de 2M que você baixa para a sua máquina para emular os serviços do Cloud e você pode instalar sua aplicação, através de Stubs APIs que emulam as funcionalidades do nosso ambiente localmente, este é um exemplo de integração leve (lightweight) com o ambiente. Acreditamos que este emulador local torna o desenvolvimento mais simples, mas não há planos de oferecer serviços distribuídos para simplificar o acesso ao ambiente remoto.

5. Existe algum plano da Google de oferecer uma IDE online ou alguma coisa do tipo?

Mike Repass: Acho este tipo de projeto fascinante, não temos nenhum plano formal, acredito que seria uma oferta excelente se a Google ou alguém pudesse fazer isto para o colocar no Google App Engine. Minha visão como gerente da plataforma seria ter energia de terceiros para que isto viabilizasse qualquer pessoa de programar de um terminal, de um café.

Pamela Fox: Existe alguns Robôs do Wave que fazem isto, tem um chamado Monty que avalia Python e pode ser utilizado com Sintaxy que mostra as sugestões de sintaxe. E Dala fez um robô na semana passada que permite a edição conjunta de um gadget que vai salvar o gadget e recarregá-lo. Nenhum deles está exatamente criando uma aplicação completa. Temos também o AJAX Playground que é basicamente uma IDE para AJAX. Então, acho que estamos perto disto.

6. Existe algum plano de suportar outros frameworks Java além das tecnologias anunciadas hoje (JSP e Servlets) como JSF e outros ?

Sim, com certeza queremos avançar neste sentido. Não tenho uma lista completa aqui, mas estamos definitivamente interessados. É um desafio por causa das restrições de segurança. Quando você roda uma aplicação no App Engine o processo tem a segurança do container e temos a camada que isola o app engine que intercepta as chamadas de baixo nível. E a linguagem e o ambiente que executamos uma sandbox é flexível e permite um monte de coisas, mas existem uma série de classes que não podem ser executadas. Alguns frameworks não funcionam porque utilizam classes que não podem ser executadas, como Sockets por exemplo, e o motivo é simples, se você abre um Socket em uma máquina do Cloud e a próxima requisição vai para outra máquina não é possível transferir para outra... Mas, isso é uma coisa que pode ser suportado na nossa arquitetura e talvez apenas não está pronto ainda pois é necessário analisar o framework, analisar o bytecode e analisar se tem algum problema com as nossas restrições de segurança e isto dá muito trabalho. Então nosso objetivo foi lançar a versão Java do App Engine e daí ter o feedback da comunidade e ajudar a priorizar o que é mais importante para a comunidade. Com certeza JSF é um bom exemplo de caso que queremos trabalhar para fazer funcionar no Google App Engine, mas agora é a vez dos desenvolvedores dizerem o que é mais prioritário.

7. Alguma dica para quem quer trabalhar na Google ?

Mike Repass: Antes de trabalhar na Google eu trabalhei na Microsoft, então vou dar uma dica geral, que não serve apenas para a Google. Automotivação e self driven execution. Não há livros ou tutoriais que substituam uma boa educação. A habilidade de gerenciar seu próprio trabalho, incentivar você mesmo e testar você mesmo e ser capaz de avaliar seu progresso e aprendizado. Chegar na segunda e pensar o que você quer e vai desenvolver e na sexta-feira analisar de forma transparente, realista e honesta seu progresso. Este é o padrão que tenho visto de maior sucesso nas empresas que tenho trabalhado e venho tentando trabalhar em mim.

Pamela Fox: Eu diria que é muito importante para a Google ser um bom estudante, fiquei realmente surpresa quando me perguntaram as notas até do colegial. Acho que eles veem a Universidade como um teste de como você se sai em um ambiente estruturado como aquele. Com certeza o autoestudo é valorizado, mas eu recomendo que vocês terminem a universidade, sejam bons alunos. A Google parece uma universidade, se você não gosta da universidade não vai gostar da Google. Acho que não importa em qual plataforma Google você é especialista, mas para engenheiros de software é solução de problemas e algoritmos, muitos amigos que fizeram entrevistas investiram muito tempo nisto, nas entrevistas e almoços.

8. E o inglês é muito importante ?

Pamela Fox: Sim, é muito importante.

9. Qual a cultura de Agile na Google?

Mike Repass: A Google ao invés de forçar um processo permite que os times tenham liberdade, utilizem o que é melhor para eles, uma espécie de crescimento orgânico, valorizando o sucesso ao invés de ditar as regras. Alguns engenheiros têm paixão por medir e mostrar o progresso, é interessante ver como diferentes times lidam com isto. No nosso time, do App Engine, nós utilizamos um pouco de Agile: Iterações, Story Points... os engenheiros criam programas e gráficos para mostrar quanto trabalho isto dá. É divertido. Então, nós usamos Agile e em outros times eles podem usar outros métodos, engenheiros e gerentes encontram os que funcionam para eles.

Pamela Fox: As coisas podem iniciar e mudar ao longo do projeto. No último projeto utilizamos no último mês: reuniões diárias, pair programming, etc, mas depois do lançamento geralmente vamos para um modo de trabalho mais tranquilo sem checar tão constantemente o progresso. Eu realmente nunca entendi até hoje o que exatamente significa Agile. Na Google utilizamos qualquer forma que funcione para o time específico ou para o projeto.

10. Existe algum plano para certificação ?

Pamela Fox: Sim, eu falei sobre isto na minha segunda apresentação. Nós temos a Developer Qualification Program. Nós lançamos recentemente na Google.io, começamos com Gagdet Developers, agora estamos iniciando para Maps Developers porque temos uma comunidade grande de desenvolvedores e agências trabalhando com esta API, então o programa de qualificação é composto por:

  • Referências
  • Exame de múltipla escolha
  • Código exemplo
  • Evidências, Contribuições para a comunidade Open Source

Você não precisa ter todos, sua pontuação é uma somatória dos quatro fatores. Os desenvolvedores qualificados são listados em uma página especial. Temos planos de levar esta qualificação para outras APIs, mas queremos ter certeza da escala porque cada submissão precisa ser analisada manualmente.

voltar

Siga-nos