I linguaggi di programmazione: HTML5

Stato
Discussione chiusa ad ulteriori risposte.

Elysium

Bannato
14 Giugno 2010
320
19
33
134
Ultima modifica:

xjzRJgm.jpg

Cos'è HTML5?
HTML5 è un linguaggio di marcatura esattamente come HTML 4.01 e XHTML.
Quasi tutti i tag e gli attributi presenti in XHTML e HTML 4.01 sono stati e ve ne sono stati aggiunti dei nuovi.


A cosa serve HTML5?

HTML5 è il linguaggio fondamentale con cui viene realizzata la struttura portante di una pagina web.
Senza di esso le pagine non potrebbero essere strutturate e verrebbero visualizzate come un unico blocco di testo.


Introduzione

HTML5 è l’evoluzione moderna di HTML 4.01 e XHTML. Dopo il sostanziale fallimento del connubio tra XML ed HTML tentato dal 2001 al 2008, il W3C (World Wide Web Consortium) ricevette il decisivo input dal gruppo di lavoro del WHATWG che potè utilizzare i dati statistici di Google su milioni di siti web.
Quello che emerse da questa indagine a campione fu una certa ricorrenza nella nomenclatura degli attributi degli elementi e il decisivo spostamento dai siti alle web application.
XHTML e HTML 4.01 non erano in grado di gestire questo nuovo scenario in quanto la loro funzione primaria è sempre stata quella di fornire una base semantica alle pagine web senza preoccuparsi del loro funzionamento.
Gli autori invece volevano più funzionalità attraverso nuovi elementi e nuove API.
Decisiva fu in tal senso la nuova tendenza nel mercato dei browser ad implementare correttamente gli standard del web (come CSS e JavaScript); volendo fissare uno spartiacque potremmo dire che la nascita di Google Chrome e l’uscita della versione 9 di Internet Explorer sono due momenti decisivi in tal senso.


La semplificazione in HTML5
Se ricordate il DOCTYPE in uso con HTML 4.01 e XHTML, ricorderete anche che era piuttosto complicato e fornito in diverse varianti (Strict, Transitional, ecc.) a seconda della DTD scelta.
La caratteristica principale di HTML5 è la semplificazione.
Questo è il DOCTYPE di HTML5:

<!DOCTYPE html>

Non ci sono più varianti: se includete il DOCTYPE, il browser interpreterà il documento usando la sua modalità standard, e se lo omettete semplicemente il browser userà una modalità non standard.
La semplificazione porta anche a sottintendere quegli elementi che di solito vengono inseriti automaticamente dai browser nella costruzione dell’albero del documento: diventa così facoltativo.
Anche la scrittura degli attributi viene semplificata: ora e sono entrambi validi:

<input type=“checkbox” checked=“checked” />
<input type=“checkbox” checked>

Dal codice di cui sopra emerge anche il fatto che HTML5 è compatibile anche con XHTML: gli elementi vuoti possono infatti essere scritti sia con lo slash finale (XHTML) che senza (HTML 4.01).
Non solo: i linguaggi similari a XHTML come SVG e MathML possono essere usati direttamente in HTML5 senza l’obbligo di servire le pagine come .
Questo era obbligatorio in XHTML, e per diversi anni SVG stentò a prendere piede proprio per questa limitazione.


Nuovi elementi e attributi

I nuovi elementi e attributi partono proprio dall’indagine condotta da Ian Hickson (Google) sulla nomenclatura più usata nei siti web.
I nuovi elementi come article, section e aside rispecchiano appunto i valori degli attributi ID o class usati in passato sui div in HTML 4.01 o XHTML.
Qui di seguito trovate una lista esaustiva di tutti i nuovi elementi e attributi introdotti in HTML5.


Nuove API

Il vero punto di forza di HTML5 sta nelle sue nuove API che si relazionano con JavaScript, il linguaggio di programmazione forse più popolare e usato sul Web.
Senza dare la possibilità di up-lodare e gestire file, salvare dati sul computer dell’utente senza usare i cookie, gestire la modalità offline, geolocalizzare un utente e molto altro ancora, HTML5 non avrebbe sicuramente avuto il successo che sta riscuotendo oggi.
Il prezzo da pagare è sicuramente la dipendenza totale dal supporto dei browser: questo implica anche un potenziale problema nella neutralità di questo standard.


Il punto debole di HTML5

