A linguagem independente de linguagem

A palavra de hoje é modelagem.

Quando os programadores ouvem esta palavra, não pensam em porcelana, argila ou massa de modelar. Eles imaginam diagramas, esquemas, retângulos, setas e coisas do tipo. Bem estranho, mas é verdade.

O que os programadores chamam de modelagem não passa de uma forma de expressão que usa uma linguagem visual ao invés de uma escrita. Se os esquemas fossem quadros, o código-fonte seria um poema. São artes diferentes e têm públicos diferentes. Do mesmo modo que há gente que consegue apreciar melhor um poema do que um quadro, tem gente que entende melhor código-fonte do que esquemas.

Diferentemente do que acontece nas artes, os esquemas e diagramas dos programadores podem ser usados para gerar código-fonte sem nenhuma intervenção humana. Dependendo da tecnologia em uso, este código precisa ser lapidado manualmente para que possa ser finalmente executado por um computador. Pessoas diferentes conhecem linguagens de programação diferentes, por isso alguém teve a idéia de usar os diagramas para permitir liberdade na escolha das linguagens textuais.

Usar uma linguagem visual pode ser uma boa idéia, mas não para obter independência de linguagem. Esse objetivo de escrever (ou deveria dizer desenhar?) um programa de forma independente de linguagem é simplesmente inviável. Nunca chegaremos lá, simplesmente porque não dá para projetar nada sem uma linguagem, uma representação, específica. Se você vai escrever alguma coisa, precisa escolher uma linguagem qualquer e, por definição, não existe isso de linguagem independente de linguagem.

O que podemos fazer é desenvolver linguagens cada vez de mais alto nível que poderão ser traduzidas para diversas outras de baixo nível. Quando finalmente conseguirmos ficar livres das linguagens de base, vamos descobrir que estamos presos à mais abstrata. Ela pode ser mais produtiva, intuitiva e todo o resto que você queira imaginar, mas ainda é uma linguagem. Isto não é ruim.

O propósito de usar linguagens visuais não é poder trocar a linguagem de suporte. De preferência, não devia nem haver uma representação textual intermediária que precise de ajustes manuais. Na Terra dos Modeladores Felizes, diagramas são executáveis do mesmo modo que um conjunto de instruções de máquina. A verdadeira razão de haver linguagens visuais é que algumas pessoas acreditam que elas são mais abstratas e produtivas.

Abstração é causa direta da produtividade. A segunda não vem sem a primeira. Não adianta usar uma linguagem visual se ela possui exatamente as mesmas construções de alguma outra textual. Se ela puder ser traduzida para a forma textual com uma correspondência direta, não há ganho de produtividade. Na verdade, é bem provável que haja perda. O ponto é que programadores passam muito pouco tempo realmente digitando (ou desenhando). A parte mais difícil e trabalhosa é feita dentro da cabeça. Acelerar a edição é se concentrar no problema errado. O que queremos mesmo é maior expressividade. Isto pode muito bem vir de uma linguagem visual.

Ou não.

Afinal, não é qualquer imagem que vale mais do que mil palavras.

2 Responses to “A linguagem independente de linguagem”


  1. 1 Juan 21/set/2006 às 14\0220

    Muito boa a tua abordagem.

    Uma coisa bacana das linguagens com maior nivel de abstração é que podem encurtar os detalhes para nos permitir concentrar na essencia.

    Abstração é uma boa, outra consequencia da modelagem visual é que permite você explorar e ver coisas que você não percevia com outra linguagem.

    Por exemplo uma tabela excel com messes e despesas por mes é interesnte quando analisamos os numeros, porem não quando tentamos analisar tendencias, agora um grafico dos mesmos dados plotando os numeros e trazando linhas entre eles não ha necesidade de analise, é so olhar que você percebe se a linha esta subindo, muito, pouco ou descendo…

    Quando comencei a trabalhar com projeto e arquitetura de software, tem gente que chama projeto e arquitetura de outras coisas, aqui estou me referindo a o que o RUP define como essas atividades, realmente sem uma linguagem visual poderosa para expressar as abstrações de uma linguagem de programação orientada a objetos, seria muito dificil “Ver” os padrões, os problemas de acoplamento, etc. simplesmente pela poluição visual dos seus relacionamentos.

    Agora sobre DSL visuais acho que vão ser a onda para sistemas de informação já fiz algumas usando o framework GMF do Eclipse e é um arraso para quem quer expressar modelos de forma visual e criar as suas proprias linguagens especificas…


  1. 1 Você não vai querer um programador Java « Mergulhando no Caos Trackback em 05/set/2007 às 19\0757
Comments are currently closed.




%d blogueiros gostam disto: