No livro Coders at work, Joe Armstrong afirmou que:
Eu acho que a falta de reutilização vem nas linguagens orientadas a objetos, não nas linguagens funcionais. Como o problema das linguagens orientadas a objetos é que elas têm todo esse ambiente implícito que carregam consigo. Você queria uma banana, mas o que você conseguiu foi um gorila segurando a banana e toda a selva
Eu não entendo bem aqui. Se o problema é obter uma banana, podemos encapsular toda a lógica por trás da função 'getBanana'. Como o macaco e a selva estão envolvidos nesse contexto? Alguém poderia escrever um trecho de código que explica o problema em um mais fácil de entender, por exemplo, demonstrar o fato de que o Banana
objeto requer o Monkey
e Jungle
objetos para ser iniciado, por favor?