Choisir un langage de programmation
Aujourd'hui, je vais vous présenter plusieurs langages de programmation, ainsi que leurs points forts et leurs points faibles dans certains domaines ou usages particuliers.
Choisir un langage de programmation ne se fait pas à la légère : si vous débutez un gros projet avec un langage de programmation peu adapté, vous serez handicapé durant toute la phase de développement, et changer de langage sera très difficile, voire impossible !
Je rappelle que vous pourrez faire n'importe quel programme avec n'importe quel langage. Chaque langage de programmation est cependant préféré dans un domaine précis. Généralement, ceux-ci présentent des avantages pris en compte dans le choix. Choisir un langage de programmation, c'est donc choisir un avantage particulier selon ses propriétés. Vous pouvez également choisir un langage selon ses usages :
La portabilité
Les programmeurs sont de plus en plus fainéants. Ils ne veulent pas perdre leur temps à recompiler, voire changer le code-source selon le système d'exploitation. C'est alors que sont nés les langages interprétés. Concrètement, il s'agit d'un fichier (le programme) qui contient le code-source, dont le contenu seront interprété par un autre logiciel déjà présent sur le système d'exploitation du client, qui peut devoir être installé s'il n'est pas présent de base.
Ces langages sont le plus souvent de haut niveau, ce qui facilite encore plus la portabilité ! Pour rappel, un langage de haut niveau est un langage éloigné du matériel, donc, plus proche du langage humain. Le programmeur n'a pas à se soucier du matériel.
Les ténors dans ce domaine sont alors Python et Java. Ce dernier est cependant plus répandu, car il est utilisé par de nombreuses autres applications, et permet de faire d'autres types de programmes, comme les applets web, par exemple. À noter que ces langages sont très flexibles, et restent très puissants, car ils possèdent souvent de nombreux modules, permettant d'ajouter des fonctionnalités à l'interpréteur basique. C'est juste que certains programmes pourront être réalisés plus rapidement
.
Un langage interprété est malheureusement plus lent qu'un langage compilé, car il doit passer par le traducteur en temps réel, lors de l'exécution. Cela équivaut aussi à se rendre indépendant d'un intermédiaire (c'est pour cela que je préfère Python à Java).
La fiabilité
Ici, je pense que les langages compilés, notamment le C et le C++, sont naturellement plus fiables et rapides. Si vous n'êtes pas un gros flemmard, je pense que ces langages de programmation sauront combler vos attentes
.
Il faut préciser que ce sont des langages de programmation bas niveau. Je vous conseille de passer par un autre langage plus facile à utiliser avant de vous attaquer à celui-ci, et de mourir éperonné par les pointeurs, les classes, l'héritage, et autres joyeusetés...
Lyaskator propose également dans les commentaires d'utiliser le langage Ada. Selon lui, il serait également très puissant, et le compilateur hurle au moindre petit problème (vous pouvez aussi simuler un comportement similaire avec GCC, il faut juste trouver les bonnes options). À tester, donc
.
Usages mathématiques et scientifiques
Là, sans aucun doute, vous devrez utiliser Python. Ses propriétés intéressantes, comme le "int" infini, ainsi que sa facilité d'utilisation, raviront tous les scientifiques en herbe ! Ici, la légèreté et les performances (rapidité) seront très importantes, surtout dans le cas de calculs complexes (la météo, par exemple).
La documentation est très riche, même en français : PythonFrance, AFPY... Parfait pour l'apprendre rapidement !
En outre, Python est un langage libre, ce qui garantit sa pérennité. C'est toujours un bon point
.
Certains langages très peu puissants, conçus pour les mathématiques, existent également. Je ne citerai que Coq, par exemple. Ils incluent déjà des fonctions intéressantes, comme les preuves, même s'ils existent déjà dans d'autres langages de programmation plus complets.
Créer un site web dynamique
J'ai bien dit "dynamique"
. XHTML et CSS ne sont pas des langages de programmation, mais de description. C'est au navigateur de déchiffrer tout ça à sa manière.
Pour un usage sur le web, il est préférable de se cantonner aux standards, et ne surtout pas utiliser de solutions propriétaires exotiques et dangereuses (l'ActiveX de Microsoft, par exemple).
Pour le langage serveur, PHP dans les pages dynamiques, couplé à MySQL pour les bases de données, est une excellente combinaison, parfaitement portable. Un hébergeur qui ne propose pas PHP & MySQL, c'est comme un maçon sans ciment
.
Quant au langage exécuté chez le client, le Javascript est assez bon, même s'il commence à casser les pieds de certaines personnes. Les codes JS ne doivent représenter au maximum que 10% du code initial sous peine de lourdeurs, et ne doit pas occuper des fonctions importantes. Désactivez Javascript dans un navigateur, et voyez le résultat. Les balises "noscript" ne sont pas faites pour rien
.
[Image]
Lisez aussi ces articles :
Aucun autre article en relation avec celui-ci.
Partager sur les réseaux sociaux :
Je songe de plus en plus utiliser c plus plus
Sinon merci d'avoir confirmé mon choix :p
@Med : De rien
.
Pour moi je trouve intéressant comme langage de programmation, le c++ et le java.
Sinon comme langage web j'aime bien le php et le mysql
@t1307 : Le Java, je le trouve un peu lourd à programmer, avec tout le paquet d'outils à installer...
Sinon, pour le PHP et le MySQL, forcément, ce sont presque les standards, vu qu'ils sont les plus utilisés...
Python for life que se soit pour le web (pratiquement obligé d'avoir un serveur dédié) et applicatif !
@Lan : Python est un langage de programmation pas mal du tout, interopérable sur quasiment tous les systèmes d'exploitation, et peut servir à de nombreux usages, que ce soit pour un programme local ou pour un programme serveur
.
Salut, j'ai quelques remarques :
« Je rappelle que vous pourrez faire n'importe quel programme avec n'importe quel langage. »
Je ne suis pas d'accord avec cette affirmation. Certains langages sont conçus pour des domaines très particuliers.
Tu te vois écrire un système d'exploitation en python ?
« C'est alors que sont nés les langages interprétés. Concrètement, il s'agit d'un fichier (le programme) qui contient le code-source, dont le contenu seront interprété par un autre logiciel déjà présent sur le système d'exploitation du client. »
Un logiciel qu'il faut installer sur le poste client pour que le logiciel puisse être lancé, ce qui peut être casse-pied.
« Ces langages sont le plus souvent de haut niveau, ce qui facilite encore plus la portabilité ! »
Il faudrait expliquer ce qui fait qu'un langage est de bas ou de haut niveau. Par exemple dire que les langages comme Python permettent de s'abstraire des détails matériels.
« À noter que ces langages sont très flexibles, et restent très puissantes. C'est juste que certains programmes pourront être réalisés plus rapidement . »
Flexibles comment ? Puissants comment ? Je pense qu'il serait bon de développer.
« Un langage interprété est malheureusement plus lent qu'un langage compilé, car il doit passer par le traducteur en temps réel, lors de l'exécution. »
Ça n'est pas aussi simple que ça, par exemple pour Java ce n'est pas un interpréteur mais un compilateur qui va traduire le code source du programme en bytecode pour la machine virtuelle Java.
« Cela équivaut aussi à se rendre indépendant d'un intermédiaire (c'est pour cela que je préfère Python à Java). »
Au contraire, ça rend le programme dépendant d'un programme tiers pour tourner (interpréteur, machine virtuelle). Alors qu'un programme compilé en code natif et qu'on fournit avec les fichiers des bibliothèques tierces qu'il utilise peut être lancé sans plus de cérémonie sur le système et l'architecture pour lesquels il a été compilé.
« Ici, je pense que les langages compilés, notamment le C et le C++, sont naturellement plus fiables et rapides. »
Ça dépend complètement de ce que tu entends par fiabilité. Le C est quand même un langage connu pour permettre de faire un maximum de choses sales (exemple : accéder à la case N+1 d'un tableau de N cases, bibliothèque standard dont certaines fonctions sont de véritables pièges si ont ne les maîtrise pas).
Pour la rapidité, c'est incontestable.
« L'inconvénient, c'est que programmer en C/C++ vous impose d'avoir une panoplie de logiciels, dont un IDE (un éditeur de texte est un peu trop minimal), et vous oblige à recompiler le langage à chaque modification ! Niveau légèreté, je pense qu'on a fait mieux ! »
Alors là, faudra demander à tout un tas de gens comment ils font pour écrire leurs programmes, parce que je connais beaucoup de programmeurs qui se contentent d'un éditeur de code (Vim, Emacs, Geany, Gedit, etc.).
Rien ne justifie l'usage d'un IDE.
Et tu voulais sans doute dire « recompiler le programme » et pas le langage !
« De plus, ce sont des langages de programmation bas niveau. Je vous conseille de passer par un autre langage plus facile à utiliser avant de vous attaquer à celui-ci, et de mourir éperonné par les pointeurs, structures de classes, et autres joyeusetés... »
Les structures de classes, jamais entendu parler (faute de frappe ?).
« Là, sans aucun doute, vous devrez utiliser Python. Ses propriétés intéressantes, comme le "int" infini, ainsi que sa facilité d'utilisation, raviront tous les scientifiques en herbe ! »
Tu pourrais développer stp ? Un « int » infini moi ça m'intéresse mais ça me laisse un peu sceptique quand je lis ça sans plus d'explications.
« Ici, la légèreté et les performances (rapidité) seront très importantes, surtout dans le cas de calculs complexes (la météo, par exemple). »
Ce qui donne un avantage indéniable à C, C++, Ada sur Python et Java. Un programme écrit en C, C++ ou en Ada est généralement plus léger et plus rapide (à moins d'avoir vraiment été codé très salement) car il ne requière pas l'exécution d'un programme tiers comme une machine virtuelle ou un interpréteur.
« En outre, Python est un langage libre, ce qui garantit sa pérennité. C'est toujours un bon point . »
Tu devrais donner des précisions, car langage libre tout court n'a pas beaucoup de sens. Ça peut vouloir dire que la norme du langage est accessible à tous, ou que l'implémentation principale du langage est libre.
La plupart des langages existants sont libres de ce point de vue.
Si je peux me permettre de rajouter mon grain de riz, je trouve que le langage Ada est excellent et conviendrait à beaucoup de monde :
_langage compilé offrant des performances similaires à celles qu'offrent C et C++
_insensible à la casse : qu'il y ait plein de mots écrits en majuscules dans ton code ne changera rien du tout
_un des langages les plus sûrs qui soient : le compilateur ne laisse rien passer et hurle au moindre doute. Ça permet de faire des programmes moins bogués et ça donne d'excellentes habitudes de programmation.
_l'implémentation principale est libre (compilateur Gnat qui est disponible pour beaucoup de plate-formes différentes).
_haut niveau d'abstraction, mais permet quand même de faire du bas niveau facilement si on le désire
_des tas de paradigmes de programmation supportés : programmation impérative, orientée objet, générique, concurrente, etc. Une caractéristique intéressante est que le langage de base incorpore tout le nécessaire pour faire des programmes multi-threadés.
_enfin, je trouve sa syntaxe très claire. Lire un code source en Ada est une balade de santé. Un hello world par exemple :
with ada.text_io; use ada.text_io;
procedure hello_world is
begin
put_line("Hello World!");
end hello_world;
Voilà voilà.
PS : j'aime bien ton système de captchas.
@Lyaskator : Vu comme ça, mon tutoriel semble bien incomplet
. Je vais relire tout ça, merci de ton attention
.
Salut !
Ça aurait été intéressant que tu parles de pearl et ruby aussi ! Ils sont assez proches de python non (enfin jen suis pas certain)
@Buzut : Je m'en occupe prochainement
.
J'attends ça avec impatience !
Merci au passage pour ta remarque fort pertinente sur l'évebtuel plantage de php
@buzut : De rien
.