Origine et comparaison de langages de programmation

Tags :
  • MON
  • 2024-2025
  • temps 1
  • Novice
  • Langage de programmation
Auteurs :
  • Matthieu Dufort

MON traitant des langages de programmation pour comprendre quand préférer un langage par rapport à un autre.

Donner pour chacun des langages de programmation : l'origine, la raison de sa création, l'utilisation principale, les avantages et les inconvénient.

Contenu

Pour commencer ce MON, j'ai tout d'abord commencé par chercher des sites référençant tous les langages car beaucoup me sont totalement inconnu. Je me suis ensuite basé sur les sites web en lien ci dessus afin d'en séléctionner une bonne partie et faire un inventaire.

Je vais donc commencer par traiter ces langages en cherchant pour chacun :

JavaScript Javascript

Ce langage a été créé par Brendan Eich en 1995 pour Netscape afin de permettre l'interactivité sur les pages web. Il est utilisé dans le cadre du développement web dans les applications du coté du client mais aussi du coté du serveur (Node.js). Il est indispensable pour le développement web moderne.

Netscape est le premier navigateur web commercial distribué à grande échelle. Il a inspiré Mozilla mais est devenu depuis obsolète.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

Python Python

Python a été créé par Guido van Rossum en 1991 afin de fournir un langage simple et lisible pour les tâches de scripting. Il est utilisé pour faire du développement web, de la datascience, du scripting et des automatismes. C'est un langage assez facile d'accès et il est donc très recommandé pour les débutants ou pour les projets multidisciplinaire (grâce à sa forte adaptabilité).

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

Java Java

Ce langage a été développé par Sun Microsystems en 1995 afin de créer un langage portable pour les appareils embarqués. Il est très utilisé pour le développement d'application d'entreprise, d'application Android ou pour tous les systèmes embarqués. Il permet de gérer des applications volumineuses ou des systèmes complexes.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 3

C# C#

Le C est développé par Microsoft en 2000 dans le but de créer un langage moderne pour le développement sur la plateforme .NET. Il est utilisé pour le développement d'applications de bureau, de jeux mais aussi d'applications web. Par son fort lien avec Microsoft, il est recommandé pour les applications Windows et les applications d'entreprise

La Microsoft .NET comprend l'ensemble des produits microsoft pour rendre les applications portales sur internet. Il tourne sur un serveur web local qui permet de ne pas externaliser des données privées.

Elle comprend les sytèmes d'exploitations Microsoft, des moyens de communications, des bibliothèques logicielles, visual studio etc.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 3

PHP PHP

Il est créé par Rasmus Lerdorf en 1994 afin de faire du développement web côté serveur. Il est donc utilisé dans le cadre du développement web et surtout pour la gestion de contenu (WordPress...). Il permet d'être efficace et rapide lors du développement d'une application web.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

C++ C++

Développé par Bjarne Stroustrup en 1983, il est utilisé afin d'ajouter des fonctionnalités orientées objet à C. Les utilisations se rapproche donc du langage C : développement pour de systèmes, de jeux ainsi que d'application performante. Il est surtout utilisé pour ce dernier point car il est idéal pour répondre à un besoin de performances critiques.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 3

Ruby Ruby

Il est Créé par Yukihiro Matsumoto en 1995 afin de Créer un langage simple et agréable à utiliser. Il est utilisé pour faire des prototypes rapide et un peu de développement Web. Il est donc particulièrement idéal pour la réalisation de MVP (minimum viable product).

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

TypeScript TypeScript

Tout comme le C, ce langage est développé par Microsoft en 2012. Il cherche a améliorer JavaScript avec un typage statique. Il est donc utilisé aussi pour le développemnt d'application web mais plutôt sur des app plus complexe ou utilisant des framworks modernes (React...). Il est donc recommandé pour les grandes bases de codes.

Le typage statique consiste à définir les types des objets. Cela permet permet de détecter certaines erreurs avant le lancement du programme (erreur de type). Il est aussi possible alors de faire des optimisations en fonction du type. Enfin, le type étant toujours défini, il n'est plus nécessaire de le stocker et cela peut donc aussi gagner de la mémoire.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

Swift Swift

Ce langage est développé par Apple en 2014 pour Remplacer Objective-C pour le développement iOS et macOS. Il est donc utilisé dans des développements pour iOS et macOS et est utilie dans le cadre de projet Apple. On pourrait l'assimiler au C de Microsoft mais du coté Apple.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

Go Go

Développé par Google en 2009, il permet de fournir un langage efficace pour le développement système. Il est utilisé pour le développement de serveurs, microservices et systèmes distribués principalement. Il est idéal pour une application qui a besoin de forte performance.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

Kotlin Kotlin

Développé par JetBrains et lancé en 2011, il a pour objectif de créer un langage moderne pour remplacer Java sur Android. Il sert donc pour des application Android mais aussi pour des applications backend. Il est particulièrement recommandé pour le développement d'application mobile moderne.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

Rust Rust

Ce langage est Développé par Mozilla et lancé en 2010. Il a pour objectifs de fournir un langage performant avec une gestion de la mémoire sécurisée. Il est utilisé pour le développement de système, d'application et de jeux performants. Il est donc idéal lorsque l'on recherche de la sécurité et de la performance pour une application.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 3

Dart Dart

Développé par Google et lancé en 2011, il permet de créer un langage pour le développement d'applications web et mobiles. Il est donc idéale pour les projets multiplateforme car il est aussi bien compatible mobile que web.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

Scala Scala

Il est développé par Martin Odersky et lancé en 2003.Son objectif principale est de combiner la programmation orientée objet et la programmation fonctionnelle. Il est utilisé pour le traitement de données ainsi que pour la programmation d'applications d'entreprise. Il permet de traiter des problèmes complexes avec une forte performance.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 3

