Upload
edite-terra-castilhos
View
215
Download
0
Embed Size (px)
Citation preview
OOPSLA ’04/ETXGiuliano Mega
O que é a OOPSLA?
Conferência anual em Orientação a Objetos (OO). PSLA:
Programação; Sistemas; Linguagens; Aplicações;
promovida pela ACM desde 1986; 19a edição (outubro de 2004); uma das mais importantes; certamente a maior delas.
Estrutura da OOPSLA Atividades:
Technical Papers* “O filé da conferência” Garbage Collection, Design, Aspects, Performance, etc.
Practitioner Reports* Experiências aplicando conceitos, tecnologias. “O que funciona e o que não funciona”
Panels* Onward!
Assuntos revolucionários. Tutorials
Scott Meyers, Douglas Schmidt, Erich Gamma, Ralph Johnson…
Estrutura da OOPSLA (cont.)
Workshops BoFs Eventos diversos (após os horários de conferência)
Comida. Muita comida.
O Eclipse Technology eXchange
É um dos workshops da OOPSLA; exposição e discussão de trabalhos
relacionados ao Eclipse; “fórum onde pesquisadores têm a oportunidade de
conhecerem uns aos outros e compartilharem suas experiências e código”;
21 trabalhos neste ano, divididos em 6 seções. Opnião pessoal - três trabalhos:
Strathcona (Unsticking Eclipse Plug-In Development) Java Traits in Eclipse MEProf – Modular Extensible Profiler
Unsticking Eclipse plug-in Development
Motivação O Eclipse é um arcabouço poderoso, genérico,
flexível e… complexo. Arcabouços devem fornecer:
Boa documentação de alto nível; exemplos, muitos exemplos.
Disponibilizar exemplos pode ser uma tarefa árdua.
Achá-los é ainda pior.
Motivação (cont.)
Abordagens: Manual (grande maioria):
Razoável para tarefas fundamentais; impraticáveis no caso geral (defasagem, escopo).
Repositórios de exemplos + ferramentas: Exemplos são o código; ferramentas auxiliam na busca por exemplos relevantes;
Diferem quanto ao método de recuperação: ad hoc; busca por categorias (Eclipse); query languages especializadas;
Strathcona
Strathcona - busca
Strathcona - busca (cont.)
Strathcona
Exemplos auto-sustentáveis. Poderia reduzir significativamente a inclinação
da curva de aprendizado. Custo administrativo adicional é negligível perto
dos benefícios.O código do plug-in NÃO está disponível.
Java Traits
Traits: Conceito simples e poderoso, sub-utilizado em OO. São coleções de métodos. Definem também um conjunto de requisitos. Múltiplos traits podem ser aplicados a uma classe.
Java Traits (cont.)
Aumentam a qualidade do código Reduzem código duplicado. Altamente ligados aos conceitos de refatoração.
Experiência pessoal: Eliminariam muitas “gambiarras”:
• Classes utilitárias • Métodos estáticos.
Reduziriam significativamente a quantidade de código.
Infelizmente o plug-in não está disponível.
Java Traits - implementação
Traits são implementados sob a forma de classes abstratas.
Requisitos transformam-se em stubs: métodos abstratos.
Ferramenta: implementa um browser parecido com o do
Smalltalk; permite criar novos traits através da composição de
traits já existentes; gerencia automaticamente as dependências.
MEProf – Modular Extensible Profiler
Os requisitos para profiling são heterogêneos: Baixo nível:
• Informações detalhadas sobre o funcionamento de métodos-chave.
• Pode envolver o uso de medidores de performance de hardware empregados no nível do bytecode ou até mesmo do código assembly.
Alto nível:• Profiling específico a certos domínios;• pode envolver acesso a dados gerados em níveis mais baixos.
Resultado: Muitos programas específicos; difícil unificar os dados produzidos.
Profiling Pipeline
MEProf: Profiler modular para o Eclipse: Profiling pipeline. Versão inicial fortemente baseada em AOP.
Composto por seis tipos de componentes que operam em dados:
gatilhos (triggers); coletores (collectors); agregadores (aggregators); adaptadores (adapters); filtros (filters); visualizadores (visualisation modules).
Profiling Pipeline Pontas:
Gatilhos + coletores – produzem dados; Visualizadores – consomem dados. O restante dos módulos apenas transformam/combinam dados.
Profiling Pipeline (cont.)
Criando novos módulos
Agregadores, adaptadores, filtros e visualizadores – simples de conceber.
Gatilhos: conceito de corte pontual; podem ser definidos através deles.
Coletores: classe que implementa a interface Collector; junção aspecto-conselho se dá pelo framework.
Aparentemente gatilhos podem ser bem mais complexos do que isso (não fica claro pelo artigo).
Infelizmente, o código deste plug-in também não está disponível.
Eclipse – tendências
RCP: Decolando aos poucos. Maior parte dos passos: IBM.
Plug-ins: projetos de educação ligados a Ciências da
Computação pesquisa em como incrementar ainda mais o poder das
IDEs; gerenciamento de interrupções programação pareada à distância acessibilidade;
Depuração e linguagens: poucos. Mudança de foco: nenhuma nova IDE.
OOPSLA/ETX – opinião pesoal
Pontos negativos - grupo heterogêneo: Não foi tão bom assim para conhecer novas
pessoas. Interatividade menor do que o que eu esperava. maior parte das discussões centrada em trabalhos
de cunho educacional. chair incapaz de instigar discussões em outras
áreas. Pontos positivos:
Muitos trabalhos interessantes. Excelente experiência. Principalmente: ir à OOPSLA.
OOPSLA – motivos para ir
OOPSLA – motivos para ir (cont.)
Publicação: de longe não é a única recompensa. Contato com muita pesquisa séria em OO. Eventos após os horários de conferência:
computólogos à solta + bebida = excelentes oportunidades para falar abobrinha. Falar abobrinha e fazer contatos.
Interação com: Pessoas que escrevem os livros que você lê. Atmosfera descontraída.
Livros que você lê…
Trojan Proxy Encapsulated Big Fat
Opening Container-Managed
relationships “Half Bad Boy Plus
Protocol” “best use of the word
private members I’ve ever seen” (Anonymous reviewer)
… pessoas que você respeita.
OOPSLA – mais motivos para ir
Key notes, Invited Speakers, Turing Lecture Alan Kay Ward Cunningham Jaron Lanier
• Louco, visionário ou ambos?• Comunicação pós-simbólica.• Pós-simbolismo e software.• Singularidade tecnológica.
Aprender nos tutoriais. Comer mais um pouquinho. Conhecer lugares e pessoas interessantes.
OOPSLA – pontos negativos
Ganhei 2 quilos.
Homenagem aos desbravadores do Canada
Perguntas?