Question 1) What’s the need for a Class in a dynamic language? Why the language is designed that way to use a class as some kind of “template” instead of do it the prototype-way and just use a object?
Il primo linguaggio OO (anche se non era chiamato "OO"), Simula, non aveva ereditarietà. L'ereditarietà è stata aggiunta in Simula-67 ed era basata sulle classi.
Nello stesso periodo, Alan Kay ha iniziato a lavorare sulla sua idea di un nuovo paradigma di programmazione, che in seguito ha chiamato "Object-Orientation". Gli piaceva davvero l'ereditarietà e voleva averlo nella sua lingua, ma a lui non piacevano molto le lezioni. Tuttavia, non riusciva a trovare un modo per ereditare senza classi, e così decise che non gli piacevano le classi più di quanto gli piacesse l'ereditarietà e progettò la prima versione di Smalltalk, Smalltalk-72 senza classi e quindi senza ereditarietà.
Un paio di mesi dopo, Dan Ingalls ha proposto un design di classi, in cui le classi stesse erano oggetti, vale a dire istanze di metaclassi. Alan Kay ha trovato questo design leggermente meno appagante di quelli più vecchi, quindi Smalltalk-74 è stato progettato con classi e con ereditarietà in base alle classi.
Dopo Smalltalk-74, Alan Kay sentiva che Smalltalk si stava muovendo nella direzione sbagliata e non rappresentava effettivamente ciò che OO era tutto, e propose che la squadra abbandonasse Smalltalk e si fosse messa in moto, ma fu messo in minoranza. Seguirono Smalltalk-76, Smalltalk-80 (la prima versione di Smalltalk da rilasciare ai ricercatori), e infine Smalltalk-80 V2.0 (la prima versione ad essere commercializzata, e la versione che divenne la base per ANSI Smalltalk) .
Poiché Simula-67 e Smalltalk-80 sono considerati i nonni di tutte le lingue OO, quasi tutte le lingue che seguirono, copiarono ciecamente il design delle classi e dell'ereditarietà in base alle classi. Un paio di anni più tardi, quando altre idee come l'ereditarietà basata su mixin anziché classi e la delega basata su oggetti invece dell'ereditarietà basata su classi emerse, l'ereditarietà basata su classi era già diventata troppo radicata.
È interessante notare che l'attuale linguaggio di Alan Kay è basato sulla delega del prototipo.