Esempi, esempi e ancora esempi

26 October, 2008 (09:57) | agile, communication, programming

Durante la preparazione di corsi/presentazioni Matteo mi ha sempre ricordato l’importanza degli esempi per far comprendere un concetto che potrebbe essere percepito come troppo teorico. Alcuni episodi che sono successi negli ultimi giorni mi hanno fatto riflettere e sono arrivato alla conclusione che Matteo ha proprio ragione.

Due esempi sono eclatanti: Lo stile architetturale REST e Il modello relazionale dei dati

Partiamo dall’ultimo: Codd ha iniziato a lavorarci negli anni ‘70, Date ha scritto una ventina di libri sull’argomento, ma ascoltando i loro commenti pare che nessuno abbia ancora capito. Nessun RDBMS (fra quelli diffusi) sarebbe infatti considerabile aderente al modello relazionale e la stessa cosa varrebbe anche per lo SQL (inclusi tutti i dialetti e l’ultimo standard del 99). 40 anni, conferenze, centinaia di migliaia di pagine scritte, ricerche, studi e nessuno ha ancora capito…

La stessa cosa succede per le architetture REST, pochi giorni fa l’ennesimo caso di API dichiaratasi RESTful, ma che invece, a detta di Roy Fielding RESTful non è. La cosa che mi spiazza è la carenza cronica di esempi significativi e chiarificatori.

Gli autori di cui sopra hanno mostrato più di una volta la loro frustrazione di fronte all’interpretazione errata delle loro teorie, tuttavia sono di una stiticità unica nel fornire esempi di buona applicazione del loro lavoro. Nei commenti all’ultimo post che ho citato, per tre volte è stato chiesto a Roy di fornire un’esempio di una buona API REST… silenzio. E’ estremamente frustrante per uno come me che cerca di capire, e sinceramente mi domando il perchè di questa situazione…

Alla fine concordo con Sam Ruby (autore dell’ottimo RESTful Web Services) quando dice

Without intending to take anything away from Roy’s (valid) criticism on labeling, REST isn’t an all or nothing proposition. One can get significant value from partial adoption

Ovvero: pragmaticamente il mondo va avanti comunque :-)

P.S. Sembra che l’unica API che abbia ricevuto l’approvazione di Roy sia l’Atom Publishing Protocol

Comments

Comment from Lawrence Oluyede
Date: October 26, 2008, 1:30 pm

In effetti una delle parti meno comprese del modello REST è la parte di discovery through hypertext, cosa che bene o male non fa quasi nessuno. Ci sono anche infinite menzioni sulla mailing list ufficiale di REST. Ma nessuno ha ancora spiegato con parole semplici partendo da zero l’interazione client-server a tal riguardo. Tutti gli altri cardini di REST mi sembrano più che chiari a tutti. Quello che sembra essere il più importante è il meno spiegato, purtroppo

Comment from .MOz
Date: October 27, 2008, 11:56 am

Per forza… “Few things are harder to put up with than a good example” ;-)
(Mark Twain)

Comment from xpmatteo
Date: October 27, 2008, 2:13 pm

@Lawrence: per “discovery through hypertext” forse si intende “Query results are represented by a list of links with summary information, not by arrays of object representations”? Che in parole povere, secondo me, è come quello che fa Apache quando chiedi una URL che corrisponde a una directory, e lui ti fabbrica una pagina di indice con i link a tutti i file della rdirectory?

@.Moz: LOL!

Comment from Lawrence Oluyede
Date: November 7, 2008, 3:30 pm

@xpmatteo: si l’ho pensato anche io ma secondo me e` un po ‘ troppo vaga come devizione. Io ad esempio uso i , ma non e` che siano granche` utili se non hai una reale semantica di utilizzo e discovery nei client.

Write a comment