Editoriali 5 commenti

Le avventure del futuro

di Michele Simionato

Con la puntata pubblicata la settimana scorsa abbiamo chiuso il secondo ciclo delle "Avventure di un Pythonista in Schemeland". È tempo di una pausa di riflessione. Il primo ciclo di cinque puntate è stato puramente introduttivo e rivolto a tutti, mentre il secondo ciclo è stato più tecnico e rivolto ad un pubblico attento. In particolare, siamo entrati nel cuore di Scheme, andando a discutere il concetto di code is data ed introducendo le macro di tipo syntax-rules. Adesso è il momento di avere un pò di feedback dai lettori. Sondando nella lista degli autori di Stacktrace ho scoperto che molti trovano il ritmo di pubblicazione attuale (poco meno di un articolo a settimana) un pò difficile da seguire. Voi lettori abituali che ne dite? State ancora seguendo? Vi è scoppiata la testa leggendo la decima puntata?

A parte gli scherzi, avevo già pensato di dare un pò di tempo ai lettori per mettersi al passo, e per il terzo ciclo delle "Avventure" pensavo di affrontare una tematica piu "soft", ovverossia le strutture dati in Scheme. Questo significa liste (è vero che ne abbiamo già parlato, ma delle liste in Scheme non si finisce mai di discutere ;) vettori, dizionari, iteratori e stream, records e chi più ne ha più ne metta. L'argomento è molto importante, ma anche meno "esotico" delle macro e dovrebbe essere più semplice da seguire. Inoltre, parlando di strutture dati avrò molte occasioni di dare esempi concreti di macro e di mostrare la loro utilità sul campo.

Il mio piano è quello di riprendere il discorso teorico sulle macro, discutendo syntax-case a partire dal quarto ciclo delle "Avventure", sempre che i miei lettori continuino a seguirmi. Questo è il vostro momento: se volete dire "basta con le macro!", oppure anche "basta con questa serie che non ne possiamo più!" ditelo ora! D'altra parte, se volete vedere la serie proseguire con un taglio differente, proponete i cambi che avete in mente. Finora ho seguito un taglio vagamente accademico, nel senso che i miei esempi sono stati molto poco pratici. Per esempio, ho completamente trascurato l'input/output e non ho mai detto come leggere un file in Scheme o come scrivere su di un socket. Se volete un taglio più pratico, ditelo e vedrò di accontentarvi. I motivi per cui sono stato sul teorico sono vari:

  1. pare che i lettori di Stacktrace apprezzino le cose "inutili", vedi per esempio il grande successo degli articoli sul progetto Eulero;
  2. mi aspetto che la maggior parte di voi legga le mie avventure per cultura personale e non per scrivere applicazioni in Scheme;
  3. il linguaggio stesso ha una tradizione accademica e viene solitamente spiegato con esempi poco pratici (se dovessi spiegare il linguaggio bash, tanto per dirne uno, mi verrebbe naturale dare esempi molto più pratici invece).

Ciò detto, se i lettori mi chiedono esempi più pratici, non ho problemi a esibirne, sta a voi decidere il taglio che vorreste vedere. Per esempio, non sarebbe difficile re-implementare in Scheme quanto ho illustrato nella miniserie "Gestione dei record in Python", facendo vedere come si processano file CSV e come si interagisce con un database.

Un discorso a parte meritano le "sfide": sono stato incerto fin dall'inizio sulla loro inclusione e mi sono deciso a farlo dietro incoraggiamento dei lettori ("non vedo l'ora di mettere le mani alla console!", "ben vengano le sfide da risolvere accendendo il cervello e mettendo mano alla tastiera", "Challenge! Challenge! Challenge! Facci sudare!!"); nonostante i buoni propositi, però, nessuno ha postato soluzioni alle sfide poste nelle ultime quattro puntate. Non so bene il motivo (sfide troppo difficili? paura di esporsi postando la propria soluzione? mancanza di tempo per affrontare la sfida?) ma qualunque esso sia mi chiedo se abbia senso continuare con le sfide e la risposta probabilmente è no.

Infine, volevo dire due parole sul numero dei lettori. Quanti siete a seguire la serie? Ho fatto una piccola ricerca con Google Analytics, aspettandomi di avere venticinque lettori o giù di lì, ed invece ho scoperto che un articolo della serie di Scheme in media è letto da duecento persone in un mese. Tanto per fare un confronto, la miniserie su Python ha circa quattrocento lettori, numero paragonabile con quello degli articoli più letti di Stacktrace: questo significa che circa la metà dei lettori di Stacktrace legge anche la serie di Scheme. Questo è un risultato notevole, tenendo conto che il numero di programmatori Scheme in Italia è molto ridotto. D'altra parte, sarei più contento se il numero dei lettori aumentasse piuttosto che diminuire, quindi fatevi sentire e ditemi cosa vorreste leggere. Qualunque sia la vostra opinione sul futuro di questa serie, siate invitata a postarla come commento a questo editoriale. Per darvi il tempo di riflettere e di assorbire le puntate pubblicate finora, conto di lasciare una breve pausa tra la fine di questo ciclo e l'inizio del prossimo, pausa che occuperò concludendo la miniserie su Python.

