Python VS JavaScript

Python et Javascript sont deux langages populaires dans le monde de la programmation. Aussi populaires soient-ils, le choix d’un langage de programmation n’est pas anodin. Alors dans quel cas pourriez-vous être tentés de choisir l’un ou l’autre ?

Publié le par Gabriel Trouvé (mis à jour le )
paceTemps de lecture estimé : 30 minutes

Python et Javascript sont deux langages populaires dans le monde de la programmation. Aussi populaire soient-ils, le choix d’un langage de programmation n’est pas anodin. Alors dans quel cas pourriez-vous être tentés de choisir l’un ou l’autre ?

On va voir également pourquoi vous n’aurez peut-être pas besoin de choisir entre les deux, et dans quelles situations vous pourriez avoir besoin d’apprendre Python ET JavaScript.

Introduction

Python a été créé en 1991 par Guido van Rossum, et est utilisé dans de nombreux domaines notamment grâce au fait que Python est riche en bibliothèques et frameworks.

JavaScript a vu le jour en 1995 par Brendan Eich, et est utilisé principalement dans le développement web. Il convient de noter que JavaScript s’est émancipé de son étiquette “développement web” pour être utilisé dans d’autres domaines. Tout comme Python, JavaScript possède une multitude de bibliothèques et de frameworks.

Domaines d’application courants

Python: un langage polyvalent

Comme dit précédemment, Python est un langage de programmation très polyvalent car il est utilisé dans plusieurs domaines. Passons en revue les principaux domaines où est utilisé Python :

  • Data science (science de données). Python est très utilisé dans ce domaine et possède plusieurs bibliothèques telles que NumPy, Pandas et SciPy. Il existe même une application web, Jupyter Notebook dédiée à la data science.
  • Développement web. Concernant le développement web il existe plusieurs frameworks, don deux très populaire : Django et Flask. Si vous décidez d’utiliser Django pour un projet web, vous pouvez assez rapidement commencer un projet web très évolutif.
  • Le machine learning (apprentissage automatique). Python est un langage de choix pour le développement d’algorithmes d’apprentissage et d’intelligence artificielle. Encore une fois, plusieurs bibliothèques existent : TensorFlow, PyTorch, Keras, PyCaret et Scikit learn.
  • Développement de jeux. Développer des jeux 2D avec Python c’est possible avec la bibliothèque PyGame.
  • Développement d’applications de bureau. On évoquera Tkinter et PySide en ce qui concerne le développement de logiciels et d’interfaces utilisateur.
  • Développement IoT (Internet of Things). Python est utilisé dans le développement d’applications pour les objets connectés tels que les appareils connectés.
  • Réseau et administration système. Dans ce domaine il existe des bibliothèques comme paramiko et netmiko.

La liste de ces différents domaines n’est pas exhaustive.

Mais elle vous donne déjà un aperçu des domaines dans lesquels Python est utilisé.

JavaScript: un langage de développement web ?

Les pages web n’ont pas toujours été dynamiques. JavaScript a permis la dynamisation de pages web côté client. Bien qu’il existe des frameworks orientés client tels que JQuery, AngularJS et React ; JavaScript a dépassé sa vocation d’origine en pouvant être utilisé côté serveur (coucou NodeJS).

Aujourd'hui JavaScript est utilisé dans différents domaines :

  • Le développement web. Comme nous venons de le voir, Javascript n’est pas seulement un langage de front-end mais aussi un langage back-end.
  • Le développement d’applications mobiles. Pour ce faire il est possible d’utiliser vos applications web avec un framework tel que Cordova pour les transposer en applications mobiles.
  • Développement d’applications de bureau. À savoir que vous pouvez utiliser un framework tel que Electron pour créer des logiciels avec JavaScript.
  • Développement de jeux. Il est possible de créer des jeux en 2D et en 3D avec Javascript. Nous pouvons nommer des frameworks tels que PixiJS et Three JS. On ne peut pas parler de JavaScript sans parler de navigateur. En effet, avec HTML5 et WebGL il est possible de créer des jeux directement dans votre navigateur.
  • Développement d’intelligence artificielle. Avec une bibliothèque comme TensorFlow.js il est possible de déployer des modèles d’IA, bien que Python reste le langage le plus utilisé dans ce domaine.
  • Extensions de navigateur. Étendre les fonctionnalités des navigateurs est possible avec Javascript en développent des extensions et plug-ins.

Encore une fois la liste ci-dessus n’est pas exhaustive. La communauté JavaScript est très active et il existe une multitude de bibliothèques disponibles pour différents domaines d’utilisation.

Différences de syntaxe entre Python et JavaScript

La première différence qui saute aux yeux (littéralement) c'est bien entendu les différences de syntaxe qui existent entre les deux langages. Bien qu'ils restent assez proches, la syntaxe de Python est connue pour être plus minimaliste (et donc plus facile à apprendre).

