<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ linguaggi di programmazione - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Impara a programmare gratuitamente! Tutorial di programmazione su Python, JavaScript, Linux e molto altro. ]]>
        </description>
        <link>https://www.freecodecamp.org/italian/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ linguaggi di programmazione - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/italian/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Thu, 07 May 2026 08:46:54 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/italian/news/tag/linguaggi-di-programmazione/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Python vs JavaScript – Quali sono le differenze fondamentali tra questi due popolari linguaggi di programmazione? ]]>
                </title>
                <description>
                    <![CDATA[ Se vuoi conoscere le differenze principali tra Python e JavaScript, questo è l'articolo che fa per te. Questi due linguaggi di programmazione sono molto popolari e versatili, ma presentano delle differenze sostanziali di cui parleremo nel dettaglio. In quest'articolo, imparerai:  * Le diverse applicazioni di Python e JavaScript.  ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/python-vs-javascript-quali-sono-le-differenze-fondamentali-tra-questi-due-popolari-linguaggi-di-programmazione/</link>
                <guid isPermaLink="false">62cd3005b6e07a06df8581b2</guid>
                
                    <category>
                        <![CDATA[ linguaggi di programmazione ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Dario Di Cillo ]]>
                </dc:creator>
                <pubDate>Wed, 20 Jul 2022 05:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/07/Python-vs.-JavaScript-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/python-vs-javascript-what-are-the-key-differences-between-the-two-popular-programming-languages/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Python VS JavaScript – What are the Key Differences Between The Two Popular Programming Languages?</a>
      </p><p>Se vuoi conoscere le differenze principali tra Python e JavaScript, questo è l'articolo che fa per te.</p><p>Questi due linguaggi di programmazione sono molto popolari e versatili, ma presentano delle differenze sostanziali di cui parleremo nel dettaglio.</p><p><strong>In quest'articolo, imparerai<strong>:</strong></strong></p><ul><li>Le diverse applicazioni di Python e JavaScript.</li><li>Le differenze principali tra Python e JavaScript a livello sintattico e funzionale.</li></ul><p><strong>Iniziamo<strong>!</strong></strong> ✨</p><h2 id="-python-vs-javascript-applicazioni-pratiche"><strong>🔹 Python vs JavaScript: applicazioni pratiche</strong></h2><p>Iniziamo con una rapida panoramica delle applicazioni pratiche.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-187.png" class="kg-image" alt="image-187" width="600" height="400" loading="lazy"></figure><h3 id="python"><strong>Python</strong></h3><p>Grazie alla sua versatilità, Python è diventato uno strumento essenziale praticamente in ogni applicazione scientifica. È un linguaggio di programmazione polivalente che supporta vari paradigmi di programmazione.</p><p>È ampiamente utilizzato in applicazioni specializzate e di carattere scientifico, tra cui data science, intelligenze artificiali, machine learning, formazione informatica, visione artificiale ed elaborazione di immagini, medicina, biologia e persino astronomia.</p><p>È anche utilizzato nello sviluppo web. Possiamo iniziare da qui a confrontare le sue applicazioni con quelle di JavaScript. Python è utilizzato per lo sviluppo back-end, un'area dello sviluppo web che si occupa di creare gli elementi non visibili agli utenti, come il lato server di un'applicazione.</p><h3 id="javascript"><strong>JavaScript</strong></h3><p>Mentre Python può essere usato per lo sviluppo back-end di un'applicazione web, JavaScript può essere usato sia per il back-end che il front-end di un'applicazione.</p><p>Il front-end è quella parte di un'applicazione che l'utente vede e con cui interagisce. Ogni volta che vedi o interagisci con un sito web o un'applicazione, stai usando JavaScript "dietro le quinte".</p><p>Analogamente, quando interagisci con un'app mobile, potresti usare JavaScript, in quanto framework come <a href="https://reactnative.dev/">React Native</a> ci permettono di scrivere applicazioni che si adattano a diverse piattaforme.</p><p>JavaScript è così ampiamente utilizzato nello sviluppo web, perché è un linguaggio versatile e fornisce gli strumenti necessari a sviluppare i vari componenti di un'applicazione web.</p><h3 id="differenze-tra-le-applicazioni-di-python-e-javascript"><strong>Differenze tra le applicazioni di Python e JavaScript</strong></h3><p>In breve, gli sviluppatori usano Python per una serie di applicazioni scientifiche, e JavaScript per lo sviluppo web, per funzionalità rivolte agli utenti e per i server.</p><h2 id="-python-vs-javascript-sintassi"><strong>🔸 Python vs JavaScript: sintassi</strong></h2><p>Adesso che sai per cosa vengono usati, vediamo come sono scritti e quali sono le differenze nella loro sintassi.</p><p>Parleremo delle differenze tra i loro elementi principali:</p><ul><li>Blocchi di codice</li><li>Definizione delle variabili</li><li>Convenzioni di nomenclatura delle variabili</li><li>Costanti</li><li>Tipi di dati e valori</li><li>Commenti</li><li>Strutture di dati integrate</li><li>Operatori</li><li>Input/Output</li><li>Istruzioni condizionali</li><li>Loop for e loop while</li><li>Funzioni</li><li>Programmazione orientata agli oggetti</li></ul><h2 id="blocchi-di-codice-in-python-e-javascript"><strong>Blocchi di codice in Python e JavaScript</strong></h2><p>Ogni linguaggio di programmazione possiede il proprio stile per definire i blocchi di codice. Vediamo le differenze tra Python e JavaScript:</p><h3 id="definire-i-blocchi-di-codice-in-python"><strong>Definire i blocchi di codice in Python</strong></h3><p>Python si basa sull'indentazione per definire i blocchi di codice. Quando una serie di righe di codice continue viene indentata allo stesso livello, viene considerata parte dello stesso blocco di codice.</p><p>Utilizziamo l'indentazione per definire condizionali, funzioni, loop e in pratica ogni istruzione composta in Python.</p><p>Questi sono alcuni esempi:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-127.png" class="kg-image" alt="image-127" width="600" height="400" loading="lazy"><figcaption>Uso dell'indentazione per definire blocchi di codice in Python</figcaption></figure><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> a breve vedremo le differenze specifiche tra questi elementi in Python e JavaScript. Per ora, concentrati sull'indentazione.</p><h3 id="definire-i-blocchi-di-codice-in-javascript"><strong>Definire i blocchi di codice in JavaScript</strong></h3><p>JavaScript, invece, fa uso delle parentesi graffe (<code><strong><strong>{}</strong></strong></code>) per raggruppare le istruzioni che appartengono allo stesso blocco di codice.</p><p>Ecco alcuni esempi:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/07/image-9.png" class="kg-image" alt="image-9" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/07/image-9.png 600w, https://www.freecodecamp.org/italian/news/content/images/2022/07/image-9.png 926w" width="926" height="174" loading="lazy"><figcaption>Uso delle parentesi graffe per definire blocchi di codice in JavaScript</figcaption></figure><h2 id="definizione-delle-variabili-in-python-e-javascript"><strong>Definizione delle variabili in Python e JavaScript</strong></h2><p>L'istruzione di assegnazione è una delle istruzioni fondamentali in qualsiasi linguaggio di programmazione. Vediamo come possiamo definire una variabile in Python e JavaScript.</p><h3 id="come-definire-una-variabile-in-python"><strong>Come definire una variabile in Python</strong></h3><p>Per definire una variabile in Python, scriviamo il nome della variabile seguito dal segno uguale (<code><strong><strong>=</strong></strong></code>) e il valore che desideriamo assegnare alla variabile.</p><p>In questo modo:</p><pre><code class="language-python">&lt;nome_variabile&gt; = &lt;valore&gt;</code></pre><p>Ad esempio:</p><pre><code class="language-python">x = 5</code></pre><h3 id="come-definire-una-variabile-in-javascript"><strong>Come definire una variabile in JavaScript</strong></h3><p>In JavaScript, la sintassi è molto simile, ma abbiamo bisogno di aggiungere la parola chiave <code><strong><strong>var</strong></strong></code> prima del nome della variabile e terminare la riga con i due punti (<code><strong><strong>;</strong></strong></code>).</p><p>In questo modo:</p><pre><code>var &lt;nome_variabile&gt; = &lt;valore&gt;;</code></pre><p><strong><strong>💡 Tip:</strong></strong> le variabili definite usando <code><strong><strong>var</strong></strong></code> possiedono una visibilità di funzione.</p><p>Ad esempio:</p><pre><code>var x = 5;</code></pre><p>Possiamo usare anche la parola chiave <code><strong><strong>let</strong></strong></code>:</p><pre><code>let &lt;nome_variabile&gt; = &lt;valore&gt;;</code></pre><p>Ad esempio:</p><pre><code>let x = 5;</code></pre><p><strong><strong>💡 </strong>Suggerimento<strong>: </strong></strong>in questo caso, usando <code><strong><strong>let</strong></strong></code>, la variabile ha una visibilità a livello di blocco e verrà riconosciuta solo all'interno del blocco di codice in cui viene definita.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-125.png" class="kg-image" alt="image-125" width="600" height="400" loading="lazy"><figcaption>Definizione delle variabili in Python e JavaScript</figcaption></figure><p>💡 Suggerimento<strong><strong>:</strong></strong> In JavaScript, la fine dell'istruzione viene contrassegnata dai due punti (<code>;</code>) mentre in Python, iniziamo semplicemente una nuova riga per definire la fine dell'istruzione.</p><h2 id="convenzioni-di-nomenclatura-delle-variabili-in-python-e-javascript"><strong>Convenzioni di nomenclatura delle variabili in Python e JavaScript</strong></h2><p>Python e JavaScript seguono due convenzioni diverse per la nomenclatura delle variabili.</p><h3 id="i-nomi-delle-variabili-in-python"><strong>I nomi delle variabili in Python</strong></h3><p>In Python, dovremmo utilizzare lo stile <code><strong><strong>snake_case</strong></strong></code>.</p><p>Secondo la <a href="https://www.python.org/dev/peps/pep-0008/#function-and-variable-names">guida allo stile di Python</a>:</p><blockquote>I nomi delle variabili seguono la stessa convenzione dei nomi delle funzioni.<br><br>I nomi delle funzioni dovrebbero essere <strong>minuscoli, con parole separate da trattini bassi</strong> per migliorare la leggibilità.</blockquote><p>Dunque, un tipico nome di una variabile in Python sarà:</p><pre><code class="language-python">first_name</code></pre><p>💡 <strong><strong>Tip:</strong></strong> la guida allo stile menziona anche che il "<code><strong><strong>mixedCase</strong></strong></code> è permesso solo in contesti in cui è già presente come stile prevalente, per mantenere la compatibilità".</p><h3 id="i-nomi-delle-variabili-in-javascript"><strong>I nomi delle variabili in JavaScript</strong></h3><p>In JavaScript, dovrebbe utilizzare lo stile <code><strong><strong>lowerCamelCase</strong></strong></code> (notazione a cammello). Il nome inizia con una lettera minuscola e poi ogni nuova parola inizia con una lettera maiuscola.</p><p>Secondo le <a href="https://developer.mozilla.org/en-US/docs/MDN/Guidelines/Code_guidelines/JavaScript#Variable_naming">linee guida di JavaScript</a> da MDN Web Docs:</p><blockquote>Per i nomi delle variabili, utilizza lo stile lowerCamelCasing e usa nomi concisi, leggibili e semantici dove appropriato.</blockquote><p>Ecco un tipico nome di una variabile in JavaScript:</p><pre><code class="language-javascript">firstName</code></pre><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-178.png" class="kg-image" alt="image-178" width="600" height="400" loading="lazy"></figure><h2 id="costanti-in-python-e-javascript"><strong>Costanti in Python e JavaScript</strong></h2><p>Bene, ora che sai qualcosa in più sulle variabili, parliamo un po' delle costanti. Le costanti sono valori che non cambiano durante l'esecuzione di un programma.</p><h3 id="come-definire-le-costanti-in-python"><strong>Come definire le costanti in Python</strong></h3><p>In Python, facciamo affidamento alle convenzioni di nomenclatura per definire le costanti. Infatti, non esistono regole rigide in questo linguaggio per evitare che un valore vari.</p><p>Secondo la <a href="https://www.python.org/dev/peps/pep-0008/#constants">guida allo stile di Python</a>:</p><blockquote>Le costanti sono generalmente definite al livello di un modulo e <strong>scritte in lettere maiuscole con parole separate da trattini bassi</strong>.</blockquote><p>Questo è lo stile di nomenclatura che dovremmo usare per definire una costante in Python:</p><pre><code class="language-python">NOME_DELLA_COSTANTE</code></pre><p>Ad esempio:</p><pre><code class="language-python">PERCENTUALE_TASSA = 32</code></pre><p>💡 Suggerimento<strong><strong>:</strong></strong> il nome scritto in maiuscolo ha la funzione di avvertimento, per noi e per altri sviluppatori. Il valore non dovrebbe essere modificato nel programma, ma tecnicamente, può essere modificato.</p><h3 id="come-definire-le-costanti-in-javascript"><strong>Come definire le costanti in JavaScript</strong></h3><p>In JavaScript, possiamo definire costanti che non possono essere cambiate nel programma e con un identificatore che non può essere riassegnato.</p><p>Questo, però, non vuol dire che il valore stesso non può essere cambiato.</p><p>Secondo l'articolo <code><strong><strong>const</strong></strong></code> in <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const">MDN Web Docs</a>:</p><blockquote>La dichiarazione <code>const</code><strong><strong> </strong></strong>crea un riferimento a un valore di sola lettura. <strong>Non </strong>vuol dire che il valore che contiene sia immutabile—solo che l'identificatore della variabile non può essere riassegnato. Ad esempio, nel caso in cui il contenuto sia un oggetto, il contenuto dell'oggetto (le sue proprietà) può essere alterato.</blockquote><p>Per definire una costante in JavaScript, aggiungiamo la parola chiave <code><strong><strong>const</strong></strong></code><strong><strong> </strong></strong>prima del nome della variabile:</p><pre><code class="language-JavaScript">const PERCENTUALE_TASSA = 32;</code></pre><p>Se proviamo a cambiare il valore della costante, vedremo il seguente errore:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/07/image-15.png" class="kg-image" alt="image-15" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/07/image-15.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/07/image-15.png 1000w, https://www.freecodecamp.org/italian/news/content/images/2022/07/image-15.png 1306w" sizes="(min-width: 1200px) 1200px" width="1306" height="240" loading="lazy"></figure><p>Quindi, il valore non può essere cambiato.</p><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> per eseguire e testare piccoli blocchi di codice JavaScript, puoi usare la <a href="https://developer.chrome.com/docs/devtools/">console DevTools di Chrome</a>.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-181.png" class="kg-image" alt="image-181" width="600" height="400" loading="lazy"></figure><h2 id="tipi-di-dati-e-valori-in-python-e-javascript"><strong>Tipi di dati e valori in Python e JavaScript</strong></h2><p>Vediamo le differenze principali tra i tipi di dati in Python e JavaScript.</p><h3 id="tipi-di-dati-numerici"><strong>Tipi di dati numerici</strong></h3><p><strong><strong>Python </strong></strong>ha tre tipi di dati numerici: <code>int</code> (numeri interi), &nbsp;<code>float</code> (floating-point numbers o numeri decimali) e <code>complex</code> (numeri complessi). Ognuno possiede proprietà, caratteristiche e applicazioni specifiche.</p><p><strong><strong>JavaScript </strong></strong>possiede solo due tipi di dati numerici: <code><strong><strong>Number</strong></strong></code> e <code><strong><strong>BigInt</strong></strong></code>. Gli interi e i decimali sono considerati entrambi di tipo <code><strong><strong>Number</strong></strong></code>.</p><p>Secondo l'articolo <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">Number</a> da MDN Web Docs:</p><blockquote>Un numero letterale come <code>37</code> nel codice JavaScript è un decimale e non un intero. Non esiste un tipo a parte per gli interi nelle applicazioni comuni (JavaScript adesso ha il tipo <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt">BigInt</a>, ma non è stato pensato per sostituire Number. <code>37</code> è ancora un Number e non un BigInt).</blockquote><h3 id="none-vs-null"><strong>None vs. null</strong></h3><p>In <strong><strong>Python</strong></strong>, esiste un valore speciale chiamato <code><strong><strong>None</strong></strong></code>, che usiamo tipicamente per indicare che una variabile non ha un valore in un punto particolare di un programma.</p><p>Il valore equivalente in <strong><strong>JavaScript </strong></strong>è <code><strong><strong>null</strong></strong></code>, che "rappresenta l'assenza intenzionale del valore di un oggetto" (<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null">fonte</a>).</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-144.png" class="kg-image" alt="image-144" width="600" height="400" loading="lazy"></figure><h3 id="il-valore-undefined"><strong>Il valore <code>undefined</code></strong></h3><p>In <strong><strong>JavaScript</strong></strong>, esiste un valore speciale che viene assegnato automaticamente quando dichiariamo una variabile senza assegnarle un valore iniziale.</p><p>Ecco un esempio:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-142.png" class="kg-image" alt="image-142" width="600" height="400" loading="lazy"></figure><p>Come puoi vedere, il valore della variabile <code><strong><strong>x</strong></strong></code> è <code><strong><strong>undefined</strong></strong></code>.</p><p>In <strong><strong>Python</strong></strong>, devi assegnare un valore iniziale alla variabile. Non è possibile dichiarare una variabile senza un valore iniziale.</p><p><strong><strong>💡 Tip: </strong></strong>puoi assegnare <code><strong><strong>None</strong></strong></code> come valore iniziale di una variabile in Python per rappresentare l'assenza di un valore.</p><h3 id="tipi-di-dati-primitivi-in-python-e-javascript"><strong>Tipi di dati primitivi in Python e JavaScript</strong></h3><p>I tipi di dati primitivi rappresentano i valori basilari con cui lavorare in un linguaggio di programmazione. Confrontiamo i tipi di dati primitivi di questi due linguaggi:</p><ul><li><strong><strong>Python </strong></strong>ha quattro tipi di dati primitivi: interi (<code>int</code>), decimali (<code>float</code>), booleani (<code>bool</code>) e stringhe (<code>str</code>).</li><li><strong><strong>JavaScript </strong></strong>ha sei tipi di dati primitivi: <code><strong><strong>undefined</strong></strong></code><strong><strong>,</strong></strong> booleani (<code>Boolean</code>), stringhe (<code>String</code>), numeri (<code>Number</code>), <code><strong><strong>BigInt</strong></strong></code> e <code><strong><strong>Symbol</strong></strong></code>.</li></ul><h2 id="come-scrivere-commenti-in-python-e-javascript"><strong>Come scrivere commenti in Python e JavaScript</strong></h2><p>I commenti sono molto importanti per scrivere del codice pulito e leggibile. Vediamo come usarli in Python e JavaScript:</p><h3 id="commenti-mono-riga"><strong>Commenti mono-riga</strong></h3><ul><li>In <strong><strong>Python</strong></strong>, usiamo il cancelletto (<code><strong><strong>#</strong></strong></code>) per scrivere un commento. Tutti i caratteri sulla riga dopo il simbolo vengono considerati parte del commento.</li><li>In <strong><strong>JavaScript</strong></strong>, utilizziamo due barre oblique (<code><strong><strong>//</strong></strong></code>) per iniziare un commento a singola riga.</li></ul><p>Ecco un esempio grafico:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-145.png" class="kg-image" alt="image-145" width="600" height="400" loading="lazy"></figure><p>In Python:</p><pre><code class="language-python"># Comment</code></pre><p>In JavaScript:</p><pre><code class="language-javascript">// Comment</code></pre><h3 id="commenti-multi-riga"><strong>Commenti multi-riga</strong></h3><ul><li>In <strong><strong>Python</strong></strong>, per scrivere un commento multi-riga, iniziamo ogni riga con un cancelletto.</li><li>In <strong><strong>JavaScript</strong></strong>, i commenti multi-riga partono con <code><strong><strong>/*</strong></strong></code> e finiscono con <code><strong><strong>*/</strong></strong></code>. Tutti i caratteri tra questi simboli vengono considerati parte del commento.</li></ul><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-146.png" class="kg-image" alt="image-146" width="600" height="400" loading="lazy"></figure><p>In Python:</p><pre><code class="language-python"># Multi-line comment 
# in Python to explain
# the code in detail.</code></pre><p>In JavaScript:</p><pre><code class="language-javascript">/* 
Multi-line comment 
in JavaScript to explain 
the code in detail.
*/</code></pre><h2 id="strutture-di-dati-integrate-in-python-e-javascript"><strong>Strutture di dati integrate in Python e JavaScript</strong></h2><p>Anche le strutture di dati integrate in Python e JavaScript presentano delle differenze sostanziali.</p><h3 id="tuple"><strong>Tuple</strong></h3><ul><li>In <strong><strong>Python</strong></strong>, è presente una struttura di dati integrata chiamata <strong><strong>tupl</strong>a</strong>,<strong><strong> </strong></strong>che è molto simile a una lista ma è immutabile. Non può essere cambiata durante l'esecuzione del programma, quindi viene usata per contenere dati che non devono essere modificati.</li><li>In <strong><strong>JavaScript</strong></strong>, non esiste una struttura di dati integrata con queste caratteristiche. Tuttavia, puoi realizzare una struttura di dati simile con alcune funzionalità del linguaggio.</li></ul><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-182.png" class="kg-image" alt="image-182" width="600" height="400" loading="lazy"></figure><h3 id="liste-vs-array"><strong>Liste vs Array</strong></h3><ul><li>In<strong><strong> Python,</strong></strong> le <strong><strong>list</strong>e<strong> </strong></strong>vengono usate per contenere sequenze di valori nella stessa struttura di dati. Possono essere modificate, indicizzate, divise e usate in un programma.</li><li>In <strong><strong>JavaScript</strong></strong>, una versione equivalente di questa struttura di dati è detta <strong><strong>array</strong></strong>.</li></ul><p>Ecco un esempio:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-147.png" class="kg-image" alt="image-147" width="600" height="400" loading="lazy"></figure><h3 id="hash-tables"><strong>Hash Tables</strong></h3><ul><li>In <strong><strong>Python</strong></strong>, esiste una struttura di dati integrata chiamata <strong><strong>di</strong>zionario</strong>,<strong> </strong>che ci aiuta a mappare dei dati tramite delle corrispondenze create da coppie chiave-valore. Funziona piuttosto bene come hash table.</li><li><strong><strong>JavaScript </strong></strong>non possiede una simile struttura di dati integrata, ma ci sono alcuni modi di riprodurre le sue funzionalità con determinati elementi del linguaggio.</li></ul><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-183.png" class="kg-image" alt="image-183" width="600" height="400" loading="lazy"></figure><h2 id="operatori-in-python-e-javascript"><strong>Operatori in Python e JavaScript</strong></h2><p>Gli operatori sono essenziali per scrivere espressioni in qualsiasi linguaggio di programmazione. Vediamo la differenze basilari tra Python e JavaScript.</p><h3 id="divisione-esatta"><strong>Divisione esatta</strong></h3><p>Mentre la maggior parte degli operatori aritmetici funziona allo stesso modo in Python e JavaScript, l'operatore di divisione esatta è un po' diverso.</p><ul><li>In <strong><strong>Python</strong></strong>, la divisione esatta (anche detta "intera") è rappresentata da una doppia barra obliqua (<code><strong><strong>//</strong></strong></code>).</li><li>In <strong><strong>JavaScript</strong></strong>, non esiste un operatore particolare per questa operazione. Invece, possiamo usare il metodo <code><strong><strong>Math.floor()</strong></strong></code> per arrotondare per difetto il risultato all'intero più vicino.</li></ul><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-149.png" class="kg-image" alt="image-149" width="600" height="400" loading="lazy"></figure><h3 id="confronto-di-valori-e-tipi"><strong>Confronto di valori e tipi</strong></h3><p>In <strong><strong>Python</strong></strong>, utilizziamo l'operatore <code><strong><strong>==</strong></strong></code> per valutare se due valori e i loro tipi di dati sono uguali.</p><p>Ad esempio:</p><pre><code class="language-python"># Confronto di due interi
&gt;&gt;&gt; 0 == 0     
True
# Confronto di un intero con una stringa
&gt;&gt;&gt; 0 == "0"
False</code></pre><p>Anche in <strong><strong>JavaScript</strong></strong>, è presente questo operatore, ma funziona in modo leggermente diverso dato che converte due oggetti nello stesso tipo di dato prima di effettuare il confronto.</p><p>Se controlliamo il risultato del confronto "intero vs. stringa" dell'esempio precedente usando JavaScript (<code>0 == "0"</code>), il risultato è <code><strong>t<strong>rue</strong></strong></code> invece di <code><strong><strong>False</strong></strong></code><strong><strong> </strong></strong>perché i valori vengono convertiti nello stesso tipo di dato prima di effettuare il confronto:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-150.png" class="kg-image" alt="image-150" width="600" height="400" loading="lazy"></figure><p>In JavaScript, per verificare se il valore e il tipo di dato sono entrambi uguali, abbiamo bisogno dell'operatore <code><strong><strong>===</strong></strong></code> (un simbolo uguale triplo).</p><p>Ora otteniamo il risultato che ci aspettavamo:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-151.png" class="kg-image" alt="image-151" width="600" height="400" loading="lazy"></figure><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> l'operatore <code><strong><strong>==</strong></strong></code> in Python agisce come l'operatore <code><strong><strong>===</strong></strong></code> in JavaScript.</p><h3 id="operatori-logici"><strong>Operatori logici</strong></h3><ul><li>In <strong><strong>Python</strong></strong>, i tre operatori logici sono: <code><strong><strong>and</strong></strong></code>, <code><strong><strong>or</strong></strong></code> e <code><strong><strong>not</strong></strong></code>.</li><li>In <strong><strong>JavaScript</strong></strong>, questi operatori sono: <code><strong><strong>&amp;&amp;</strong></strong></code>, <code><strong><strong>||</strong></strong></code>, and <code><strong><strong>!</strong></strong></code><strong><strong> </strong></strong>(rispettivamente).</li></ul><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-152.png" class="kg-image" alt="image-152" width="600" height="400" loading="lazy"></figure><h3 id="operatori-di-tipo"><strong>Operatori di tipo</strong></h3><ul><li>In <strong><strong>Python</strong></strong>, per verificare il tipo di un oggetto, usiamo la funzione <code><strong><strong>type()</strong></strong></code>.</li><li>In <strong><strong>JavaScript</strong></strong>, usiamo l'operatore <code><strong><strong>typeof</strong></strong></code>.</li></ul><p>Ecco una descrizione grafica della loro sintassi:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-153.png" class="kg-image" alt="image-153" width="600" height="400" loading="lazy"></figure><h2 id="input-e-output-in-python-e-javascript"><strong>Input e Output in Python e JavaScript</strong></h2><p>Richiedere un input e mostrare dei valori a un utente sono delle operazioni molto comuni. Vediamo come puoi farlo con Python e JavaScript.</p><h3 id="input"><strong>Input</strong></h3><ul><li>In <strong><strong>Python</strong></strong>, usiamo la funzione <code><strong><strong>input()</strong></strong></code> per richiedere un input utente. Scriviamo il messaggio all'interno delle parentesi.</li><li>In <strong><strong>JavaScript</strong></strong>, un'alternativa (se stai eseguendo il codice nel browser) è mostrare un piccolo prompt con <code><strong><strong>window.prompt(messag</strong>gio<strong>)</strong></strong></code><strong><strong> </strong></strong>e assegnare il risultato a una variabile.</li></ul><p>La differenza principale tra i due approcci è che in Python, l'utente sarà invitato a inserire un valore nella console, mentre in JavaScript, un piccolo prompt verrà visualizzato nel browser e chiederà all'utente di inserire un valore.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-161.png" class="kg-image" alt="image-161" width="600" height="400" loading="lazy"></figure><p>💡 Suggerimento<strong><strong>:</strong></strong> questo è ciò che vedrai nella console di Python per inserire un valore:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-184.png" class="kg-image" alt="image-184" width="600" height="400" loading="lazy"></figure><p>In JavaScript, se apri i DevTool di Chrome e inserisci nella console questa riga di codice:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-163.png" class="kg-image" alt="image-163" width="600" height="400" loading="lazy"></figure><p>Vedrai questo prompt:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-162.png" class="kg-image" alt="image-162" width="600" height="400" loading="lazy"><figcaption>Il prompt mostrato chiamando window.prompt()</figcaption></figure><h3 id="output"><strong>Output</strong></h3><ul><li>In <strong><strong>Python</strong></strong>, visualizziamo un valore nella console con la funzione <code><strong><strong>print()</strong></strong></code>, passando il valore tra le parentesi.</li><li>In <strong><strong>JavaScript</strong></strong>, visualizziamo un valore nella console usando <code><strong><strong>console.log()</strong></strong></code>, passando il valore tra le parentesi, allo stesso modo.</li></ul><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-164.png" class="kg-image" alt="image-164" width="600" height="400" loading="lazy"></figure><p>💡 <strong><strong>Tip:</strong></strong> se stai lavorando sul browser, puoi anche chiamare <code><strong><strong>alert()</strong></strong></code> per mostrare un piccolo prompt, passando un messaggio (o un valore) tra parentesi.</p><h2 id="istruzioni-condizionali-in-python-e-javascript"><strong>Istruzioni condizionali in Python e JavaScript</strong></h2><p>Con i condizionali, possiamo scegliere cosa accade in un programma a seconda che una specifica condizione sia <code><strong><strong>True</strong></strong></code> o <code><strong><strong>False</strong></strong></code>. Analizziamo le differenze tra Python e JavaScript.</p><h3 id="l-istruzione-if"><strong>L'istruzione <code>if</code></strong></h3><ul><li>In <strong><strong>Python</strong></strong>, ci basiamo sull'indentazione per indicare quali righe di codice appartengono al condizionale.</li><li>In <strong><strong>JavaScript</strong></strong>, dobbiamo inserire la condizione tra parentesi tonde e il codice tra parentesi graffe. Il codice deve anche essere indentato.</li></ul><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-154.png" class="kg-image" alt="image-154" width="600" height="400" loading="lazy"><figcaption>Condizionali in Python (sinistra) e JavaScript (destra)</figcaption></figure><h3 id="l-istruzione-if-else"><strong>L'istruzione <code>if/else</code></strong></h3><p>La clausola else è molto simile in entrambi i linguaggi. L'unica differenza è che:</p><ul><li>In <strong><strong>Python</strong></strong>,<strong><strong> </strong></strong>scriviamo due punti (<code><strong><strong>:</strong></strong></code>) dopo la parola chiave <code><strong><strong>else</strong></strong></code></li><li>In <strong><strong>JavaScript</strong></strong>, inseriamo il codice che appartiene alla clausola tra parentesi graffe (<code><strong><strong>{}</strong></strong></code>).</li></ul><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-155.png" class="kg-image" alt="image-155" width="600" height="400" loading="lazy"></figure><h3 id="condizioni-multiple"><strong>Condizioni multiple</strong></h3><p>Per scrivere condizioni multiple:</p><ul><li>In <strong><strong>Python</strong></strong>, usiamo la parola chiave <code><strong><strong>elif</strong></strong></code> seguita dalla condizione. Dopo la condizione aggiungiamo i due punti (<code>:</code>) e indentiamo il codice nella riga successiva.</li><li>In <strong><strong>JavaScript</strong></strong>, usiamo la parola chiave <code><strong><strong>else if</strong></strong></code><strong><strong> </strong></strong>seguita dalla condizione (tra parentesi). Dopo la condizione, indentiamo il codice all'interno de parentesi graffe.</li></ul><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-156.png" class="kg-image" alt="image-156" width="600" height="400" loading="lazy"><figcaption>Condizionali in Python (sinistra) e JavaScript (destra)</figcaption></figure><h3 id="switch-in-javascript"><strong>Switch in JavaScript</strong></h3><ul><li>In <strong><strong>JavaScript</strong></strong>, abbiamo una struttura di controllo aggiuntiva che possiamo usare per scegliere cosa eseguire in base al valore di un'espressione. Questa istruzione si chiama <code><strong><strong>switch</strong></strong></code>.</li><li><strong><strong>Python </strong></strong>non possiede questa tipologia di struttura di controllo integrata.</li></ul><p>Ecco la sintassi generica di questa istruzione:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-159.png" class="kg-image" alt="image-159" width="600" height="400" loading="lazy"><figcaption>Istruzione switch in JavaScript</figcaption></figure><p>In JavaScript:</p><pre><code class="language-javascript">switch (expression) {
    case value1:
        // Code
        break;
    case value2:
        // Code
        break;
    case value3:
        // Code
        break;
    default:
        // Code
}</code></pre><p><strong><strong>💡 </strong>Suggerimento<strong>: </strong></strong>puoi aggiungere casi a seconda delle necessità e l'espressione può essere una variabile.</p><h2 id="loop-for-e-loop-while-in-python-e-javascript"><strong>Loop for e loop while in Python e JavaScript</strong></h2><p>Adesso vediamo come possiamo definire diversi tipi di loop in Python e JavaScript e quali sono le differenze principali.</p><h3 id="loop-for"><strong>Loop for</strong></h3><p>La sintassi per definire un loop for in Python è relativamente più semplice che in JavaScript.</p><ul><li>In <strong><strong>Python</strong></strong>, scriviamo la parola chiave <code>for</code> seguita dal nome della variabile del loop, la parola chiave <code>in</code> e la chiamata della funzione <code>range()</code> specificando i parametri necessari. Poi, aggiungiamo i due punti (<code>:</code>) seguiti dal corpo del loop indentato.</li><li>In <strong><strong>JavaScript</strong></strong>, dobbiamo specificare esplicitamente alcuni valori. Iniziamo con la parola chiave <code>for</code> seguita da parentesi. All'interno delle parentesi, definiamo la variabile del loop con il suo valore iniziale, la condizione che deve risultare <code>False</code> per terminare il loop e come deve essere aggiornata la variabile in ogni iterazione. Poi, aggiungiamo le parentesi graffe per creare un blocco di codice in cui scrivere il corpo del loop indentato.</li></ul><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-165.png" class="kg-image" alt="image-165" width="600" height="400" loading="lazy"><figcaption>Loop for in Python (sinistra) e JavaScript (destra)</figcaption></figure><h3 id="iterare-sugli-iterabili"><strong>Iterare sugli iterabili</strong></h3><p>Possiamo usare un loop for in Python e JavaScript per iterare sugli elementi di un iterabile.</p><ul><li>In <strong><strong>Python</strong></strong>, scriviamo la parola chiave <code>for</code> seguita dalla variabile del loop, la parola chiave <code>in</code> e l'iterabile. Poi, aggiungiamo i due punti (<code>:</code>) e il corpo del loop (indentato).</li><li>In <strong><strong>JavaScript</strong></strong>, possiamo usare un loop <code><strong><strong>for .. of</strong></strong></code>. Scriviamo la parola chiave <code>for</code> seguita da parentesi al cui interno scriviamo la parola chiave <code>var</code> seguita dalla variabile del loop, la parola chiave <code>of</code> e l'iterabile. Inseriamo il corpo del loop tra parentesi graffe e poi lo indentiamo.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-167.png" class="kg-image" alt="image-167" width="600" height="400" loading="lazy"><figcaption>Loop for in Python (sinistra) e JavaScript (destra)</figcaption></figure><p>In <strong><strong>JavaScript</strong></strong>, esistono anche i loop <code><strong><strong>for .. in</strong></strong></code> per iterare sulle proprietà di un oggetto.</p><p>Secondo <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in">MDN Web Docs</a>:</p><blockquote>L'istruzione <strong><strong><code>for...in</code> </strong></strong>itera su tutte le proprietà enumerabili di un oggetto che sono connesse a stringhe (ignorando quelle connesse a Symbols), incluse le proprietà enumerabili ereditate. statement iterates over all enumerable properties of an object that are keyed by strings (ignoring ones keyed by Symbols), including inherited enumerable properties.</blockquote><p>Ecco un esempio:</p><pre><code class="language-javascript">const object = { a: 1, b: 2, c: 3 };

for (const property in object) {
  console.log(property, object[property]);
}</code></pre><p>L'output che otteniamo eseguendo questa riga di codice nella console dei DevTool di Chrome è:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-168.png" class="kg-image" alt="image-168" width="600" height="400" loading="lazy"></figure><h3 id="loop-while"><strong>Loop while</strong></h3><p>I loop while sono molto simili in Python e JavaScript.</p><ul><li>In <strong><strong>Python</strong></strong>, scriviamo la parola chiave <code>while</code> seguita dalla condizione, dai due punti (<code>:</code>) e, in una nuova riga, il corpo del loop (indentato).</li><li>In <strong><strong>JavaScript</strong></strong>, la sintassi è molto simile, ma occorre inserire la condizione tra parentesi tonde e il corpo del loop tra parentesi graffe.</li></ul><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-169.png" class="kg-image" alt="image-169" width="600" height="400" loading="lazy"><figcaption>While Loop in Python (left) and JavaScript (right)</figcaption></figure><h3 id="loop-do-while-in-javascript"><strong>Loop <code>do..while</code> in JavaScript</strong></h3><p><strong><strong>JavaScript</strong> </strong>possiede anche un tipo di loop che non è presente in Python.</p><p>Questo tipo di loop è detto <code><strong><strong>do..while</strong></strong></code>, perché svolge un'operazione almeno una volta e continua finché la condizione resta <code>True</code>.</p><p>La sintassi di base è:</p><pre><code class="language-javascript">do {
    // Code
} while (condition);</code></pre><p>💡 <strong>Suggerimento<strong>:</strong></strong> questo tipo di loop garantisce che il codice sia eseguito almeno una volta.</p><p>Questo è particolarmente utile se chiediamo un input a un utente. L'utente sarà invitato a inserire l'input e, nel caso sia valido, il programma potrà proseguire. Se l'input non è valido, all'utente verrà richiesto di reinserire un input finché non sarà valido.</p><h2 id="funzioni-in-python-e-javascript"><strong>Funzioni in Python e JavaScript</strong></h2><p>Le funzioni sono incredibilmente importanti per scrivere programmi concisi, gestibili e leggibili. La sintassi è molto simile in Python e JavaScript, ma analizziamo le differenze fondamentali.</p><ul><li>In <strong><strong>Python</strong></strong>, scriviamo la parola chiave <code><strong><strong>def</strong></strong></code> seguita dal nome della funzione e, tra parentesi, la lista dei parametri. Poi, aggiungiamo i due punti (<code>:</code>) e il corpo della funzione (indentato).</li><li>In <strong><strong>JavaScript</strong></strong>, le uniche differenze sono la definizione della funzione usando la parola chiave <code><strong><strong>function</strong></strong></code> e il corpo della funzione circondato da parentesi graffe.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-170.png" class="kg-image" alt="image-170" width="600" height="400" loading="lazy"><figcaption>Funzioni in Python (in alto) e JavaScript (in basso)</figcaption></figure><p>In aggiunta, c'è una differenza molto importante tra le funzioni in Python e JavaScript:</p><h3 id="numeri-di-argomenti-di-una-funzione"><strong>Numeri di argomenti di una funzione</strong></h3><ul><li>In <strong><strong>Python</strong></strong>, il numero di argomenti passati a una chiamata di funzione deve corrispondere al numero di parametri definiti nella sua definizione. Se ciò non accade, si verificherà un'eccezione.</li></ul><p>Ecco un esempio:</p><pre><code class="language-python">&gt;&gt;&gt; def foo(x, y):
	print(x, y)

	
&gt;&gt;&gt; foo(3, 4, 5)
Traceback (most recent call last):
  File "&lt;pyshell#3&gt;", line 1, in &lt;module&gt;
    foo(3, 4, 5)
TypeError: foo() takes 2 positional arguments but 3 were given</code></pre><ul><li>In <strong><strong>JavaScript</strong></strong>, questo non è necessario, dato che i parametri sono opzionali. Puoi chiamare una funzione con più o meno argomenti rispetto ai parametri definiti nella funzione. Agli argomenti mancanti viene assegnato il valore <code><strong><strong>undefined</strong></strong></code> di default e gli argomenti extra sono accessibili con l'oggetto <code><strong><strong>arguments</strong></strong></code>.</li></ul><p>Ecco un esempio in JavaScript:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-171.png" class="kg-image" alt="image-171" width="600" height="400" loading="lazy"></figure><p>Nota come la funzione è stata chiamata con tre argomenti ma solo due parametri sono stati inclusi nella lista dei parametri della definizione della funzione.</p><p>💡 <strong>Suggerimento<strong>:</strong></strong> per ottenere il numero di argomenti passati alla funzione, puoi usare <strong><strong><code>arguments.length</code> </strong></strong>all'interno della funzione.</p><h2 id="programmazione-orientata-agli-oggetti-in-python-e-javascript"><strong>Programmazione orientata agli oggetti in Python e JavaScript</strong></h2><p>Sia Python che JavaScript supportano la programmazione orientata agli oggetti, quindi vediamo come creare e utilizzare gli elementi principali di questo paradigma di programmazione.</p><h3 id="classi"><strong>Classi</strong></h3><p>La prima riga della definizione di una classe è molto simile in Python e JavaScript. Scriviamo la parola chiave <code><strong><strong>class</strong></strong></code> seguita dal nome della classe.</p><p>L'unica differenza è:</p><ul><li>In <strong><strong>Python</strong></strong>, aggiungiamo due punti (<code><strong><strong>:</strong></strong></code>) dopo il nome della classe</li><li>In <strong><strong>JavaScript</strong></strong>, circondiamo il contenuto della classe con parentesi graffe (<code><strong><strong>{}</strong></strong></code>)</li></ul><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-172.png" class="kg-image" alt="image-172" width="600" height="400" loading="lazy"><figcaption>Definizione di classe in Python (sinistra) e JavaScript (destra)</figcaption></figure><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> in Python e JavaScript, i nomi della classi dovrebbero iniziare con una lettera maiuscola così come ogni parola all'interno del nome della classe.</p><h3 id="costruttore-e-attributi"><strong>Costruttore e attributi</strong></h3><p>Il costruttore è un metodo speciale che viene chiamato per creare una nuova istanza di una classe (un nuovo oggetto). Lo scopo principale è inizializzare gli attributi dell'istanza.</p><ul><li>In <strong><strong>Python</strong></strong>, il costruttore che inizializza una nuova istanza è chiamato <code><strong>__i<strong>ni</strong>t__</strong></code>. Questo metodo viene chiamato automaticamente per inizializzare gli attributi quando viene creata una nuova istanza. La sua lista dei parametri definisce i valori da passare per creare l'istanza. Il primo parametro della lista è <code><strong><strong>self</strong></strong></code>. </li><li>In <strong><strong>JavaScript</strong></strong>, il metodo costruttore è chiamato <code><strong><strong>constructor</strong></strong></code> e, allo stesso modo, possiede una lista di parametri.</li></ul><p><strong><strong>💡 </strong>Suggerimento<strong>: </strong></strong>in Python, usiamo <code><strong><strong>self</strong></strong></code> per fare riferimento all'istanza, mentre in JavaScript usiamo <code><strong><strong>this</strong></strong></code>.</p><p>Per assegnare valori agli attributi in <strong><strong>Python</strong></strong>, usiamo questa sintassi:</p><pre><code>self.attributo = valore</code></pre><p>Mentre in <strong><strong>JavaScript</strong></strong> usiamo la sintassi:</p><pre><code>this.attributo = valore;</code></pre><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/01/image-174.png" class="kg-image" alt="image-174" width="600" height="400" loading="lazy"><figcaption>Classe di esempio in Python (sopra) e in JavaScript (sotto)</figcaption></figure><h2 id="metodi-in-python-e-javascript"><strong>Metodi in Python e JavaScript</strong></h2><ul><li>In <strong><strong>Python</strong></strong>, definiamo i metodi con la parola chiave <code><strong><strong>def</strong></strong></code> dal nome e la lista dei parametri tra parentesi. Il primo parametro della lista è <code><strong><strong>self</strong></strong></code> e si riferisce all'istanza che sta chiamando il metodo. Dopo la lista, aggiungiamo due punti (<code><strong><strong>:</strong></strong></code>) e il corpo del metodo indentato.</li></ul><p>Ecco un esempio:</p><figure class="kg-card kg-code-card"><pre><code class="language-python">class Circle:

	def __init__(self, radius, color):
		self.radius = radius
		self.color = color

	def calc_diameter(self):
		return self.radius * 2</code></pre><figcaption>Esempio: metodo di una classe in Python</figcaption></figure><ul><li>In <strong><strong>JavaScript</strong></strong>, i metodi vengono definiti scrivendo il loro nome seguito dalla lista dei parametri tra parentesi graffe. Dentro le parentesi, scriviamo il corpo del metodo.</li></ul><figure class="kg-card kg-code-card"><pre><code class="language-javascript">class Circle {

    constructor(radius, color) {
        this.radius = radius;
        this.color = color;
    }

    calcDiameter() {
        return this.radius * 2;
    }
}</code></pre><figcaption>Esempio: metodo di una classe in JavaScript</figcaption></figure><h3 id="istanze"><strong>Istanze</strong></h3><p>Per creare un'istanza di una classe:</p><ul><li>In <strong><strong>Python</strong></strong>, scriviamo il nome della classe e passiamo gli argomenti tra parentesi.</li></ul><pre><code class="language-python">my_circle = Circle(5, "Red")</code></pre><ul><li>In <strong><strong>JavaScript</strong></strong>, dobbiamo aggiungere la parola chiave <code><strong><strong>new</strong></strong></code> prima del nome della classe.</li></ul><pre><code class="language-javascript">my_circle = new Circle(5, "Red");</code></pre><h2 id="-ricapitolando"><strong>🔹 Ricapitolando</strong></h2><p>Python e JavaScript sono linguaggi molto utili e versatili con diverse applicazioni pratiche.</p><p>Python può essere usato per lo sviluppo web e per un'ampia serie di applicazioni, di cui molte a carattere scientifico. JavaScript è principalmente usato per lo sviluppo web (front-end e back-end) e per lo sviluppo di app mobile.</p><p>Hanno delle differenze importanti, ma presentano entrambi gli stessi elementi basilari di cui abbiamo bisogno per scrivere dei buoni programmi.</p><p><strong>Spero che quest'articolo ti sia piaciuto e che ti sia stato d'aiuto<strong>. </strong></strong>Adesso conosci le differenze fondamentali tra Python e JavaScript.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Linguaggi di programmazione interpretati e compilati: qual è la differenza? ]]>
                </title>
                <description>
                    <![CDATA[ Qualsiasi programma è costituito da un insieme di istruzioni, che si tratti di sommare due numeri o di inviare richieste di dati su internet. Compilatori e interpreti partono da un codice leggibile da una persona e lo convertono in una forma adatta ad essere letta da un computer. Nel linguaggio ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/linguaggi-di-programmazione-interpretati-e-compilati-qual-e-la-differenza/</link>
                <guid isPermaLink="false">623db2bd1a3f5a053195833f</guid>
                
                    <category>
                        <![CDATA[ linguaggi di programmazione ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Dario Di Cillo ]]>
                </dc:creator>
                <pubDate>Mon, 28 Mar 2022 12:50:02 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/03/5f9c9e00740569d1a4ca3acf.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/compiled-versus-interpreted-languages/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Interpreted vs Compiled Programming Languages: What's the Difference?</a>
      </p><p>Qualsiasi programma è costituito da un insieme di istruzioni, che si tratti di sommare due numeri o di inviare richieste di dati su internet. Compilatori e interpreti partono da un codice leggibile da una persona e lo convertono in una forma adatta ad essere letta da un computer.</p><p>Nel linguaggio compilato, la macchina svolge direttamente l'operazione di traduzione. Nel linguaggio interpretato, la fonte del codice non viene tradotta direttamente dalla macchina. In questo caso è un programma diverso, detto interprete, che legge ed esegue il codice.</p><p><strong><strong><strong>Ok… </strong></strong>ma cosa vuol dire<strong><strong> </strong></strong><em>realmente</em><strong><strong>?</strong></strong></strong></p><p>Immagina di voler preparare dell'hummus seguendo una ricetta scritta in greco antico. Ci sono due modi in cui puoi farlo, non conoscendo il greco antico.</p><p>Il primo è che qualcuno traduca la ricetta in italiano per te. Poi sarai in grado di leggere la ricetta in versione italiana (tu e chiunque altro conosca l'italiano) e preparare l'hummus. Pensa a questa ricetta tradotta come alla versione <em>compilata</em>.</p><p>Il secondo modo è che tu abbia un amico che conosce il greco antico. Quando sei pronto a preparare l'hummus, il tuo amico può sedersi accanto a te e tradurre la ricetta durante la preparazione del piatto. In questo caso, la versione della ricetta è <em>interpretata</em> e il tuo amico ne è l'interprete. &nbsp;</p><h3 id="linguaggi-compilati"><strong>Linguaggi compilati</strong></h3><p>I linguaggi compilati vengono convertiti direttamente nel codice macchina che viene eseguito dal processore. Di conseguenza, tendono ad essere più veloci ed efficienti da eseguire rispetto ai linguaggi interpretati. Inoltre, permettono allo sviluppatore di avere un maggior controllo sugli aspetti legati all'hardware, come la gestione della memoria e l'uso della CPU.</p><p>I linguaggi compilati necessitano di una fase di "costruzione"- all'inizio devono essere compilati manualmente. Occorre "ricostruire" il programma ogni volta che lo si vuole modificare. Nel nostro esempio dell'hummus, l'intera traduzione viene fatta prima che la ricetta arrivi a te. Se l'autore originale volesse usare un tipo diverso di olio di oliva, l'intera ricetta dovrebbe essere ritradotta interamente e mandata di nuovo a te.</p><p>Alcuni esempi di linguaggi compilati sono C, C++, Erlang, Haskell, Rust, and Go.</p><h3 id="linguaggi-interpretati"><strong>Linguaggi interpretati</strong></h3><p>Gli interpreti funzionano attraverso un programma che esegue ogni comando riga per riga. In questo caso, se l'autore decidesse di voler utilizzare un tipo diverso di olio di oliva, potrebbe cancellarlo e aggiungerne uno nuovo. Il tuo amico traduttore poi, ti riferirebbe del cambio avvenuto.</p><p>I linguaggi interpretati erano notevolmente più lenti dei linguaggi compilati. Adesso, con lo sviluppo della compilazione just-in-time, il divario sta diminuendo.</p><p>Esempi di linguaggi interpretati sono PHP, Ruby, Python, e JavaScript.</p><h3 id="un-piccolo-avvertimento"><strong>Un piccolo avvertimento</strong></h3><p>La maggior parte dei linguaggi può essere attuata sia in forma compilata che interpretata - il linguaggio in sé non deve essere necessariamente compilato o interpretato. In ogni caso, per semplicità, vengono generalmente identificati così.</p><p>Python, per esempio, può essere eseguito sia come linguaggio di programmazione compilato che &nbsp;interpretato in modo interattivo. Al contrario invece, la maggioranza dei strumenti da riga di comando, CLI, e shell possono essere classificati teoricamente come linguaggi interpretati.</p><h2 id="vantaggi-e-svantaggi"><strong>Vantaggi e svantaggi</strong></h2><h3 id="vantaggi-dei-linguaggi-compilati"><strong>Vantaggi dei linguaggi compilati</strong></h3><p>I programmi che vengono compilati nel codice macchina tendono a essere più veloci del quelli interpretati. Questo accade perché il processo di traduzione del codice durante l'esecuzione può sovraccaricare il sistema, rallentando il programma. </p><h3 id="svantaggi-dei-linguaggi-compilati"><strong>Svantaggi dei linguaggi compilati</strong></h3><p>Gli svantaggi più rilevanti sono:</p><ul><li>Più tempo necessario per completare la fase di compilazione prima di poter fare test</li><li>Dipendenza dalla piattaforma del codice binario generato</li></ul><h3 id="vantaggi-dei-linguaggi-interpretati"><strong>Vantaggi dei linguaggi interpretati</strong></h3><p>I linguaggi interpretati tendono ad essere più flessibili, offrendo spesso caratteristiche come la tipizzazione dinamica e programmi con minori dimensioni. Inoltre, dato che sono gli interpreti ad eseguire il codice sorgente, il codice stesso risulta una piattaforma indipendente.</p><h3 id="svantaggi-dei-linguaggi-interpretati"><strong>Svantaggi dei linguaggi interpretati</strong></h3><p>Lo svantaggio principale è la velocità di esecuzione tipicamente ridotta rispetto a quella dei linguaggio compilati.</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
