Gitbaritalian
developer
podcast
43

Progressive Enhancement, la programmazione democratica ed etica

Serie 1
Episodio 43
Durata 28 minuti

Sviluppare applicazione non è solo un fattore di programmazione o sviluppo ma porta con se una sfida più grande che si nasconde nel come farle. Infatti, in ogni nostra decisione non si nasconde solo una presa di posizione tecnica, ma una posizione politica ed etica. Questa posizione emerge quando parliamo di progressive enhancement! In questo episodio ho riflettuto a voce alta sull'argomento 🙂

Ricordati di iscriverti al gruppo telegram: https://t.me/gitbar

Links

Contatti

@brainrepo su twitter o via mail a info@gitbar.it.

Crediti

Le sigle sono state prodotte da MondoComputazionale Le musiche da Blan Kytt - RSPN e Broke For Free - Something Elated

Trascrizione

Trascrizione automatica realizzata con servizi Amazon AWS Transcribe

benvenuti su Bar, il podcast dedicato al mondo dei fusti.
Ben in mezzo artigiani, mezzo artisti di ogni giorno infilavano le mani nel fango per creare nel modo più efficiente possibile quei prodotti digitali che quotidianamente indiano www bene, benvenuti su bar sentite la mia voce un po' strana non preoccupatevi, è perché mi trovo a registrare in una condizione estrema, ma non potevo mancare per la seconda settimana di seguito.
Quindi devo iniziare chiedendo scusa, scusa perché non sono riuscita a registrare la settimana scorsa e provo a recuperare questa settimana con un microfono poggiato sul trolley, pronto per ripartire.
Ma ho la mia vita è così ormai state imparando a conoscerla.
Comunque bando alle ciance questa settimana e' una settimana, un po' disseminata di campagna elettorale, un po' qua, un po' là e anch'io.
Voglio parlarvi di politica e non scherzo.
In realtà voglio affrontare un discorso abbastanza controverso di politica, dove voglio prendere anche la mia posizione.
Naturalmente non parliamo di destra o di sinistra, ma parliamo sempre di tecnologia.
Lo faremo subito dopo avervi ricordato come il nostro solito, i contatti.
Iniziamo ricordando di che potete iscrivervi, entrare insomma nel nostro gruppo telegramma dove ci scambiamo quattro chiacchiere oppure potete scrivermi a Heat sembrerebbe su Twitter o ai barra.
Comunque non perdiamoci in chiacchiere.
Piccola pausa e poi iniziamo ad affrontare l'argomento della settimana è arrivato l'arrotino il nome.
Il web ci da' la carriera e aumenta le nostre vite e per questo io mi imbatto sempre sul concetto che noi deve abbiamo sulle nostre spalle un'importante responsabilita'.
Infatti quotidianamente quando sviluppiamo applicazioni, abbiamo davanti a noi una serie di scelte delle scelte che spesso vengono intese come scelte di natura tecnica, ma dietro una facciata fatta di bibite fatta di infrastrutture, architetture, ci realtà, una scelta di tipo etico, una scelta di tipo etico che dobbiamo affrontare in primis in qualità di uomini.
In seconda battuta, in qualità di tecnici è infatti e oggi vi voglio parlare di Great Fool Nation e di progressiva Enhancement.
Insomma, parliamo un po' in modo molto modesto di filosofia della progettazione del software.
Quando si parla di radiation, naturalmente in inglese lascerà a desiderare.
Ma ormai lo sapete, si parla di quel tipo di approccio alla progettazione che parte da uno studio delle funzionalità basate sui browser più performanti.
Quindi io devo sviluppare un sito un'applicazione, mi baso completamente su l'ultima versione di cromo o di il file fox.
Questo approccio però fa sì che i browser più datati o meno capaci vengano presi in considerazione solo nell'ultima parte del ciclo di sviluppo e spesso ci si limita alla l'implementazione diciamo delle stesse funzionalità, almeno nelle ultime versioni dei browser principali.
Quindi ciò non si va indietro nella storia per rendere supportato il sito l'applicazione che stiamo facendo anche nelle versioni più vecchie è naturalmente quello che ne avremo.
Di conseguenza sta è non è altro che insomma un'esperienza zoppa più povera, ma comunque tutto sommato fruibile.
Questo può voler dire anche meno funzionalità.
Questo lo si fa utilizzando delle particolari tecniche, tra le quali, appunto la tecnica dei popoli phil.
Un modo per l'appunto far portare le funzionalità più moderne nei browser più datati, fatto in modo fatti in modo un po' in piedi, dico questo approccio viene indicato come un approccio da una quindi parto da un contesto, una situazione ottimale e una volta che ho sviluppato la mia applicazione del sito, il artefatto in quella situazione ottimale inizio a togliere i pezzi e a semplificare per farlo funzionare nelle situazioni un po' più semplice, più limitate e infatti spesso viene indicato come il portare da un la complessità alla semplicita' io se sapete che ormai provo a raccontarvi le cose un po' come le memorizzo io.
Quindi per immagini e quando si parla di great che mi viene in mente è quella di far entrare un castello fatto con le lego all'interno di una scarpa nella stessa scatola del castello.
Beh, probabilmente lettori cadranno o comunque l'esperienza azzoppata ci sarà.
Questa è un'idea che viene dal mondo e' un'idea che ha trovato molto spazio a partire dagli anni novanta.
Un'idea, come vi dicevo prima, che dice bene i moderni si possono godere tutto il pranzo pasto fino al dolce, mentre vecchi beh, si accontenteranno delle briciole.
Ma questa visione non si sposa con la visione democratica ampia di un web di un web universalmente accessibile che la visione che e promulga.
Quindi attorno al duemila quattro si è sviluppato un filone, un pennino più consapevole, un filone che provava a sostituire questo approccio top da un e di porting di resa di degli strumenti che andiamo a realizzare in un approccio bottom-up.
In realtà io ho detto duemila quattro in realtà si iniziano a vedere delle prese di consapevolezza già dal duemila tre.
Infatti, se andate a cercare dovreste trovare un della ex se lo cerco e lo mettono nelle note dell'episodio, dove in realtà si inizia a sventolare questa bandiera, a promulgare, a proclamare questo cambio di tendenza.
Il tunnel si chiama inclusi, inclusi web design for the future' ed è brutto punto diciamo un uno sviluppo di consapevolezza che porta a un web piu' più democratico, dove l'approccio in realtà di coinvolgimento e di democratizzazione.
Questo perché? Perché in realtà non ci si focalizza sul quello che si ha e si vanno a eliminare dei blocchi, ma si parte in fase di costruzione buy nello stabilire nello strutturare un'architettura, quindi un'applicazione che possa crescere con la crescita delle capacità non solo poi del browser, ma anche del contesto.
Su questo poi ci scenderemo a fondo in là nella seconda parte di questo episodio dove andiamo ad affrontare anche un'ulteriore evoluzione che si è sviluppata.
E quindi in realtà qual è? Qual è il principio fondante della del progressivo Enhancement? Si parte da basi solide e sopra queste basi solide si costruisce pezzetto su pezzetto le funzionalità aggiuntive, quindi quelle funzionalità che fanno uso dei sistemi magari più evoluti e li si pensa partendo da un contesto limitato.
Quindi dice o che le mie risorse sono questa manciata e' un sette limitato di risorse.
Bene, cosa posso fare partendo da questo sette limitato e poi via via si tracciano dei cerchi che si vanno ad estendere, per cui si parte da un sistema semplice a un sistema più complesso.
Ecco perché il progressivo è inteso come un approccio botto mappa, perché prende in considerazione il fatto che noi stiamo sviluppando il nostro sistema a per che non conosciamo e quindi non con in mente l'ultima versione di cromo con l'ultima versione della Weber piace supportata, e questo fa sì che noi possiamo sviluppare partendo da una base solida di fall back.
Quali sono gli strumenti che abbiamo bisogno per mettere in piedi questa strategia? Beh, solitamente sono due sono due tool che ci vengono messe a disposizione.
Il primo è la possibilità di fare detection, quindi capire se il browser supporta una funzionalità o meno.
La seconda è quella di applicare dei popoli phil.
Quindi le strategie che vanno ad aggiungere quelle funzionalità che mancano al browser volevano raggiungere utilizzando JavaScript.
Ecco che qua entra in gioco il javascript.
Un player importante che poi è anche l'elemento che diciamo attiva quella che la discussione che porta poi a cercare di evolvere la visione del progressive.
Naismith però non vi anticipo nulla, ci prendiamo una piccola pausa e una volta tornati da questa piccola pausa inizieremo a parlare della pietra dello scandalo.
È arrivato l'arrotino, non dal duemila si in poi ci sono stati due fazioni, due blocchi distinti, due blocchi che avevano visioni diverse, modi diversi di intendere il progressive enhancement c'è stato un blocco, quello un pochino più più conservatore, che ha una visione che io reputo stretto per meglio dire tecnica del progressivo enhancement che la visione che si riconduce poi al concetto.
Credo che sviluppiamo partendo dalla in modo che sia supportato su tutti i browser.
Poi ci attacchiamo il css in modo che buona parte dei browser lo lo supportano.
Quindi tutto possa essere visualizzato nel modo migliore esteticamente più fruibile.
Bene, una volta che ho html css io la base principale del mio sito o dalla mia applicazione, quindi tutto dovrebbe funzionare a prescindere dal javascript.
Poi ci attacco il javascript e' tutto dovrebbe in qualche modo aumenta tarsi questa visione e appunto la visione stretta tecnica della del progressivo enhancement, cioè però un'altra fazione che vede il concetto di progressiva enhancement in un modo un po' più ampio, direi anche in un modo un pochino più politico eh? Come vi dicevo, all'interno di questo episodio ci sia la mia posizione.
Infatti io mi colloco a livello di idee un po' più su questa parte della barricata, cioè l'idea di vedere la nostra applicazione al di là del set tecnologico che utilizziamo e quindi partire dalla funzionalità, non dallo strumento.
A questo punto si studia una base di funzionalità che deve essere democraticamente fruita, cioè tutti possono accedervi e via via a seconda delle capacità del browser.
Questa se questo set di funzionalità può estendersi gradualmente, aumentare la qualità dell'esperienza utilizzando appunto quelle funzionalità che sono supportate in alcuni browser e in altri no.
Vedete che questo modo di approcciare esula un po' dagli strumenti, anzi esula completamente dagli strumenti tecnologici utilizzati.
Quindi, a parer mio, la visione stretta, quella visione che diceva poi css poi giovava scritte e una visione limitata, ma anzi la butto anche anacronistica.
Perché? Perché oggi il nostro web si è voluto, non è più quello del duemila sè i duemila cinque, quando la parola progressive enhancement, la visione e del progressivo enhancement con una prospettiva tecnica poteva essere anche giustificata.
Ma oggi i nostri siti diventano più up che siti di contenuto e anche i siti di contenuto di per sé richiedono un'intera attività.
È una funzionalità molto più evoluta di quella che era richiesta dai siti di dieci quindici anni fa, per cui vedo l'approccio stretto alla definizione di progressiva enhancement l'approccio html, css, javascript come un approccio semplicistico.
Infatti chi sostiene questa tesi spesso dice bene disattiva javascript e vedi se funziona.
Se il tuo sito funziona bene, a quel punto la tua accessibilità e supportata e tu stai rispettando il progressivo enhancement.
Beh, dal mio punto di vista non è così, è troppo facile disattivare scritte e con questo provare che il tuo sito, la tua e sviluppata in modo etico e democratico, soprattutto fuori contesto, in un mondo dove le nostre app e non sono più dei siti web ma si complicano talmente tanto che se vogliamo descriverle dobbiamo rappresentarle con per esempio un grafico delle che riassume che descrive il documento application continui che cos'è il documento application continuo è un modello mentale che ci aiuta a pensare i nostri progetti e a posizionare i nostri progetti o sull'atto del sito web o sul lato dell'applicazione web.
Perché spesso noi tendiamo a dividere il sito web o applicazione web come due facce di una medaglia, dimenticando quelle che sono le sfumature graduali nel mezzo.
Quindi non è più una questione di bianco o nero, ma è tutta una serie di sfumature in questo contesto troppo semplice e definire il rispetto del concetto delle delle, del principio del progressivo enhancement con il disattivare JavaScript.
A proposito di document too application, continui questa una piccola parentesi e vi metto il link perché questo concetto è spiegato benissimo nel libro di MI O Michael.
Non lo so, è che si chiama, affronta minaccia, non e' che un capitolo che affronta questo concetto e vi suggerisco di leggerlo comunque questo approccio, questa visione stretta, eh, assolutamente limitante e dal mio punto di vista va superato questo limite e questo paraocchi va aperto, quindi va intesa progressive enhancement va inteso in modo piu' moderato.
Uno dei diciamo dei promulgato Tory, dei sostenitori di questo modo di vedere il progressivo enhancement è Jack che o Archibald.
Se non lo conoscete andatelo a cercare su youtube, lui un developer per Google.
E troverete sicuramente su su Google un suo bellissimo che ha scritto per la gioia e sconfisse Asia duemila diciotto che racconta le venti lupo mi raccomando, se non l'avete visto, buttate un occhio perché ne vale la pena.
Tra l'altro io sono due anni che mi chiedo come ha fatto quelle slides, ma chiediamo le parentesi.
Comunque dicevo, questa visione ampia di intendere il progressiva enhancement ci porta a iniziare a ragionare in termini di contesto, cioè se io disattivo il già scritto quali sono gli utenti e', quanto e' larga la fetta di utenti che io mi perdo adesso.
Se se noi proviamo a fare questo esperimento ci rendiamo conto di diverse cose.
Ci rendiamo conto, per esempio, che buona parte di che tutti i giorni usiamo, per quanto siano obsoleti, per quanto siano limitati in termini di performance, supportano già scrivete, quindi in realtà disabilitando JavaScript quegli utenti che noi stiamo tagliando fuori tendono allo zero, per cui è un falso mito e' un fatto una falsa unità di misura, quella di disabilità del javascript, per vedere se il nostro sito migliora progressivamente.
E questa non è una solo una mia idea, ma anche polli, creatore di Lighthouse il tulle, il che utilizziamo per misurare quanto i nostri siti o le nostre web siano progressivo e Bacco, ma anche creatore dei supporta questo modo progressista.
Il progressivo enhancement per cui il primo lavoro che io suggerisco quando ci si vuole posizionare in un ragionamento di miglioramento progressivo, è quello di provare a capire in realtà quanto e' alta la fetta.
Se esiste una fetta di utenti che non supporta.
Già scritto perché quando si intende progressive Nasim è necessario intendere un un principio che esula dal mero concetto tecnologico esula dalla lotta javascript, scrive ma c'è qualcosa in più.
In realtà, nel web moderno i colli di bottiglia sono ben altri.
Uno di questi è per esempio la rete.
Un modo moderno di intendere progressiva Enhancement, per esempio lo Flynn Feste.
Oggi abbiamo bisogno di pensare le nostre applicazioni perché possano g dare, a prescindere dalla rete, che il nostro limite internet oggi offriamo dei dispositivi mobili, dispositivi mobili che utilizziamo appunto in mobilità.
E' l'elemento è l'elemento che emerge nell'utilizzo immobilità dei dispositivi mobili e la non stabilità della rete ed Ecco perché per fare dei siti o delle applicazioni che siano migliorati progressivamente, che abbracciano il progressivo enhancement, abbiamo bisogno di strumenti ampiamente supportati e moderni come i servizi il Service worker.
Abbiamo bisogno di strumenti come index tutti questi strumenti che non possono funzionare a prescindere dal già scritto, e sono strumenti che sono supportati anche dai entry-level che supportano il tre G.
Quindi, per esempio, se noi iniziamo a pensare i nostri siti, le nostre applicazioni Eli Eli, ragioniamo in termini di tre cifre.
Beh, a questo punto anche l'applicazione che gira su un quattro Ginny, la stessa applicazione che gira su quattro, ne avrà da del beneficio sarà sicuramente migliore.
Ecco un modo moderno del progressive Naismith del miglioramento progressivo.
E per tutti quelli che dicono si va bene script non javascript abbiamo l'esempio pratico.
Un esempio è quello delle applicazioni fatte per i paesi in via di sviluppo.
L'applicazione è stata sviluppata per l'ebola, utilizzava web workers db eppure girava in condizioni estreme contro super limitati.
Quindi oggi il discorso non è più già scritto, non già scritta.
È per esempio rete copertura dirette continua o non copertura di rete.
Quindi quello che sta succedendo e quello che dovremmo intendere ragionare quando appunto pensiamo in termini progressive enhancement e che stiamo vivendo un cambio di contesto.
Se prima avevamo dei incapaci ma con connessioni stabili, oggi abbiamo connessioni instabili e capaci.
Quindi non possiamo più ragionare in termini di esiti e-mail feste quindi di html prima, poi css e poi già l'unico forse momento in cui questo retaggio del passato può rimanere e solo quando noi ragioniamo in termini server side rendering per una mera e dico mera questione di performance.
Il cambio.
Questo cambio di contesto rende completamente anacronistico il concetto di html festa, specie perché in realtà non è più applicabile.
Oggi lavoriamo in termini di web componente dove non c'è più la separazione di do alla katie, la struttura al css, la parte estetica e aleggiava scritte l'azione.
Ma è divido la mia applicazione in components, ognuno dei quali ha del css, javascript e della catena.
Io non posso prescindere dal fatto che ognuno di questi tre elementi possa e debba viaggiare mano nella mano con gli altri.
Ecco che anche questo nuovo modo di vedere quella che viene indicata come separation o consenso quindi la separazione degli ambiti, sarebbe non ha non ha più senso questo punto ragionare in termini di festa perche' Vi sto facendo questo pippone perché in realtà spesso quando noi sviluppiamo le nostri siti e le nostre applicazioni la buttiamo sul sull'ambito e sul contesto della tecnologia.
Ma la fruibilità delle nostre applicazioni e dei nostri siti web non è più un elemento di tipo tecnologico, ma è un elemento di tipo etico e politico.
E' la cosa che dobbiamo avere presente e vi voglio lasciare con questa questa citazione e che l'unica costante e' il cambiamento e questo non lo diceva breve epoche pirla del mondo, ma lo diceva era spero che questo episodio vi sia piaciuto.
Io mi sono anche un po' riscaldato devo dire la verità perché queste cose quando si parla di di etica e di politica mi mi accendo sempre, infatti penso di aver raggiunto i quaranta gradi centigradi.
Comunque spero che questo episodio vi sia piaciuto.
Noi ci diamo appuntamento alla prossima settimana, tenendo presente che dalla prossima settimana ripartirà un interessantissimo ciclo di intervista con una serie di ospiti super super interesse.
Quindi cosa dirvi sperando che questo episodio vi sia piaciuto? Se vi è piaciuto naturalmente aprite la vostra apparse naturalmente se non avete già fatto, aprite la vostra affatto di prodi caste, iscrivetevi! Se vi è piaciuto davvero tanto bene, aprite ai toons broadcast Piepoli e lasciate una recinzione.
Due righe fanno sempre piacere, soprattutto aiutano a catturare orecchie nuove che non fa mai male.
È nulla se avete voglia di rispondermi o se la vedete diversamente da come la vedo io, cioè il gruppo telegramma alla quale potete lasciare anche un messaggio vocale.
Quindi perche' non lo mandero' come risposta.
Nei prossimi episodi non siate imbarazzati, mi raccomando, è la tenete presente che il bar è un bando degli sviluppatori, quindi se volete dire la vostra, la porta è sempre aperta è cosa dirvi in e-mail.
Lo sa bene il resto per scrivermi gruppo Telegram ve l'ho già detto noi ci diamo appuntamento alla prossima settimana da Olbia tutto tu bark, il circolo dei full stack e' bello.
Per una volta a settimana ci troviamo davanti a due birre e compra il repo.
Parliamo linguaggi e tecniche di sviluppo, di metodologie e di strumenti immancabili nella cassetta degli attrezzi di Foster