ruby, oop, java October 30, 2005 9:39 pm (Save post)
Ispirato da una discussione su wup.it, mi sono tornati in mente questi due esempi del perché preferisco ruby a java:
Come mettere un array di tipi base in una lista
Sostanzialmente, l’unico modo (che io conosca) è farlo a mano.
Riscriversi un bel ciclo ogni volta, error prone come piace a noi.
Si noti che esiste un Arrays.asList(Object[]) ma visto che i tipi base in java non sono oggetti, non funziona.
Non solo, per quel che ne so non è neppure possibile scrivere un metodo generico che trasformi un array in una List, in quanto a livello di linguaggio non c’è un’associazione tra i tipi primitivi e le rispettive classi Boxed.
Ovviamente si può risolvere con una sfilza di if/else ma non è che sia un granché come soluzione.
null non è un oggetto
Il che significa che non posso scrivere null.equals(foo).
Il che a sua volta significa, ad esempio, che un metodo per verificare l’uguaglianza tra due oggetti Pair, cioè dei contenitori di coppie di numeri, in ruby sarebbe:
class Pair def == (other) first == other.first and second == other.second end end
mentre in java viene una cosa come questa (scrollare fino alla riga 43, poi sono 42 righe di codice, java5, la versione che dovrebbe semplificare tutto) [link alternativo senza note/sintassi colorata].
E c’è chi dice che non avere distinzioni tra tipi primitivi e non sia una cosa buona