Délimitation des blocs

Avec Python on utilisera l’indentation pour délimiter les blocs de code. Ce qui facilite la compréhension de la structure du programme.

age = 20

if age >= 18:
    print("Vous êtes majeur.")
else:
    print("Vous êtes mineur.")

Avec JavaScript ce sont les accolades qui vont délimiter les blocs. De ce fait la syntaxe offre une plus grande flexibilité quant à la façon d’écrire notre code.

let age = 20;

if (age >= 18) {
    console.log("Vous êtes majeur.");
} else {
    console.log("Vous êtes mineur.");
}

Ce code JavaScript est plus "verbeux" que le code Python, mais il offre l'avantage de pouvoir être écrit sur une seule ligne si on le souhaite :

let age = 20;if (age >= 18) {console.log("Vous êtes majeur.");} else {console.log("Vous êtes mineur.");}

Déclaration des variables

Lors de la déclaration d’une variable, il n’y a pas besoin de spécifier son type. Il suffit de lui attribuer la valeur voulue, et Python déterminera le type de la variable en fonction de la valeur affectée.

# Déclaration d'une variable sans spécifier son type
variable = 42

# Réaffectation de la variable avec une nouvelle valeur d'un type différent
variable = "Bonjour, monde !

À savoir que Python est un langage dynamique, ce qui signifie que le type de la variable peut être modifié au cours de l’exécution du programme.

Aussi, c’est un langage fortement typé.

C’est-à-dire que les variables ont un type défini, et que ce dernier ne peut pas être modifié implicitement. Ainsi les variables sont contrôlées en fonction de leur type.

Par exemple, il ne sera pas possible d’effectuer une opération arithmétique entre deux variables de types différents :

# Addition de deux entiers
a = 14
b = 1
c = a + b

print(c)  # Affiche 15 ✅

# Tentative d'addition d'un entier et d'une chaîne de caractères
a = 14
b = "1"

c = a + b  # Python lèvera une exception ❌
# TypeError: unsupported operand type(s) for +: 'int' and 'str'

Avec JavaScript il faut déclarer une variable avec le mot-clé var, let ou const.

Le choix du mot-clé déterminera la portée de la variable.

// Déclaration d'une variable sans valeur initiale
let age;

// Déclaration d'une variable avec une valeur initiale
let nom = "John";

// Utilisation de const pour une valeur immuable
const MESSAGE_BIENVENUE = "Hello World !";

// Déclaration d'une variable avec la portée globale (hors d'une fonction)
var langue = "français";

JavaScript est également un langage dynamique, comme Python.

Cependant, c’est un langage ayant un typage faible.

Cela signifie qu’il faut être très prudent car JavaScript peut effectuer des conversions de manière implicite. Vous risquer alors d’avoir des résultats inattendus !

let x = 10;  // nombre
let y = "7"; // chaîne de caractères

let result = x + y; // Une concaténation se produit mais pas d'addition

console.log(result); // Le résultat est "107"

Les boucles et conditions

Que ce soit Python ou JavaScript le fonctionnement de base reste le même. Nous pouvons faire le rapprochement avec ce que nous avons vu plus tôt sur la syntaxe.

Ci-dessous nous allons itérer sur une suite de données allant de 0 à 4 et afficher la valeur à chaque itération. On utilisera la boucle for.

D’abord avec Python où nous déclarons une variable i et une suite de données avec range.

for i in range(5):
    print(i)

Avec JavaScript nous déclarons une variable avec let i, puis une condition qui sera vérifiée avant chaque itération de la boucle, ici i < 5.

Si la condition est évaluée comme false la boucle se termine.

Pour que la condition puisse être évaluée à false on modifie la valeur de i en incrémentant 1 à chaque itération avec i++ (sans incrémenter i, la condition serait toujours vraie et la boucle ne pourrait pas s'arrêter).

for (let i = 0; i < 5; i++) {
    console.log(i);
}

Les conditions

En ce qui concerne les conditions Python et JavaScript utilisent le mot if suivi d’une expression booléenne pour évaluer une condition.

Avec Python l’opérateur d’égalité est == , et si on vérifie plusieurs conditions on utilisera elif.

x = 5

if x > 0:
    print("x est positif")
elif x < 0:
    print("x est négatif")
else:
    print("x est nul")

x = 10

if x > 5 and x == 10:
    print("x est supérieur à 5 et égal à 10")
else:
    print("Condition non satisfaite")

Quelques différences à noter avec JavaScript tel que l’utilisation de === comme opérateur d’égalité, et l’utilisation de else if lorsqu’on vérifie plusieurs conditions.

let x = 5;

if (x > 0) {
    console.log("x est positif");
} else if (x < 0) {
    console.log("x est négatif");
} else {
    console.log("x est nul");
}

x = 10;

if (x > 5 && x === 10) {
    console.log("x est supérieur à 5 et égal à 10");
} else {
    console.log("Condition non satisfaite");
}

Conclusion

Vous voyez avec ces quelques exemples que les deux langages ont une syntaxe assez proche, même s'il existe bien sûr des différences.

Il est ainsi assez facile de passer d'un langage à l'autre, même si Python est plus facile à apprendre du fait de sa syntaxe plus simple qui va droit au but.

Performances et vitesse d’exécution

Lors de l’exécution de tâches qui vont fortement solliciter le processeur, Python est un excellent choix.

JavaScript lui sera très performant pour le développement web front-end et c'est d'ailleurs en premier lieu pour cela que le langage a été créé.

En revanche, on privilégiera Python pour des tâches de traitement d'image, d’analyse de données et de machine learning, grâce à la facilité de Python de manipuler des données et les nombreuses librairies disponibles (Pillow, Pandas ou encore PyTorch pour ne citer qu'elles).

