CONTATTACI

Blog

HTML è un linguaggio di programmazione?

Il linguaggio HTML (HyperText Markup Language) è uno dei linguaggi di programmazione più usati nell’ambito dello sviluppo web, uno strumento pressoché essenziale per impostare il layout di una pagina web. Semplice e intuitivo, col supporto del linguaggio CSS e di JavaScriptHTML fornisce agli sviluppatori gli strumenti necessari per creare un’applicazione web esteticamente gradevole e funzionale. Se nessuno osa mettere in dubbio l’utilità di HTML, c’è una domanda che, invece, genera perplessità tra gli sviluppatori: è possibile definire HTML un “linguaggio di programmazione 

HTML è un linguaggio di programmazione?

C’è chi sostiene che HTML può essere considerato una sorta di linguaggio di programmazione di tipo dichiarativo (che si concentra su “cosa” il programma deve fare e non sul “come” farlo) di alto livello, cioè dotato di una sintassi molto simile al linguaggio umano. C’è chi vede le cose in una prospettiva più ampia, affermando che qualsiasi codice che istruisca il computer sull’azione da eseguire può essere considerato un linguaggio di programmazione. Molti pensano che non sia corretto considerare HTML un linguaggio di programmazione, in quanto non è “turing-completo”: è privo di una semantica che permetta di implementare una qualsiasi macchina di Turing, una macchina che possa essere usata, in altre parole, per risolvere qualsiasi problema che ammetta una soluzione. Altri, invece, sono convinti che la “turing-completezza” non rappresenti un criterio adatto per stabilire se HTML possa o meno essere definito un linguaggio di programmazione.

Per chiarirlo, dunque, proviamo ad adottare un’altra strategia e a rispondere, innanzitutto, a un’altra domanda: che cos’è un linguaggio di programmazione?

Che cos'è un linguaggio di programmazione?

Secondo l’Enciclopedia della Scienza e della Tecnica, un linguaggio di programmazione rappresenta un “insieme di parole e di regole, definite in modo formale, per consentire la programmazione di un elaboratore affinché esegua compiti predeterminati”. Un linguaggio artificiale, quindi, dotato di regole molto rigide e utilizzato per comunicare alla macchina istruzioni precise. Un linguaggio in cui è possibile, come leggiamo nell’Enciclopedia:

  1. dichiarare variabili;
  2. manipolare tipi di dati differenti (come stringhe, numeri, booleani o array);
  3. effettuare operazioni matematiche e logiche;
  4. implementare algoritmi;
  5. dare istruzioni relative alla logica di controllo del flusso (cioè all’ordine in cui vengono eseguite le istruzioni di un programma) in base a condizioni specificate dal programmatore. Un esempio? L’onnipresente “if/else”.

Se HTML possedesse queste caratteristiche logiche e strutturali, condivise da gran parte dei linguaggi di programmazione, a rigor di logica, potrebbe essere considerato anch’esso un linguaggio di programmazione. Proviamo ad analizzare caso per caso:

  1. In HTML non è possibile dichiarare variabili. Non lasciamoci trarre in inganno dal tag <var>: similmente a <code> e <samp>, esso serve solamente a formattare in corsivo il testo d’esempio di un codice di programmazione, o di un’espressione matematica, per enfatizzarlo;
  2. HTML non consente di dichiarare o manipolare dati in base al loro tipo. Anche se in certi tag come <input>, <button> o <link> è possibile specificare il “type”, quest’ultimo rimane comunque un semplice attributo. Con esso non specifichiamo il tipo di dato che intendiamo utilizzare, bensì forniamo informazioni aggiuntive su un elemento HTML che il browser provvederà a renderizzare;
  3. Non potendo operare con tipi di dati come numeri interi (integer) o numeri in virgola mobile (float), in HTML non possiamo effettuare operazioni matematiche o logiche;
  4. Né, va da sé, implementare algoritmi;
  5. Non essendo dotato di una logica di controllo del flusso HTML non permette di gestire strutture condizionali.

C’è chi sostiene, tuttavia, che alcuni tag e attributi HTML siano dotati di una logica di controllo interna in grado di manipolare il DOM senza servirsi del linguaggio JavaScript. Elementi che, interagendo con l’input fornito dall’utente, sarebbero in grado di eseguire delle semplici istruzioni condizionali. Un esempio comune è la coppia di tag <details> e <summary>.