Perl Perl

Créé par Larry Wall en 1987 pour le traitement de texte et le scripting de système. Il est utilisé pour la réalisation de script, l'administration de système et le traitement de texte. Il est principalement recommandé dans le cadre de tache d'automatisation et dans les scripts rapide et peu complexe.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

R R

Ce langage est développé par Ross Ihaka et Robert Gentleman en 1993 afin d'analyser des données et produire des graphiques. Il est idéal pour des projets de recherche et d'analyse de données dans les domaines d'analyse, de statistique et de science de la données.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

Shell scripting Shell scripting (Bash)

Crée par Brian Fox en 1987, il permet de fournir un interpréteur de commandes pour Unix. Il est très utile pour les administrateur système et les développeurs DevOps afin d'automatiser les taches système et pour faire des scripts de déploiment.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

Elixir Elixir

Sorti par José Valim en 2011, c'est un langage fonctionnel pour la création d'applications évolutives. Il est utilisé pour les applications web et les systèmes distribués et est particulièrement idéal pour les applications nécessitant beaucoup de disponibilité.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

Lua Lua

Ce language provient du Brésil et apparaît en 1993. Il veut mettre a dispoisition un langage léger et extensible pour intégrer des fonctionnalités dans des applications. Il permet le dévelopement de jeux et de système embarqué.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

ObjectiveC Objective-C

Il est développé par Brad Cox et Tom Love dans les années 1980.L'objectif de ce langage est de combiner la programmation orientée objet avec C. Il est fait pour le développement d'application MacOS et iOS. Il s'est aujourd'hui fait majoritairement remplacé par swift mais il reste utilisé pour les applications fonctionnant avec avant l'apparition de swift.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

SQL SQL (Structured Query Language)

C'est un langage produit en 1970 par IBM qui permet de gérer et interroger des bases de données relationnelles. Il est utilisé pour la gestion et l'analyse de base de données.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

HTML HTML (HyperText Markup Language)

Créé par Tim Berners-Lee au début des années 1990 afin de Structurer le contenu sur le web. Il est utilisé uniquement pour apporter de la structure à une page web mais ne permet aucun dynamisme sans l'utilisation d'autre langage.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

CSS CSS (Cascading Style Sheets)

Ce langage est créé par le W3C en 1996 pour séparer le contenu et la présentation des pages web. Il se combine avec HTML en apportant le style sur la mise en forme.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

XML XML (eXtensible Markup Language)

Tout comme le CSS, il est Développé par le W3C dans les années 1990. Il a pour objectif de donner un format flexible pour le stockage et l'échange de données. Il permet la configuration d'application l'échange et le stockage de données

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

JSON JSON (JavaScript Object Notation)

Ce langage, similaire au XML est créé par Douglas Crockford dans les années 2000 afin de Fournir un format plus léger pour l'échange de données. Il permet donc de la même façon l'échange de données entre un serveur et un utilisateur ainsi que la configuration d'applications.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

Fortran Fortran (Formula Translation)

Créé en 1957 par IBM, sous la direction de John Backus. Il est développé pour effectuer les calculs scientifiques et l'ingénierie. Il excelle dans les calculs intensifs grâce à ses optimisations modernes. Il est massivement utilisé en physique, métérologie, chimie, astrologie et ingénierie pour la réalisation de calcul massif. Il est utilisé dans les super-computers pour la réalisation de simulation comme des simulation climat ou de mécanique des fluides. Il est indispensable pour tous les scientifiques travaillant ayant besoin de grande puissance de calcul

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

alt text COBOL (Common Business-Oriented Language)

Il est Créé en 1959 par le CODASYL (Conference on Data Systems Languages) sous la direction de Grace Hopper. COBOL a été conçu pour être un langage de programmation orienté vers les affaires permettant la gestion de grandes quantités de données. Il est très utilisé dans les secteurs publiques, bancaire et financier pour gérer des grandes quantités de transaction. Il tourne sur des grands ordinateurs gérant des millions de transactions par jours.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 2

Scratch Scratch

Ce langage est créé en 2003 au MIT Media Lab par Mitchel Resnick afin d'avoir un langage de programmation visuel destiné à initier es enfants et les débutants. Il permet de créer des projets interactifs facilement sans syntaxe complexe. Il est donc utilisé dans l'éducation pour apprendre les concepts fondamentaux de la programmation. Il peut aussi servir à faire des jeux et services pour enfant.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 0

Delphi Delphi

Delphi a été lancé en 1995 par Borland en tant qu'environnement de développement intégré (IDE) basé sur le langage Object Pascal. Delphi a été créé pour fournir une alternative rapide et efficace à la création d'applications sous Windows. Il combine la puissance du langage Pascal avec un IDE complet permettant le développement rapide d'applications (RAD). Il est très utlisé pour le développement d'application desktop sur windows. Il est possible aussi de faire des applications mobiles. Il permet de faire des interfaces complexes et de bien gérer les bases de données et sera donc majoritairement utilisé dans le cadre de projet ayant besoin de gérer ces deux choses.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1

VisualBasic Visual Basic

Visual Basic a été créé par Microsoft en 1991. il a été conçu pour permettre aux développeurs de créer facilement des applications Windows avec une interface graphique en utilisant un environnement de développement rapide. Il est principalement utilisé pour des applications de bureau. Il permet aussi l'optimisation d'office avec des macros (VBA). Il est aussi pratique pour faire des prototypes rapides. Il est donc utilisé pour des applications simple sans nécessité de performance.

Avantages :

Inconvénients :

Niveau de difficulté d'apprentissage : 1