HTML5 è neutrale rispetto ai browser che lo supportano? La sua storia sembra dimostrare che una parte del mercato dei browser (Google in testa) abbia di fatto creato questo standard e lo abbia sospinto grazie alla popolarità crescente delle proprie applicazioni.
Di conseguenza gli altri produttori si sono dovuti adeguare.
Ovviamente HTML5 ha apportato enormi benefici, ma un’ombra sulla sua effettiva neutralità permane.











 
Piccola precisazione (anche se rompiscatole): HTML e CSS non sono linguaggi di programmazione, nonostante comunque tu subito dopo abbia specificato che HTML è un linguaggio di marcatura.

Comunque interessante :)
 
  • Mi piace
Reazioni: TheSeeker
Piccola precisazione (anche se rompiscatole): HTML e CSS non sono linguaggi di programmazione, nonostante comunque tu subito dopo abbia specificato che HTML è un linguaggio di marcatura.

Comunque interessante :)
E invece si. HTML da solo non è un linguaggio di programmazione, bensì markup.
CSS è un linguaggio di stile che descrive l'aspetto del markup.
Ma HTML+CSS uniti si, sono turing completo.
 
E invece si. HTML da solo non è un linguaggio di programmazione, bensì markup.
CSS è un linguaggio di stile che descrive l'aspetto del markup.
Ma HTML+CSS uniti si, sono turing completo.
Se proprio vogliamo essere pignoli, per definizione il concetto di Turing-completo non deve essere applicato a linguaggi di Markup. CSS è Turing-completo solo perché esiste una implementazione di automazione cellulare 110. Nonostante questo, a quanto so, non è considerato (neanche insieme all'HTML) linguaggio di programmazione in quanto è erroneo tentare di applicare il concetto di Turing-completezza a questi linguaggi in quanto è un linguaggio che definisce semplicemente un set di regole, non è un linguaggio funzionale.
 
  • Mi piace
Reazioni: TheSeeker
Se proprio vogliamo essere pignoli, per definizione il concetto di Turing-completo non deve essere applicato a linguaggi di Markup.
Non è vero. Ti stai sbagliando, forse ti riferisci in base alle caratteristiche, se è turing completo. Il concetto di turing completo è discusso pure in linguaggio markup.
Seguendo le caratteristiche, un linguaggio di programmazione è un linguaggio che utilizza matematica e molte altre caratteristiche. E' il programmatore ad utilizzare questi elementi per stabilire qualcosa.
HTML è un linguaggio che non fornisce la capacità di utilizzare la matematica e il processo d'input. E' perciò più statico.
Per questo motivo, javascript, ti rende abile di processare input. Puoi usare quindi la matematica per elaborare input e risultati di output. Però html ti dà solo un risultato in uscita.
CSS e HTML adattano una struttura di base in quanto forniscono istruzioni a un computer per eseguire l'azione desiderata.
Perciò sì, sono un linguaggio di programmazione in questo senso.

CSS è Turing-completo solo perché esiste una implementazione di automazione cellulare 110.
Corretto.

Nonostante questo, a quanto so, non è considerato (neanche insieme all'HTML) linguaggio di programmazione in quanto è erroneo tentare di applicare il concetto di Turing-completezza a questi linguaggi in quanto è un linguaggio che definisce semplicemente un set di regole, non è un linguaggio funzionale.
Quindi quel tuo "a quanto sai" ti lascia perplesso? Hai fatto bene a specificarlo. Ma ora sai una cosa in più.

In CSS3 puoi codificare la norma 110, quindi è Turing completo quando vuoi abbinarlo con HTML.
 
Ok quindi CSS è un "linguaggio di programmazione" a tutti i sensi mentre HTML no.. è sempre bello imparare qualcosa di nuovo.
 
Ok quindi CSS è un "linguaggio di programmazione" a tutti i sensi mentre HTML no.. è sempre bello imparare qualcosa di nuovo.
Anche unito ad HTML, è un azzardo definirlo "un linguaggio di programmazione". Anche conway's game of life, pokemon, minecraft e magic the gathering lo sono, ma questo non li rende dei linguaggi di programmazione.
Mi rendo conto che è un discorso molto opinabile, ma sostanzialmente possiamo dire che tutti i linguaggi di programmazione sono Turing complete, ma non tutte le cose Turing complete possono essere definite linguaggi di programmazione.
 
Anche unito ad HTML, è un azzardo definirlo "un linguaggio di programmazione". Anche conway's game of life, pokemon, minecraft e magic the gathering lo sono, ma questo non li rende dei linguaggi di programmazione.
ovviamente era per dire che uniti (non lo sono) possono essere dei linguaggi di programmazione, e l'ho motivato.
come hai detto tu, il discorso è basato su opinioni. del resto sono d'accordo con voi, html e css visti singolarmente non sono linguaggi di programmazione.
(era una piccola precisazione)
 
Stato
Discussione chiusa ad ulteriori risposte.