Bit a bit, si cresce sempre


Blog di un ingeformatico
Statistiche
  • Views Home Page: 516.074
  • Views Posts: 1.633.626
  • Views Gallerie: 833.019
  • n° Posts: 520
  • n° Commenti: 301
Ora e Data
Archivio Posts
Anno 2017

Anno 2016

Anno 2015

Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Recensione libro Beginning F# (Apress)

Non è facile imparare un linguaggio come F# per chi ha sempre utilizzato la programmazione ad oggetti.
Di questo linguaggio, definito “funzionale”, se ne sente parlare già da un po’ di tempo, ma solo ultimamente sta piano piano riscontrando apprezzamenti e considerazione, e nei prossimi anni dovrebbe uscire dalla torre d’avorio dove è stato relegato finora, e trovare una qualche applicazione pratica.
Di libri su F# non ce ne sono tanti: non si verifica la stessa situazione che accade per i suoi coinquilini in Visual Studio 2010, ovvero VB e C#.
Anche la Microsoft ci ha messo del suo per disorientare lo sviluppatore. All’inizio ci credeva poco, lo teneva confinato nei suoi laboratori di ricerca, senza spingerlo con una certa convinzione.

Robert Pickering, l’autore del libro, già nel 2007 aveva pubblicato “Foundation of F#”, sempre per conto della Apress che, a quanto pare, è l’unica casa editrice a credere veramente in questo paradigma di programmazione.
Premetto che non ho letto tutte le 400 pagine (in 14 capitoli) di questo libro, ma mi sono fermato al capitolo 5, tenendomi i restanti per veloci letture esplorative.
Bisogna anche dire che queste prime 150 pagine sono più che sufficienti per dotarsi di più che buone basi per iniziare a sviluppare semplici programmi in F#.

Nel primo brevissimo capitolo (5 pagine) l’autore spiega cosa è la programmazione funzionale, le sue caratteristiche e i suoi punti di forza, e traccia una breve storia di F#, soprattutto riguardo alle sue “controparti”, ovvero la programmazione imperativa e ad oggetti.
Già da queste prime pagine si intuisce che l’approccio non è Microsoft centrico. L’autore, infatti, spiega come questo tipo di programmazione si inserisce in ambiti open source e “linux-oriented”, non solo quindi su piattaforma prettamente Microsoft. Questo è un bene, in quanto rende il libro usufruibile da una più vasta platea di lettori.
Nel secondo altrettanto breve (8 pagine) capitolo ci si confronta con le possibili scelte per l’ambiente di sviluppo. Si mostra, ovviamente, Visual Studio (qui nella versione 2010 Beta 2), ma anche Mono, per piattaforme Linux.
Stranamente, però, i diversi progetti che ho provato ad aprire dal codice sorgente scaricabile dal sito della Apress, sembrano sviluppati con la versione 2008 di Visual Studio: infatti ogni volta che se ne apre uno, Visual Studio 2010 chiede di effettuare la conversione alla sua versione.
Niente di preoccupante comunque, dato che il codice rimane funzionante e compilabile (almeno per i progetti che ho provato ad aprire io).
Dal terzo capitolo in poi iniziano i giochi.

Anche se F# è un linguaggio “Functional First”, non si dimenticano degli altri paradigmi di programmazione, e negli altrettanto corposi capitoli 4 e 5 (28 e 35 pagine rispettivamente) lo si analizza nell’ambito della programmazione imperativa prima, e ad oggetti poi.
Idealmente, con la lettura del 5 capitolo, si potrebbe aver concluso l’excursus sul linguaggio.
Approccio che ho seguito io, lasciandomi la restante parte del libro nel caso avessi effettivamente bisogno di approfondire l’argomento in futuro.
Devo dire però che anche con queste sole prime 150 pagine le conoscenze trasmesse dall’autore sono significative, ben oltre l’aspettativa che ci si potrebbe aspettare da un libro che ha la parola “Beginning” nel suo titolo.

