<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-01-12 21:23 GMT+01:00 Raffaele Salmaso <span dir="ltr"><<a href="mailto:raffaele@salmaso.org" target="_blank">raffaele@salmaso.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-01-12 20:08 GMT+01:00 Manlio Perillo <span dir="ltr"><<a href="mailto:manlio.perillo@gmail.com" target="_blank">manlio.perillo@gmail.com</a>></span>: <br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Una delle cose (forse l'unica) che non mi piacciono di Python sono le classi</div><div>alla C++</div></div></div></div></blockquote><div>Potresti elaborare meglio? Perché non ti piacciono? Come le preferiresti?<br></div></div></div></div></blockquote><div><br></div><div>Le preferisco come sono in Go e Julia, giusto per intenderci.</div><div><br></div><div>Go ha le interfacce, che si possono embedare (invece di ereditare).</div><div>Le interfacce vengono implementate "nominativamente", ossia un tipo non dichiara di implementare le interfacce, ma semplicemente ne implementa i suoi metodi.</div><div>I metodi di un tipo si definiscono "fuori" dalla definizione del tipo.</div><div>I metodi possono essere definiti solo per i tipi definiti nello stesso package.</div><div>L'ereditarietà non è supportata.</div><div>Go supporta solo il dispatch singolo (che diventa polimorfico per le interfacce), e niente overloading.</div><div>Non esiste il concetto di costruttore; per costruire un oggetto si definisce una funzione apposita (non "attaccata" al tipo).</div><div><br></div><div>Julia supporta l'ereditarietà semplice, ma solo per i tipi astratti.</div><div>Di nuovo, niente ereditarietà multipla.</div><div>I tipi concreti non supportano l'ereditarietà.<br></div><div>I metodi di un tipo si definiscono "fuori" dalla definizione del tipo, con l'esclusione del costruttore (se ricordo bene).</div><div>Julia supporta il multiple dispatching ed i tipi parametrici.</div><div>E' possibile definire anche gli operatori (su questo ed altro ricorda Haskell).</div><div>La differenza tra operatori e funzioni è che gli operatori sono infissi.</div><div><br></div><div>Il multiple dispatching è il mio preferito, perchè è una generalizzazione dei singolo dispatch +- overloading.  Però è disponibile in pochissimi linguaggi, magari c'è la fregatura...</div><div><br></div><div></div></div><br></div><div class="gmail_extra">> [...]</div><div class="gmail_extra"><br></div><div class="gmail_extra">Ciao  Manlio</div></div>