290 likes | 407 Views
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.
E N D
OOPSLA ’04/ETX Giuliano 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 • 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.
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 (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)
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.