oopsla ’04/etx

29
OOPSLA ’04/ETX Giuliano Mega

Upload: clovis

Post on 12-Jan-2016

54 views

Category:

Documents


1 download

DESCRIPTION

OOPSLA ’04/ETX. Giuliano Mega. O que é a OOPSLA ?. Conferência anual em O rientação a O bjetos ( OO ). PSLA : P rogramação; S istemas; L inguagens; A plicações; promovida pela ACM desde 1986; 19 a edição (outubro de 2004); uma das mais importantes; certamente a maior delas. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: OOPSLA ’04/ETX

OOPSLA ’04/ETX

Giuliano Mega

Page 2: OOPSLA ’04/ETX

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.

Page 3: OOPSLA ’04/ETX

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…

Page 4: OOPSLA ’04/ETX

Estrutura da OOPSLA (cont.)

Workshops BoFs Eventos diversos (após os horários de conferência)

Comida. Muita comida.

Page 5: OOPSLA ’04/ETX

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

Page 6: OOPSLA ’04/ETX

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.

Page 7: OOPSLA ’04/ETX

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;

Page 8: OOPSLA ’04/ETX

Strathcona

Page 9: OOPSLA ’04/ETX

Strathcona - busca

Page 10: OOPSLA ’04/ETX

Strathcona - busca (cont.)

Page 11: OOPSLA ’04/ETX

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.

Page 12: OOPSLA ’04/ETX

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.

Page 13: OOPSLA ’04/ETX

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.

Page 14: OOPSLA ’04/ETX

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.

Page 15: OOPSLA ’04/ETX

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.

Page 16: OOPSLA ’04/ETX

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).

Page 17: OOPSLA ’04/ETX

Profiling Pipeline

Pontas: Gatilhos + coletores – produzem dados; Visualizadores – consomem dados. O restante dos módulos apenas transformam/combinam dados.

Page 18: OOPSLA ’04/ETX

Profiling Pipeline (cont.)

Page 19: OOPSLA ’04/ETX

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.

Page 20: OOPSLA ’04/ETX

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.

Page 21: OOPSLA ’04/ETX

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.

Page 22: OOPSLA ’04/ETX

OOPSLA – motivos para ir

Page 23: OOPSLA ’04/ETX

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.

Page 24: OOPSLA ’04/ETX

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)

Page 25: OOPSLA ’04/ETX

… pessoas que você respeita.

Page 26: OOPSLA ’04/ETX

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.

Page 27: OOPSLA ’04/ETX

OOPSLA – pontos negativos

Ganhei 2 quilos.

Page 28: OOPSLA ’04/ETX

Homenagem aos desbravadores do Canada

Page 29: OOPSLA ’04/ETX

Perguntas?