Il file zippato del codice sorgente pesa 2,4 MB, e una volta scompresso crea una struttura di cartelle così fatta.

I progetti risiedono nella cartella “src”, ed hanno una struttura suddivisa per capitoli di appartenenza.

Direi che comunque il miglior modo per imparare è di provarli man mano che l’autore li introduce.
Ammetto anche di aver avuto necessità di rileggere più volte vari paragrafi: probabilmente è il mio background culturale imperniato sulla programmazione ad oggetti in C#. Troppe volte mi è capitato di “pensare” in OOP man mano che procedevo nella lettura del libro.
Non è effettivamente facile riuscire a sgombrare la mente per predisporsi “nudi e puri” alla programmazione funzionale.
È da mettere in conto, considerando anche la sintesi dell’autore, che questo libro necessiterà di più letture.

Pur avendo l’autore svolto un buon lavoro, mi sembra che non sia stato molto aiutato da chi ha impaginato il testo in Apress. Il layout infatti è molto scarno: il codice è sì ben indentato, ma ci si è completamente dimenticati dell’uso del grassetto. Le (poche) immagini sono di scarsa qualità, e alcune di esse occupano uno spazio esagerato per il contenuto che devono mostrare.
La carta è economica, è la rilegatura mostra una flessibilità appena accettabile (ricordo che il libro è di sole 420 pagine).
Insomma, da questo punto di vista si poteva fare meglio.

Sul sito della Apress purtroppo non c’è nulla di scaricabile, nemmeno il sommario in formato Pdf.

Nella pagina della Errata non c’è nessuna segnalazione di refusi od altro.
Mentre questo è il sito dell’autore, Robert Pickering.


dove si può trovare dei minitutorial su F#.

A quanto pare il blog non è molto funzionante. A me ha dato il seguente errore:

“the blog you’ve requested cannot be found”.

 

I libri attualmente disponibili su F# non sono tanti, e per chi volesse approfondire l’argomento riporto l’elenco di quelli che ho trovato su Amazon:

 

Expert F# 2.0 – Apress 2007 (609 pp.)

 

Foundation of F# - Apress 2007 (360 pp.)

 

Professional F# 2.0 – Wiley 2010 (432 pp.)

 

Programming F#: A comprehensive guide for writing simple code to solve complex problems – O’Reilly 2009 (416 pp.)

 

Real World Functional Programming: With Examples in F# and C# - Manning 2009 (500 pp.)

 

F# for Scientists – Wiley 2008 (368 pp.)

 

Ritengo, comunque, che questo di Pickering sia il più indicato per chi inizia da zero.

 

PRO

Buona impostazione didattica, tanti esempi ben commentati, e un inglese comprensibile. Questi sono i maggiori pregi di questo libro che modestamente si definisce “introduttivo”, ma che a ben guardare può risultare utile anche per lettori più esigenti.

 

CONTRO

Nessun problema grave, tranne solo il fatto che gli si poteva offrire una maggiore cura realizzativa per quanto riguarda l’impaginazione e il layout.

 

Voto complessivo: 7,5/10

 

Lettore: Intermedio

 

Sommario

Cap. 1 - Introduction

Cap. 2 - How to Obtain, Install , and Use F#

Cap. 3 - Functional Programming

Cap. 4 - Imperative Programming

Cap. 5 - Object-Oriented Programming

Cap. 6 - Organizing, Annotating, and Quoting Code

Cap. 7 - The F# Libraries

Cap. 8 - User Interfaces

Cap. 9 - Data Access

Cap. 10 - Parallel Programming

Cap. 11 - Distributed Applications

Cap. 12 - Language-Oriented Programming

Cap. 13 - Parsing Text

Cap. 14 - Compatibility and Advanced Interoperation

 

 

 

Categoria: Books
giovedì, 24 mar 2011 Ore. 10.59

Messaggi collegati


Meteo
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003