Alternativas
O trunfo da OO é o uso de hierarquia de classes. Para ter uma OO adequada é importante evitar o acesso direto aos
dados em tal hierarquia e usar uma interface funcional bem projetada.
A OO apresenta algumas fraquezas. Nem todo conceito se encaixa naturalmente em uma hierarquia de classes e os
mecanismos que suportam a programação OO podem impor sobrecargas significativas se comparadas com outras
alternativas.
A programação baseada em lógica utiliza uma notação lógica formal para comunicar processos computacionais para o
computador. A programação em linguagens deste paradigma não é procedural.
Java é uma linguagem OO que usa liberação implícita de armazenamento para seus objetos: coleta de lixo. Em programas
escritos em linguagens que não têm coleta de lixo o armazenamento é alocado, mas não é liberado, podendo levar ao
consumo de todo o armazenamento disponível.
Os sistemas de implementação de linguagens híbridos são um meio termo entre os compiladores e os interpretadores
puros. Eles traduzem os programas para uma linguagem intermediária, gerando códigos mais lentos que a interpretação
pura, mas muito mais rápidos que a compilação.