# Smart ruby

**URL:** <https://www.ruby-forum.com/t/smart-ruby/172712>\
**Category:** IT\
**Created:** [July 26, 2009, 4:09pm UTC](https://www.ruby-forum.com/t/smart-ruby/172712 "2009-07-26T16:09:31Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jamba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/bc8723/32.png) [@jamba](https://www.ruby-forum.com/u/jamba)\
**Post date:** [July 26, 2009, 4:09pm UTC](https://www.ruby-forum.com/t/smart-ruby/172712/1 "2009-07-26T16:09:31Z")

</div>

ho trovato questo:

[http://www.develbook.com/document/smart-ruby](http://www.develbook.com/document/smart-ruby)

cosa ne pensate?

---

<div class="post-metadata">

**Author:** ![jamba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/bc8723/32.png) [@jamba](https://www.ruby-forum.com/u/jamba)\
**Post date:** [July 26, 2009, 6:59pm UTC](https://www.ruby-forum.com/t/smart-ruby/172712/2 "2009-07-26T18:59:32Z")

</div>

quite weird ! va sicuramente provato 😃

---

<div class="post-metadata">

**Author:** ![jamba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/bc8723/32.png) [@jamba](https://www.ruby-forum.com/u/jamba)\
**Post date:** [July 27, 2009, 12:17pm UTC](https://www.ruby-forum.com/t/smart-ruby/172712/3 "2009-07-27T12:17:20Z")

</div>

2009/7/26 jamba jamba [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> ho trovato questo:
> 
> [http://www.develbook.com/document/smart-ruby](http://www.develbook.com/document/smart-ruby)
> 
> cosa ne pensate?

sembra interessante; tuttavia, per quanto mi manchino tante cose del  
python quando uso ruby, la mancanza di blocchi come si deve non è tra  
queste\*; né la distinzione tra procedure e funzioni, che trovo  
forzata.

diciamo che trovo più interessante l’idea di modificare il linguaggio  
che le modifiche apportate.

- a dirla tutta: se python avesse i blocchi quelli per davvero e poche  
altre cose, non avrei cominciato a usare ruby…

pietro

---

<div class="post-metadata">

**Author:** ![jamba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/bc8723/32.png) [@jamba](https://www.ruby-forum.com/u/jamba)\
**Post date:** [July 27, 2009, 12:24pm UTC](https://www.ruby-forum.com/t/smart-ruby/172712/4 "2009-07-27T12:24:21Z")

</div>

Il giorno 27 luglio 2009 12.16, Pietro G.[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
ha scritto:

> sembra interessante; tuttavia, per quanto mi manchino tante cose del  
> python quando uso ruby, la mancanza di blocchi come si deve non è tra  
> queste\*; né la distinzione tra procedure e funzioni, che trovo  
> forzata.

rileggendomi sembra che io volessi dire che in python c’è distinzione  
tra funzioni e procedure, cosa che evidentemente non è…

pietro

---

<div class="post-metadata">

**Author:** ![jamba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/bc8723/32.png) [@jamba](https://www.ruby-forum.com/u/jamba)\
**Post date:** [July 28, 2009, 11:43am UTC](https://www.ruby-forum.com/t/smart-ruby/172712/5 "2009-07-28T11:43:34Z")

</div>

Se posso aggiungere la mia…

L’indentazione semantica alla Python Ã¨ una delle cose piÃ¹ brutte e  
pericolose che abbia mai visto in piÃ¹ di 20 anni di programmazione, per  
cui non commento oltre su questo punto per non scatenare flame war con  
eventuali pitonisti che mi leggono 🙂

Non capisco il punto sulle istruzioni incomplete e riguardo gli one  
liner in ruby si scrive tranquillamente

def sum(a, b); a + b; end

Buona invece la parte sui tipi: (molto) occasionalmente mi sono trovato  
in situazioni in cui sarebbe stato comodo definirne esplicitamente uno  
con tanto di controllo a run time.

Tutta la parte sui metodi astratti, interfacce, ereditarietÃ , strutture  
ed altre cosette qua e lÃ mi pare utile piÃ¹ che altro a chi viene da  
Java e C++ e vuole una transizione piÃ¹ morbida a Ruby. Consiglio perÃ² di  
imparare il linguaggio invece che “travestirlo”.

Non sono per nulla d’accordo che “static metodo” sia piÃ¹ chiaro che  
“self.method”, soprattutto se al posto di self si usa il nome della  
classe. Non ho mai capito perchÃ© in Java i metodi di classe debbano  
essere dichiarati con “static tipo nome” e non con (ad esempio) “class  
method tipo nome”. Che c’entra static col concetto di metodi di classe?  
E’ solo un lascito concettuale del C (non il ++, proprio il C vecchio  
stile) che di metodi non ne ha.

Molto belli i pattern Haskell, la list comprehension e le altre due  
cosette derivate da Python.

Superlativi i commenti su piÃ¹ righe anche se ci vorrebbe un /\* \*/  
chiudibile su una stessa riga. Sono l’unico a chiedersi cosa hanno  
tutt’ora in testa gli sviluppatori di Ruby che non hanno mai  
implementato questa innovazione degli anni '60?

Quanto al main… cado dalle nuvole. Esiste un main in ruby?

Detto questo… tanto di cappello all’autore perchÃ© il progetto Ã¨  
decisamente molto bello. Per fare queste cose ci vuole tanto lavoro e  
tante conoscenze. Estrarrei magari due o tre cose e me le metterei in  
librerie da usare nei miei progetti perchÃ© l’idea di un compilatore  
(anzi, un preprocessore) davanti ad un interprete mi piace poco.

Paolo
