Rodrigo Kumpera Weblog

Meus achados sobre tecnologia

De volta das férias – retomando meus projetos

December 11th, 2006 · 3 Comments

Minhas férias estão no fim, volto esta semana a trabalhar. Aproveitei esses últimos dias atoa em casa para, entre outras coisas, retormar alguns projetos. Atualmente eu tenho três pet projects em andamento, uma Java-in-Java JVM, um debugger de Erlang pra Eclipse e um framework de networking usando CPS. Dos três estou dando atenção apenas a JVM, pois ela é a única que ainda não me produziu um demo.

O principal critério que eu tenho para graduar um experimento para pet-project é conseguir produzir um demo razoavel. Sempre fui assim e considero um critério razoavel. Estou a 18 meses indo e vindo com essa JVM para conseguir produzir um Hello World, e existem uma enorme gama de problemas envolvidos com isso, dos quais a maioria foram causados por minha falta de conhecimento do assunto.

Primeiro tive que aprender tudo sobre o assunto e ter alguns falsos inícios – protótipos que foram descartados por completo. Depois tive que construir um compilador nativo Java capaz de se compilar, isso envolveu uma série de evoluções na arquitetura que sempre atrasavam muito o tão desejado hello world. Por final, agora estou enfrentando o problema de adaptar o compilador estático e a intraestrutura de execução para funcionarem como uma máquina virtual.

O fato mais marcante que eu vi ao longo desse projeto foi que sempre que eu conseguia um avanço significativo ele pode ser atribuido a uma evolução nos testes automatizados do projeto. O compilador passo a funcionar direito quando eu criei um conjunto pequeno da ordem de 70 testes para verificar o comportamento dele, isso me permitiu evoluir com uma taxa de defeitos muito baixa. Estou agora escrevendo outro conjunto de testes para verificar o comportamento da máquina virtual, eles já me ajudaram a encontrar vários bugs.

No atual rítmo devo em breve implementar JNI e finalmente ter como escrever java.lang.System. Depois disso, é dar continuidade aos elementos que deixei para traz, como melhor conformidade a especificação e suporte a multi-threading. O legal deste meu pet-project é que dificilmente vou ficar sem coisa para fazer e a dificuldade nunca diminui.

Tags: Programming · java · project management

3 responses so far ↓

  • 1 Luca Bastos // Dec 11, 2006 at 11:23 pm

    Off topic no seu blog…
    .
    Como talvez você saiba, por causa de um tal de MarllonSimoes, perdi o tesão de postar no GUJ. O motivo foi o comentário dele me chamando de arrogante só porque fiz uma palestrinha de merda. Me afastei exercendo meu direito de ficar P da vida porque nunca ofendi ninguém lá.
    .
    Mas a tal palestra que ele criticou foi justamente sobre o Java 6. De uns anos para cá, justamente por causa do GUJ, resolvi escrever os PowerPoint com o máximo de conteúdo para facilitar o entendimento de quem não assistiu e apenas fez o download.
    .
    Por uma mensagem sua no GUJ de pouco entusiasmo com o Java 6, sugiro dar uma 2a chance a ele porque as mudanças são muito interessantes.
    .
    Fora o erro no lock do FileChannel que pode afetar algum dos seus sistemas, veja também as novas Collections como as SkipLists e as coleções navegáveis. Na minha opinião, as mudanças na API do Java 6 justificam a migração. Para quem usa XML a inclusão de StaX é uma mão na roda. E quem mexe com segurança também agora tem mais opções, inclusive você que já mexeu com Kerberos,
    .
    A performance, em alguns casos, está bem melhor. E há mais facilidade de monitorar esta performance.
    .
    Experimenta, experimenta,…

  • 2 Fábio // Dec 28, 2006 at 10:03 am

    Você já mencionou mais de uma vez esses testes automatizados que tem te ajudado tanto. Fiquei curioso e gostaria de pedir: será que não dava p/ escrever um post com mais detalhes sobre esses testes (ferramentas, código, estrutura, literatura recomendada)?

  • 3 kumpera // Jan 3, 2007 at 10:38 pm

    Fabio, tenho um post em construção que fala do assunto, posto assim que ele tormar uma forma melhor.
    .
    Luca, já baixei e o java6 aqui em casa, falta apenas instalar. Comecei a olhar melhor as mudanças, e tem sim coisas interessantes. A parte de gerenciamento melhorou bastante, senti falta dela hoje. Ainda não fui muito a fundo e o que mais me chamou atenção até agora foram as ferramentas que vem junto e o tools interface.

Leave a Comment