Quid du développement web back-end ?

Même si JavaScript est souvent considéré comme plus rapide que Python du fait de son moteur d’exécution optimisé pour les navigateurs modernes, la différence de performance dépendra de l’efficacité quant à l’utilisation des frameworks (par exemple NodeJS pour JavaScript et Django pour Python).

Il est important de développer le point ci-dessus : NodeJS et Django sont tous deux très efficaces et optimisés.

La différence de quelques millisecondes entre deux frameworks dans une situation similaire ne change pas grand-chose.

C’est surtout la façon dont vous construirez votre application qui fera la différence.

Par exemple en optimisant vos requêtes avec la base de données, l’intégration des images et l’utilisation de multiples librairies.

La différence principale dans les performances ne tient ainsi pas tant au langage ou framework qui est utilisé, mais plutôt de la qualité du code écrit par les développeurs.

Un code et des images mal optimisées sur un site ralentiront bien plus votre site que l'utilisation d'un framework plutôt qu'un autre.

Communauté et popularité

La communauté joue un rôle essentiel dans la vie d’un langage de programmation. Soyez rassurés, Python et JavaScript ont tous deux une communauté très active.

Pour preuve, prenez pour exemple des frameworks tels que React, Angular, Vue.JS, NodeJS pour JavaScript, et Django, Pandas, TensorFlow, NumPy et PyTorch pour Python.

Et c'est loin d'être une liste exhaustive !

Vous pouvez faire un tour sur PyPi.org (Python Package Index) pour vous rendre compte de l'étendue des librairies disponibles (plus de 460,000 à l'heure où nous écrivons ces lignes).

Une envie de sortir et de rencontrer d’autres développeurs utilisant le même langage que vous (ou pas ) ?

Côté Python il existe plusieurs évènements comme la Pycon, la DjangoCon, l’EuroPython et la PyData.

Avec JavaScript vous ne serez pas en reste non plus avec les JSConf, la React Conf, la Vue.js Global Summit ou encore la EmberConf.

Python ET JavaScript

Finalement, pPourquoi considérer Python et JavaScript comme des langages en compétition (vous en serez assez souvent témoin sur le web) alors qu’ils peuvent être vus comme des langages complémentaires ?

Il est tout à fait possible en tant que développeur de vouloir utiliser les deux à la fois.

Vous pouvez très bien utiliser Python pour l’analyse de données et le traitement d’informations puis utiliser JavaScript pour afficher une interface utilisateur interactive.

Python et JavaScript sont tous deux des langages de programmation populaires. Bien qu'ils soient utilisés pour des applications et des domaines différents, chacun est très polyvalent et peut être utilisé dans une variété de projets différents.

En fin de compte, la sélection de l'un ou l'autre de ces langages dépend des projets et des objectifs que veut atteindre le développeur.

Les deux langages ont leurs forces et leurs domaines d’application spécifiques. Il serait alors peut-être plus opportun de les considérer comme des langages complémentaires que des langages en opposition.

Bien sûr, si vous devez faire un choix lors de votre apprentissage, pensez tout d'abord aux domaines qui vous intéressent le plus.

Vous êtes intéressés par le traitement de données ? Python est plus approprié.

Vous êtes intéressés uniquement par le développement front-end ? JavaScript avec un framework comme React est très populaire.

Vous souhaitez devenir développeur Full Stack ? Vous pouvez commencer à apprendre Python et un framework comme Django pour le back-end puis apprendre JavaScript dans un second-temps pour ajouter de l'interactivité en front à vos interfaces.

Il est donc plus que probable que dans votre carrière vous soyez amené à apprendre ces deux langages.

Il ne vous reste donc plus qu'à tester les deux langages pour faire votre choix quant à celui que vous apprendrez en premier.