Archive for the ‘Italia’ Category.
17th Ottobre 2009, 09:25 pm
Ho finalmente completato il sito dell'artista contemporaneo Claudio Destito. Questo artista, che attinge al vocabolario del minimalismo reinterpretandolo in chiave nuova ed ironica, è a mio avviso uno degli autori più interessanti che operano attualmente nell'area di Milano.
E' stato interessante realizzare questo sito, sia perché le opere d'arte di Destito mi hanno coinvolto profondamente, sia perché ho avuto modo di scrivere codice di produzione in PHP.
L'impressione che ho avuto di questo linguaggio è stata ambivalente: da un lato PHP è uno strumento estremamente facile da apprendere, dall'altro...beh, forse non il più adatto a creare codice pulito. Ma probabilmente questo è solo l'impressione di un novizio: per avere un quadro diverso della situazione sarebbe magari opportuno seguire il corso sull'argomento di Francesco Cirillo 
23rd Aprile 2009, 06:10 pm
Ok, il titolo del post è volutamente iperbolico, ma dovete sapete che amo gli eccessi! 
Comunque tutto nasce da un post sulla lista dello Scala User Group italiano.
Partendo da un articolo su Scala di Daniel Spiewak, si mettono a confronto un frammento di codice Scala
def fillColor_=(fillColor:Color) = {
if (!fillColor.equals(Color.RED)) {
theFillColor = fillColor
} else {
throw new IllegalArgumentException("Color cannot be red")
}
}
con un (quasi) equivalente Ruby
def fill_color=(color)
raise "Color cannot be red" if color == Color::RED
@fill_color = color
end
che è sicuramente più piacevole da leggere.
Ricordiamoci però che uno degli aspetti più interessanti di Scala è la facilità con cui è possibile creare DSL. Vediamo come possiamo in qualche modo mimare la sintassi del raise Ruby.
Definiamo prima l'oggetto RubySyntax (va bene, va bene, il nome è un po' pretenzioso, ma a me piace scherzare, dai...)
object RubySyntax {
def raise(exceptionText: String)(condition: => Boolean): Unit = {
if (condition) {
throw new IllegalArgumentException(exceptionText);
}
}
}
Quindi lo possiamo usare in una qualsiasi altra parte del nosto codice:
import RubySyntax._
object RubySyntaxTest {
def main(args:Array[String]) = {
val language = "Ruby"
raise ("Language cannot be Ruby") { language.equals("Ruby") }
}
}
Certo, ci sono delle parentesi in più, ma abbiamo eliminato l'if. E poi sono convinto che voi sapreste fare di meglio! (Ovviamente in Scala).
Ancora dubbiosi su quale linguaggio scegliere? 
29th Luglio 2008, 07:14 am