Archive for the ‘Scala’ Category.

WordPress per Scala

Essendo autore di un blog con WordPress in cui parlerò principalmente di linguaggi di programmazione, mi sono posto il problema di quali strumenti utilizzare per rendermi questo compito più semplice.
Tra i vari plugin per la formattazione di codice, quello che mi è sembrato più interessante è stato code-highlighter, nel quale, però, non esisteva ancora il supporto per il linguaggio Scala. Ho scritto quindi una elementare integrazione del plugin che realizza questa funzione.
Il secondo problema in cui mi sono imbattuto è la ristrettezza dell'editor WordPress, inadatto alla scrittura di codice. Ho pensato di risolvere la questione con una semplicissima modifica al file general-template.php. In tale file si trova l'impostazione della dimensione in colonne dell'editor, che io ho portato al valore di 90 per consentire la scrittura più agevole del codice:

 
$the_editor =
  apply_filters('the_editor', "<div><textarea class='mceEditor' $rows cols='90'
   name='$id' tabindex='2' id='$id'>%s</textarea></div>\n");
 

Attenti ad Hello World!

Nelle prime peregrinazioni con il linguaggio Scala, il programma che non si può non scrivere è "Hello world". Attenzione però ad una sorpresa. Il seguente frammento di codice può sembrare innocuo, ma nasconde un'insidia:

 
object Hello extends Application {
  println "Hello world!"
}
 

Il programma, contrariamente alle aspettative, non stampa nulla. Il metodo println viene infatti mappato sul metodo con zero parametri dell'oggetto Predef, importato automaticamente in qualsiasi programma Scala. Il programma comunque non dovrebbe compilare, come per esempio avviene per il seguente:

 
object buggyClient extends Application {
  def say(sentence: String) = println(sentence)
  def say() = println("I'm a buggy object :-(")
 
  say "Hello Wordld"
}
 

Per fortuna è stato aperto un bug a riguardo.

Incomincia la collaborazione con mondoinformatico.info

Con un articoletto su Java inizia la mia collaborazione con mondoinformatico.info. Ho intenzione di pubblicare su questa giovane testata on-line una serie di piccoli suggerimenti su Java e Scala. Restate connessi ;-)

Questo articolo partecipa al link contest di mondoinformatico.info.

Ariticoli su Scala

Dopo il mio primo articolo introduttivo su Scala, prosegue la mia collaborazione con Stacktrace con una piccola panoramica sulle prestazioni del linguaggio di Odersky e soci. Rimanete connessi ;-)

Primo incontro con Scala

Edward Hopper - Summertime - 1943

In un post precedente ho citato Scala,  un nuovo linguaggio a tipizzazione statica che cerca di fondere i paradigmi della programmazione ad oggetti e di quella funzionale.
Per illustrarne alcune caratteristiche, prenderò in prestito un esempio dal sito metodiagili.it, convertendolo da Java a Scala.
Continue reading ‘Primo incontro con Scala’ »

Eclipse plugin per Scala: NoClassDefFoundError

Per rendere più agevole l'esplorazione del linguaggio Scala, è sicuramente consigliabile l'installazione del relativo plugin per Eclipse.
Uno degli errori che spesso il neofita incontra cercando di mandare in esecuzione il suo imprescindibile Hello World con tale strumento è il misterioso NoClassDefFoundError.
Le ragioni più frequenti di tale errore sono:
1) Il file che contiene la classe o l'oggetto che vogliamo eseguire non ha il medesimo nome dell'oggetto stesso. Per esempio l'oggetto HelloWorld contenuto nel file Hello.scala
2)Il file è stato spostato di package con un Refactor-Move, che però, contrariamente a quanto avviene con Java, non ha modificato opportunamente la prima riga contenente il nome del package.
3)Nel progetto esiste un file con errori di compilazione. Ciò impedisce la compilazione di qualsiasi classe all'interno del progetto.

Linguaggi statici e dinamici: paure o problemi?

Da tempo si sente l'esigenza di superare il linguaggio Java per rendere la programmazione più flessibile, agile e, se possibile, vicina al linguaggio naturale. Molti hanno individuato la ragione della rigidità di Java nella sua tipizzazione statica e si sono pertanto rivolti a linguaggi dinamici. Questa scelta presenta comunque alcuni problemi.
Continue reading ‘Linguaggi statici e dinamici: paure o problemi?’ »