Schizoid Classes
Artigo na ACM Queue.
Através dos métodos (e variáveis) de instância e de classe, as classes em Java e C++ misturam o conceito de tipo com o de módulo, criando uma crise de múltipla personalidade. Em contraste, na linguagem Smalltalk os métodos e variáveis de instância e de classe são conceitualmente unificados através do uso de metaclasses e metaobjetos. Em outras linguagens, classes e módulos coexistem, reconhecendo o fato que nenhum dos dois pode substituir o outro.
Artigo curto e de boa leitura; é uma demonstração do que acontece quando você tenta construir linguagens sem uma visão geral de projeto; Smalltalk tem essa visão, C++ e Java não. C++ é um frankenstein ao qual foram adicionadas características (por vezes conflitantes) ao longo dos anos, e Java é uma "linguagem política" que foi feita para tentar satisfazer a gregos e troianos. Não se pode dizer que nenhuma das duas tenha "integridade conceitual".
Através dos métodos (e variáveis) de instância e de classe, as classes em Java e C++ misturam o conceito de tipo com o de módulo, criando uma crise de múltipla personalidade. Em contraste, na linguagem Smalltalk os métodos e variáveis de instância e de classe são conceitualmente unificados através do uso de metaclasses e metaobjetos. Em outras linguagens, classes e módulos coexistem, reconhecendo o fato que nenhum dos dois pode substituir o outro.
Artigo curto e de boa leitura; é uma demonstração do que acontece quando você tenta construir linguagens sem uma visão geral de projeto; Smalltalk tem essa visão, C++ e Java não. C++ é um frankenstein ao qual foram adicionadas características (por vezes conflitantes) ao longo dos anos, e Java é uma "linguagem política" que foi feita para tentar satisfazer a gregos e troianos. Não se pode dizer que nenhuma das duas tenha "integridade conceitual".
0 Comments:
Post a Comment
<< Home