5 feb 2009

Perchè tableless è meglio di tableful?

Evoluzionisti e creazionistiDa tempo non si leggeva una coraggiosa tirata a favore di front-end sviluppati utilizzando tabelle per risolvere problemi di posizionamento. Lo sfogo pro-tabellosi di "El Gringo" ha il merito di aver rianimato il dibattito "table vs css". Il blogger esamina i grandi del web e conclude, a ragione, che quasi nessuno supporta pienamente layout tableless. Dopo aver letto il post che dire in difesa del tableless e spiegare gli orrori di giganti come Google, Yahoo e Microsoft? Intanto scendendo nel dettaglio tecnico dei codici sotto esame si nota che le indicazioni non sono poi così precise. (Molto spesso i siti in questione utilizzano si tabelle ma solo come gabbie esterne.) Va poi considerato che i pezzi da 90 possono permettersi il lusso di non farsi troppi problemi SEO. Mettiamoci anche che a tutt'oggi non è poi così semplice trovare web designer o sviluppatori tableless capaci di lavorare velocemente.

Le aziende privilegiano la produttività e la rapidità di sviluppo piùttosto che gli investimenti in formazione. Questo è un riflesso del fatto che la cultura tableless è tutto sommato ancora troppo giovane. Come dimostra il dibattito scatenato da "El Gringo".

Ad ogni modo la lista degli orrori sgamati dal blogger sta scatenando un fiorire di battutine e sagaci slogan ad opera degli amanti della vecchia scuola che potranno così godersi una piccola rivincita e andare in giro per la rete a bullarsi e trollare allegramente.

Nell'ondata di prevedibile vandalismo contro i web standard val la pena selezionare uno tra gli interventi più simpatici e interessanti:

«Io credo che i computer debbano essere al servizio delle persone e non il contrario. [...] Tutto ciò significa che quando voglio, diciamo, che qualcosa appaia al centro dello schermo, dovrei essere in grado di farlo semplicemente scrivendo "center" piuttosto che "margin:auto". Se non posso dire ad un computer di centrare qualcosa scrivendo "center", allora temo che sia il computer ad essere dalla parte sbagliata, non io.»

Il post di Ron è costellato di frasi tipo "La vita è breve". La logica del "Non farmi pensare!" è ineccepibile se si ragiona in astratto e se si parla di web usability. Certo anche chi produce pagine web è inserito in una catena ed è un consumatore di prodotti (software per editare, linguaggi di programmazione, standard di impaginazione, strumenti tecnologici in generale) ed è carino che qualcuno voglia rendergli la vita facile. Ma di questo si occupa il W3C che sta lavorando ai CSS3. Nell'attesa che si metta in movimento il circuito virtuoso nuovi standard/nuovi browser, esiste un insieme di competenze che si guadagnano sul campo, spendendo il giusto tempo nella giusta direzione, avendo presente il contesto generale. Usare tabelle per fare il layout di pagina fa risparmiare codice e tempo solo a sviluppatori o web designer improvvisati. E neanche.

Ok dimentichiamo per un attimo il futuro del web. Insomma vogliamo ottenere una certa cosa e la vogliamo subito. Anche così dobbiamo pur fare i conti con una realtà: tag tipo "table" creano difficoltà al normale flusso di discesa delle regole di stile (Cascading Style Sheet). In pratica per ottenere certi effetti tramite CSS (che serve fondamentalmente a centralizzare il più possibile le regole di formattazione di un sito e quindi, appunto, a risparmiare del tempo) si rischia di costringere il front-end developer a lunghi giri di sintassi (più codice uguale più kbyte, più debugging, più tempo-lavoro).

In pratica, anche per i web designer alle prime armi o per gli sviluppatori one-man band, sono decisamente sconsigliabili "tecniche tableful" ovvero riempire le pagine di tabelle. La facilità con cui si posizionano gli oggetti in una tabella è ingannevole perchè non si traduce in una analoga facilità nel gestire un layout interamente basato su posizionamenti in tabella. Si vedrà qualcosa subito ma poi, man mano che si aggiungeranno cose, il codice diventerà fatalmente ingestibile. Ok ma resta sempre il fatto che tableful è dannatamente forte nella centratura e negli allineamenti in verticale. Però se mi chiedono di inserire altri elementi grafici o di contenuto che alterano il concatenarsi di quanto c'è già rischio la tabellosi: riempire la mia pagina di schifezze tipo tabelle dentro celle di tabelle dentro altre celle di tabelle sempre più difficili da gestire in un kafkiano manicomio di codice inutile. L'unico modo per dare un senso a tutto questo tempo sprecato è... imparare la lezione. Ammettere: «la mia ostinazione mi ha portato a fare un lavoro che qualcun altro in futuro dovrà ripulire dalle schifezze e forse quel qualcuno sarò proprio io».

Esistono degli standard di impaginazione tableless molto rodati (anche per centrare verticalmente...) e ampiamente riciclabili/riproducibili. Certo non stiamo parlando di framework ma basta cercare e aggiornarsi, non occorre imparare tutto a memoria. Fin tanto che gli sviluppatori continueranno ad usare tecniche superate, che non tengono conto della semantica del linguaggio, non sarà incoraggiata l'innovazione e lo sviluppo di nuove tecnologie (magari acerbe ma che vanno nella giusta direzione). Così i produttori di browser non saranno incentivati ad innovare e lo sviluppo dell'informatica sarà inevitabilmente rallentato.

Alla fine dei conti tableless è più veloce di tableful, in tutti i sensi.

Nessun commento :

Posta un commento