Chiudo con un'esortazione: commentate, commentate, commentate!

Michele Simionato
Pubblicato il
21 Mag 2008
Tag

Commenti

  • Oscar Del Ben il 21 Mag 2008

    Ciao, credo che sia giusto l'approccio accademico che hai tenuto fino ad ora, in fondo scheme è un linguaggio per molti versi fatto proprio a questo fine. Per quanto riguarda il ritmo delle postate, forse un pò più di pausa potrebbe aiutare, magari stando sui 10 giorni, vediamo altri lettori che dicono, comunque anche uno alla settimana non è un grosso problema secondo me.

  • semioticmonkey il 21 Mag 2008

    Premetto che seguo le tue avventure con mero spirito di curiosità in quanto, pur avendo al mio fianco il fido manuale di Python della O'Reilly, attendo di averci compreso qualcosa di più di Ruby (e metterlo all'opera) per curiosare più attentamente in questo splendido linguaggio. Figurati dunque la mia comprensione di Scheme, che neanche sapevo cosa fosse, fin dove può giungere! :)

    Detto questo e chiarito che dunque che la mia voce non é da prendere in considerazione circa la tua domanda riguardo la scansione temporale degli articoli, devo redarguirti sulla tua credenza circa la inutilità di questa e di altre serie. I tuoi articoli non sono inutili in quanto, seppure non danno 'consigli pratici' danno le informazioni necessarie per comprendere le dinamiche interne, i modelli che stanno alla base di un linguaggio. Questo permette a chi segue, me ad esempio, di comprendere la teoria pur senza mettere mano al codice vero e proprio e alla sintassi. Sapere che altrove le cose possono essere fatte seguendo modalità diverse e, magari, molto più efficiente.

    Meglio dare informazioni su come coltivare un campo di patate o meglio dare direttamente un cesto di patate? Io son sempre stato della prima opinione ed ho sempre stimato coloro che mi hanno dato il modo di comprendere come poter coltivare un campo invece di limitarsi a passarmi il cesto bello che fatto. Quindi un grazie ed un 'continua così' (una volta a settimana va bene, per me).

  • luigi il 21 Mag 2008

    Apprezzo tale serie, ma in effetti trovo il ritmo degli articoli troppo elevato.

    Mi piacerebbe che ci fosse un seguito su questo argomento ma non sulle strutture dati, quanto piuttosto sulle applicazioni pratiche (es. web application basata su cps, o utilizzo di un db, o opengl, o scheme come linguaggio embedded, DSL etc.).

    Preferirei ovviamente che si parlasse di queste applicazioni per mostrare delle feature di scheme cosi' peculiari che ne facciano apprezzare l'uso, piuttosto che mostrare le API della libreria di turno.

    Comunque, complimenti per il lavoro prodotto fin ora!!!

  • tiziano il 26 Mag 2008

    ciao michele, trovo la tua serie su scheme estremamente interessante e ti esorto a continuare. Il taglio "teorico" che hai dato ai tuoi articoli mi e' piacuto molto, e per il futuro l'ideale sarebbe continuare cosi', dando pero' via via esempi sempre piu' concreti (magari come piccole digressioni), e lasciando i toy-examples nel corpo degli articoli piu' "teorici". il ritmo di pubblicazione mi e' indifferente: al momento non ho assolutamente tempo di seguirti con regolarita', appena escono gli articoli cerco sempre di darci un'occhiata, ma il lavoro serio sono riuscito a farlo solo un paio di volte (e in quelle occasioni ho postato tentativi di soluzione alle sfide). confido di trovare il tempo nel prossimo futuro (2-3 anni :-)) di riguardarmi tutto con calma e con i miei ritmi. per questo le "sfide", per quanto immagino ti costino una certa fatica (dovrai pur implementare le soluzioni prima di proporle :-)), sono secondo me importantissime: mi divertono molto e sono l'unico modo per forzare il lettore a mettere mano alla tastiera. quando iniziero' lo studio di scheme mi propongo di mettermi li' e tentare di risolvere tutte le sfide. quindi mi raccomando: non mollare!

  • pietro il 31 Mag 2008

    Ciao Michele! Io adoro la serie e sono interessato soprattutto agli aspetti del linguaggio che sono unici di questa famiglia, come le macro. Sono partito con dei buoni propositi riguardo alle sfide, ma ultimamente ho parecchie scadenze e non riesco a tenere il passo. Secondo me pero' sono molto utili, e spero di potere recuperare piu' in la'... Grazie mille!

Screencast e videocorsi di programmazione
Stacktrace RSS Feed Stacktrace via E-mail
Hai idee per un articolo? Faccelo sapere!