# Ruby object based

**URL:** <https://www.ruby-forum.com/t/ruby-object-based/172018>\
**Category:** IT\
**Created:** [July 13, 2009, 1:39pm UTC](https://www.ruby-forum.com/t/ruby-object-based/172018 "2009-07-13T13:39:28Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gian\_luca\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e8c25b/32.png) [@Gian\_luca\_C](https://www.ruby-forum.com/u/Gian_luca_C)\
**Post date:** [July 13, 2009, 1:39pm UTC](https://www.ruby-forum.com/t/ruby-object-based/172018/1 "2009-07-13T13:39:28Z")

</div>

Ciao a tutti,

vorrei avere da voi delle delucidazioni su Ruby, se si tratti di un  
linguaggio object oriented oppure object based.  
Non riesco a capire la differenza fra i object oriented e abject based,  
fra  
class based e object based.  
Potreste spiegarmela e magari ettere anche qualche link dove la spieghi  
visto che sul web io no nho trovat praticamente nullla di chiaro a  
questo proposito…  
Inoltre Ruby Ã¨ object based.???  
Vi ringrazio tutti anticipatamente.

CIAO

---

<div class="post-metadata">

**Author:** ![Gian\_luca\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e8c25b/32.png) [@Gian\_luca\_C](https://www.ruby-forum.com/u/Gian_luca_C)\
**Post date:** [July 14, 2009, 8:28am UTC](https://www.ruby-forum.com/t/ruby-object-based/172018/2 "2009-07-14T08:28:56Z")

</div>

chiaro scuro wrote:

> object based: ha gli oggetti, ma non alcune delle capabilities dell’object  
> orientation come ereditarieta’, polimorfismo, etc.

In realtà non c’è consenso sul termine object-based, è piuttosto ambiguo.

Non ho trovato fonti per il significato che indichi tu, che solitamente  
pare usato per descrivere VisualBasic (insieme ad altri aggettivi più  
dispregiativi 😉 ).

In generale però il significato più diffuso in ambito teorico è come  
sinonimo di prototype-based, cioè un linguaggio in cui l’ereditarietà  
non è centrata sulle classi ma sui singoli oggetti; gli oggetti vengono  
creati per clonazione da un oggetto esistente, da cui ricevono anche un  
“prototype”, che non è altro che un “esempio” delle proprietà e dei  
metodi che il nuovo oggetto  
avrà.Il nuovo oggetto però può ridefinire, anche a runtime, i propri metodi,  
e addirittura cambiare prototype.  
Esempio:

pele = {:name =\> “Pele”, :sport =\> “football”, :position =\> “Forward”}  
pele\_jr = {:name =\> “Pele Jr.”}  
pele\_jr.prototype = pele  
pele\_jr.name # =\> “Pele Jr.”  
pele\_jr.sport # =\> “football”  
pele\_jr.position # =\> “forward”

I linguaggi più diffusi che seguono questo paradigma sono Self, Lua,  
JavaScript.  
Ma anche Ruby ha caratteristiche che lo rendono un buon linguaggio  
prototype-based (il fatto che sia interpretato, dinamico e basato su  
message-passing). In effetti, l’esempio sopra è scritto in Ruby e viene  
da Ruby Q. 214 [1] 🙂

Molti fanno l’errore di pensare che i linguaggi prototype-based siano  
“inferiori” a quelli class-based, ma tipicamente queste sono le persone  
che conoscono solo JavaScript, e male 😕

1:  
[http://groups.google.com/group/comp.lang.ruby/browse\_thread/thread/0a7ff16b7d1c5d52/525f102359e5c801?lnk=raot&fwc=2&pli=1](http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/0a7ff16b7d1c5d52/525f102359e5c801?lnk=raot&fwc=2&pli=1)

Ciao,  
Andrea

---

<div class="post-metadata">

**Author:** ![Gian\_luca\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e8c25b/32.png) [@Gian\_luca\_C](https://www.ruby-forum.com/u/Gian_luca_C)\
**Post date:** [July 14, 2009, 12:33am UTC](https://www.ruby-forum.com/t/ruby-object-based/172018/3 "2009-07-14T00:33:59Z")

</div>

2009/7/13 Gian luca Colotto [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> Ciao a tutti,
> 
> vorrei avere da voi delle delucidazioni su Ruby, se si tratti di un  
> linguaggio object oriented oppure object based.  
> Non riesco a capire la differenza fra i object oriented e abject based,

object based: ha gli oggetti, ma non alcune delle capabilities  
dell’object  
orientation come ereditarieta’, polimorfismo, etc.  
ruby e’ object oriented.

come mai ti serve saperlo?

---

<div class="post-metadata">

**Author:** ![Gian\_luca\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e8c25b/32.png) [@Gian\_luca\_C](https://www.ruby-forum.com/u/Gian_luca_C)\
**Post date:** [July 14, 2009, 11:28am UTC](https://www.ruby-forum.com/t/ruby-object-based/172018/4 "2009-07-14T11:28:13Z")

</div>

Chiaro Scuro wrote:

> 2009/7/13 Gian luca Colotto [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
> 
> > Ciao a tutti,
> > 
> > vorrei avere da voi delle delucidazioni su Ruby, se si tratti di un  
> > linguaggio object oriented oppure object based.  
> > Non riesco a capire la differenza fra i object oriented e abject based,
> 
> object based: ha gli oggetti, ma non alcune delle capabilities  
> dell’object  
> orientation come ereditarieta’, polimorfismo, etc.  
> ruby e’ object oriented.
> 
> come mai ti serve saperlo?

Ciao grazie per la tua risposta, adesso rispondo io.  
Mi interessa saperlo perchÃ¨ studiando Ruby e facendo un breve excursus  
del web ho trovato qualche strano concetto come object based e mi  
chiedevo appunto la differenza dato che il paradigma OO Ã¨ sempre basato  
su oggetti ma in qualcosa deve pur differire da object based.

---

<div class="post-metadata">

**Author:** ![Gian\_luca\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e8c25b/32.png) [@Gian\_luca\_C](https://www.ruby-forum.com/u/Gian_luca_C)\
**Post date:** [July 14, 2009, 3:03pm UTC](https://www.ruby-forum.com/t/ruby-object-based/172018/5 "2009-07-14T15:03:48Z")

</div>

> Esempio:
> 
> pele = {:name =\> “Pele”, :sport =\> “football”, :position =\> “Forward”}  
> pele\_jr = {:name =\> “Pele Jr.”}  
> pele\_jr.prototype = pele  
> pele\_jr.name # =\> “Pele Jr.”  
> pele\_jr.sport # =\> “football”  
> pele\_jr.position # =\> “forward”
> 
> In effetti, l’esempio sopra ï¿½ scritto in Ruby e viene  
> da Ruby Q. 214 [1] 🙂

che ruby? 1.9? PerchÃ© con la 1.8 non funziona.

P.S ruby quiz? Ne avevo sentito parlare. Mi giri il link?

Ciao Michele.

---

<div class="post-metadata">

**Author:** ![Gian\_luca\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e8c25b/32.png) [@Gian\_luca\_C](https://www.ruby-forum.com/u/Gian_luca_C)\
**Post date:** [July 14, 2009, 4:59pm UTC](https://www.ruby-forum.com/t/ruby-object-based/172018/6 "2009-07-14T16:59:05Z")

</div>

Ehehe… non funziona perchÃ¨ l’obiettivo di quel Ruby Q. Ã¨  
fare in modo che quel codice funzioni (cioÃ¨ implementare il prototyping  
in  
Ruby) 🙂

I Ruby quiz sono appuntamenti settimanali sulla ML ufficiale inglese di  
Ruby nei quali vengono proposti quizzes piÃ¹ o meno interessanti da  
risolvere con questo linguaggio 🙂

Sandro

2009/7/14 Michele C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![Gian\_luca\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e8c25b/32.png) [@Gian\_luca\_C](https://www.ruby-forum.com/u/Gian_luca_C)\
**Post date:** [July 14, 2009, 5:06pm UTC](https://www.ruby-forum.com/t/ruby-object-based/172018/7 "2009-07-14T17:06:06Z")

</div>

Sandro P. wrote:

> Ehehe… non funziona perchÃ¨ l’obiettivo di quel Ruby Q. Ã¨  
> fare in modo che quel codice funzioni (cioÃ¨ implementare il prototyping  
> in  
> Ruby) 🙂
> 
> I Ruby quiz sono appuntamenti settimanali sulla ML ufficiale inglese di  
> Ruby nei quali vengono proposti quizzes piÃ¹ o meno interessanti da  
> risolvere con questo linguaggio 🙂
> 
> Sandro
> 
> 2009/7/14 Michele C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

ah… non so neppure cosa significhi prototype 🙂

Ciao Michele.