Innestando il tag <summary> nel “parent” <details> è possibile creare una sorta di rudimentale “accordion” (un pannello “collassabile”):

<details>
  <summary>Clicca per aprire</summary>
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.</p>
</details>

Il tag <summary>, fungendo da interruttore (“toggle”), implementa un rudimentale processo “if/else”: se l’utente ci clicca sopra, viene aggiunto l’attributo open al tag <details>. Cliccandoci nuovamente sopra, l’attributo “open” viene rimosso:

Troviamo una logica simile nel tag <dialog>, che consente di creare una finestra modale che si apre automaticamente al caricamento della pagina, ancora una volta grazie all’attributo “open”, e che può essere chiusa con l’aiuto di un pulsante innestato in un tag <form>:

<dialog open>
  <p>Questa è una semplice finastra modale che si apre autmanticamente al caricamento della pagina</p>
  <form method="dialog">
    <button>Chiudi</button>
  </form>
</dialog>

Una volta chiusa, tuttavia, sarà impossibile riaprire questa finestra modale senza l’aiuto di JavaScript.

A prescindere da questi elementi interattivi, introdotti solo di recente in HTML5 (l’ultima versione del linguaggio) e non ancora supportati da tutti i maggiori browser, HTML rimane privo delle funzionalità comuni alla maggior parte dei linguaggi di programmazione: non permette di dichiarare variabili, manipolare tipi di dati differenti, effettuare operazioni matematiche e logiche, implementare algoritmi o strutture di controllo del flusso. Questo perché HTML ha una funzione differente. Quale?

Funzioni HTML

Basta dare un’occhiata all’acronimo “HTML”: “HyperText Markup Language”. Si tratta, infatti, di un linguaggio di marcatura (“markup”), cioè di un linguaggio che, per mezzo di speciali marcatori (o etichette, “tag”), permette di gestire l’impaginazione e la formattazione di un documento. È compito del codice HTML fornire al browser tutte le informazioni relative al layout di una pagina web. Il browser interpreta i marcatori presenti nel codice sorgente (HTML) e ne “renderizza” graficamente la struttura: al tag <h1> corrisponderà un titolo, a <p> un paragrafo di testo, ad <a> un collegamento ipertestuale e così via.

Con l’avvento di HTML5, inoltre, si è deciso di dare maggior risalto alla funzione semantica di questo linguaggio di marcatura. Lo dimostra l’introduzione dei cosiddetti “tag semantici”, come <header>, <footer>, <section>, <nav> o <article>. Si tratta di elementi che, sebbene non differiscano tecnicamente da semplici <div>, servono ad associare a ciascuna sezione di una pagina web un’etichetta “parlante”, garantendo un’indicizzazione più efficiente del contenuto delle pagine web da parte dei motori di ricerca e una maggiore leggibilità del codice sorgente.

HTML, in conclusione, non dispone delle caratteristiche tecniche necessarie per essere considerato a tutti gli effetti un linguaggio di programmazione. Questo perché HTML nasce come linguaggio di marcatura, con una funzione semplice, ma essenziale: descrivere al browser il layout, cioè la struttura, di una pagina web e fornire valore semantico al suo contenuto. Ciò non significa che HTML non sia un’arma importante nell’arsenale dello sviluppatore web, né un linguaggio “di seconda categoria”. HTML rappresenta la spina dorsale di Internet. È un linguaggio semplice ma affascinante, dotato di una ricca documentazione e di una vastissima community. Una conoscenza approfondita di HTML consente allo sviluppatore di realizzare pagine web più funzionali e meglio organizzati, di padroneggiare con consapevolezza framework come Bootstrap o Tailwind, nonché di migliorare i parametri SEO della propria applicazione web.  

Articoli correlati

Il linguaggio HTML (Hypertext Markup Language) è uno dei più conosciuti e diffusi: lo si trova infatti praticamente in tutte le pagine web esistenti. È una scelta popolare tra i principianti che si…

Seguici su Facebook

Vuoi entrare nel mondo della programmazione?

Scopri di più sui nostri corsi!

Chiamaci al numero verde

Contattaci su WhatsApp

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.