The OOPSLA diaries

Meu diário na OOPSLA'2006 apontando algumas das coisas mais interessantes que vi.

Wednesday, October 25, 2006


dia 4 - 25/10/2006 - quarta-feira

FORTRAN está com os dias contados, finalmente! Já era hora :-) O Guy Steele (um dos 4 criadores de Java) apresentou a nova linguagem que o grupo dele na Sun está criando para computação científica. O trabalho, realmente, é de primeríssima linha e estou sentindo que finalmente está chegando uma linguagem que irá substituir FORTRAN definitivamente no mundo científico. A IBM também está trabalhando numa nova linguagem para o mesmo intuito (chamada X10 e que é fortemente baseada em Java), mas algo me diz que a solução da Sun, coordenada pelo Guy Steele tem mais chances de se tornar o padrão; nos próximos anos saberemos se minha intuição está correta ou não.

O objetivo principal é diminuir drasticamente o tempo entre a formulação matemática de um problema científico e o tempo que demora para obter a resposta (note que isso inclui tanto o tempo para desenvolver o programa e o tempo para executar o programa).

A linguagem se chama Fortress, é orientada a objetos, possui traits como ferramenta básica de extensibilidade e tem uma série de características interessantes:
  • fortemente tipada, inclusive com checagem de dimensões (m/s^2 nos Reais)
  • minimalista com possibilidade de extensões através de bibliotecas
  • as bibliotecas estendem não só a funcionalidade mas a sintaxe e a semântica da linguagem
  • Testes de Unidade embutidas dentro da linguagem e associados às unidades do código. A idéia é que toda biblioteca já virá com seus testes automatizados
  • Interfaces diferentes para os programadores de aplicações e para os programadores de bibliotecas (que são quem estendem a linguagem e portanto, tem acesso a uma interface mais poderosa e sofisticada).
  • Notação bem próxima da notação matemática através de caracteres UNICODE e também através de uma notação ASCII similar ao latex, aliás, a linguagem já vem com um pré-processador que converte o código-fonte para LaTeX.
  • Suporte para paralelismo de forma transparente para o programador da aplicação.
Quem quiser saber mais detalhes, pode dar uma olhada nesses slides de uma apresentação sobre Fortress do ano passado. Só para vocês terem uma idéia, comparem o slide 22 (que contém do lado esquerdo a especificação matemática do problema e do lado direito o programa Fortress que o resolve) com o slide 23 que inclui a versão FORTRAN (não paralela) da mesma especificação. A diferença é enorme.

Em suma, é um projeto super-ambicioso que com certeza produzirá um resultado excelente. Só que em Ciência da Computação isso não é suficiente para que a coisa seja adotada realmente pela comunidade pois depende de fatores sociais, econômicos e mercadológicos. A história da computação está repleta de exemplos de excelentes idéias, linguagens e sistemas que não vingaram enquanto que competidores de pior qualidade vingaram. Vamos esperar para ver e torcer para que dê certo!

À tarde assisti a uma apresentação bem polêmica (disseram que o artigo passou por mais de 10 revisores antes de ser aceito :-)) que criticou fortemente Programação Orientada a Aspectos. Ele recapitula as idéias de Parnas e Dijkstra sobre modularização para argumentar que AOP não resolve problema nenhum, muito pelo contrário. O resumo da idéia do autor é o seguinte:
  1. A comunidade de AOP alega que aspectos servem para aumentar a modularidade de programas através do encapsulamento de funcionalidades transversais.
  2. Mas, na verdade, AOP não só não ajuda a aumentar a modularidade como piora significativamente a modularidade aumentando o acoplamento e a diminuindo a coesão.
Logo após a apresentação teve um painel sobre o assunto. Eu estava esperando que o autor fosse estraçalhado e que o pessoal de aspectos sairia como grandes vencedores. Mas não foi isso o que ocorreu, a tarde serviu para aumentar bastante a desconfiança em relação a aspectos na comunidade. Mas aspectos ainda é uma idéia fortíssima e não é uma ondinha dessas que vai afundar o transatlântico. O artigo se chama The Paradoxical Success of Aspect-Oriented Programming.

Agora à noite chegou a hora do grande evento social com muita comidade, bebida e música no Oregon Museum of Science and Industry. O tema da exposição principal era Star Wars e foi muito divertido.

5 Comments:

Blogger Giuliano said...

Pô, a inveja de não assistir a essas apresentações eu até agüento, mas a parte da comida... é insuportável! Me lembro de todos aqueles bolos, mousses, pudins, croissants, cookies...

8:33 AM  
Blogger Fabio Kon said...

Na verdade, esta OOPSLA estava um pouquinho mais diet. Mas OOPSLA sempre é OOPSLA... :-)

7:45 PM  
Blogger Mario Marques Junior said...

Fábio, quando no finalzinho da parte do Fortress você diz que "...em Ciência da Computação isso não é necessário" na verdade a palavra seria "suficiente", né?

Bom pelo jeito o Fortran deve morrer, mas se esse projeto vingar, quem deve continuar vivo é o Latex. Eu achava que ele ia ser em algum tempo dominado por editores WYSIWYG, usando um XML como o MathML. Vamos ver.

12:07 PM  
Blogger Fabio Kon said...

tem razão Mario, eu quis dizer suficiente e não necessário, obrigado. Já corrigi e até acrescentei uma frase a mais:

"A história da computação está repleta de exemplos de excelentes idéias, linguagens e sistemas que não vingaram enquanto que competidores de pior qualidade vingaram. Vamos esperar para ver e torcer para que dê certo!"

5:57 PM  
Blogger evolsoftware said...

Fabio. Gostei da idéia do diário da OPSLA. Vou ler.
julio cesar leite

8:41 PM  

Post a Comment

<< Home