Ad oggi essere in grado di programmare con Python e programmare in JavaScript ci rende degli sviluppatori molto versatili su diversi fronti. Questo perché stiamo parlando di due dei linguaggi di programmazione più usati a livello mondiale. In ambito lavorativo presentarsi come sviluppatore Python e JavaScript diventa un bel biglietto da visita, essendo questi alcuni dei linguaggi di programmazione più richiesti dalle software house in Europa e oltreoceano.
Imparare Python apre le porte a molte frontiere, quali intelligenza artificiale, sistemi ERP o analisi dei dati. Imparare JavaScript di contro, permette di padroneggiare in maniera egregia lo sviluppo web, andando man mano a capire come funzionano i vari framework che adottano questo linguaggio di programmazione.
Sono due linguaggi tanto potenti quanto diversi, anche se entrambi possono essere utilizzati per lo sviluppo web (attraverso vari framework o nativamente), con la bilancia che pesa verso JavaScript in quanto più versatile sia per il back-end, che per il front-end.
Il linguaggio JavaScript sintatticamente sarà molto diverso dal codice Python, per addentrarci meglio in questi linguaggi andiamo a scoprire quali sono queste grandi differenze:
Definizioni di variabili:
L’assegnamento è uno dei primi concetti che si assimilano quando si impara a programmare. Per definire una variabile in Python scriviamo il nome di quest’ultima seguita dal segno = e il valore che sarà assegnato a questa.
x = 7
In JavaScript la sintassi è simile, ma davanti al nome della variabile dobbiamo inserire la parola chiave var o let e alla fine della riga di codice il “;” per chiudere lo statement.
let x = 7;
NOTA BENE: in Python non è necessario inserire il “;” alla fine di ogni riga di codice. È una delle grandi differenze sintattiche rispetto la grande maggioranza dei linguaggi di programmazione più usati.
Blocchi di codice:
Lo stile sintattico di un linguaggio è definito proprio da questi blocchi. Nella programmazione in Python dobbiamo dimenticarci delle parentesi graffe per aprire/chiudere cicli, metodi, if-statement, rimpiazzate comodamente dai due punti “:”.
if x == 7:
print(x)
Nel linguaggio JavaScript si segue la sintassi delle parentesi graffe. Una sintassi che troviamo comunemente in quasi tutti i linguaggi di programmazione più richiesti (C#, Java, PHP ecc…).
function foo(x) {
console.log(x);
}
Funzioni
Introdotte in parte nell’esempio precedente, le funzioni in Python sono introdotte dalla parola chiave def che anticipa il nome della nostra funzione e le consuete parentesi tonde.
def function_name(x, y, …):
print(x+y)
In JavaScript vale ciò che è stato affermato in precedenza, con la differenza che la parola chiave ad anticipare il nome della funzione è function.
function function_name(x, y, …){
console.log(x+y);
}
C’è però una differenza sostanziale non propriamente sintattica. Nel codice Python, il numero di argomenti passati alla chiamata di funzione deve corrispondere al numero di parametri definiti nella definizione della funzione. In caso contrario, si verificherà un'eccezione. Nella programmazione JavaScript questo non è necessario, poiché i parametri sono opzionali.
Tipi di dati
La tipizzazione in Python è risicata, in quanto non abbiamo bisogno di definire il tipo di dato prima di dichiarare la variabile. I tipi di dati primitivi in Python sono: int, float, bool e str. Mentre in JavaScript ne troviamo diversi: Number, undefined, Boolean, String, Symbol, null e BigInt.
Se in JS null è considerato un tipo di dato primitivo, in Python non lo è, e, sintatticamente viene scritto in maniera diversa, ovvero None.
Scrivere i commenti
Per un codice Python facilmente comprensibile e ben documentato è importante sapere come scrivere i commenti. Vediamo un breve esempio:
x = 3+2 # x is the sum of two integers
Il commento corrisponde alla parte dopo il “#”, che spiega cosa fa quella specifica riga o blocco di codice.
Lato JS la sintassi dei commenti cambia, scriveremo il commento dopo “//”.
let x = 3+2 // x is the sum of two integers
Operatori
essenziali per scrivere espressioni nei linguaggi di programmazione, in Python si distinguono in vario modo. Nell’esempio che segue vengono mostrati in ordine: divisione tra interi, comparazione tra due valori o tipi di dati, operatori logici
x=5
y=6
x // y
if (x==y):
print(x+y)
if (x > y and x % 2):
print(x)
if (x>y or x<y):
print(x)
if (x not y):
print(x+y)
or, not e and sono gli operatori logici utili per creare una specifica condizione. Nello stesso ordine in JS hanno una sintassi totalmente diversa.
x=5;
y=6;
Math.floor(x/y);
if (x==y) {
console.log(x+y);
}
if (x > y && x % 2) {
console.log(x);
}
if (x>y || x<y) {
console.log(x);
}
if (x ! y) {
console.log(x+y);
}
L’unico operatore a restare uguale è il “==”. Se però in JavaScript vogliamo verificare se sia il valore che il tipo di dato sono uguali, dobbiamo ricorrere a questo operatore: “===”.
Cicli e if-statement
La differenza sintattica tra Python e JS negli if la si evince in quasi tutti gli esempi che sono stati riportati. Basta confrontarli per capire che sintatticamente cambia poco.
Nel ciclo for invece, in Python, la parola chiave sarà seguita dal nome della variabile del loop e da un’altra parola chiave in che chiama la funzione base range(). All’interno di questa funzione sarà necessario specificare i parametri entro cui eseguire il loop.
Il for in JavaScript è invece molto simile a quello di C# o Java. Dopo la parola chiave del loop, nelle parentesi tonde verrà inserito, in questo ordine, l’indice che dà il via al loop, la condizione entro cui il loop deve interrompersi e l’incremento di questo indice.
for i in range(n):
# do something
for (var i = 0; i < n; i++) {
// do something
}
Il while loop invece è molto simile, potremmo dire uguale, se non per la solita discrepanza tra i “:” (in Python) e le parentesi graffe (in JS).
while True:
#do something
while (True) {
// do something
}
Si evince quanto sintatticamente JavaScript e Python siano diversi. Questo potrebbe essere un ostacolo, ma bisogna immaginare come se si stesse imparando due nuove lingue. La sintassi dell’italiano non è uguale a quella dell’inglese, che non è paragonabile a quella del francese e via discorrendo. C’è da dire che Python, per essere un object-oriented, non è minimamente simile a tutti i suoi “colleghi”. Di contro JavaScript è sintatticamente molto simile a Java o C#, se vogliamo dirne un paio.
Sotto questo aspetto forse imparare JavaScript diventa più facile, in quanto non siamo tenuti a imparare da zero (sintatticamente) il linguaggio.
Questo non deve impedirti di cimentarti in un linguaggio piuttosto che un altro, anzi. Esercitarsi con due linguaggi di programmazione così sintatticamente distanti allena molto la memoria muscolare, utile per scrivere rapidamente codice pulito e comprensibile.
E tu quale preferisci?