Quel langage choisir?

Bonjour a tous! :006
Voilà, ca fait quelques temps que je veut me mettre a la programmation, dans le but de créer de petits programmes, et/ou de petits jeu, mais je ne sais pas quelle language est le plus performant et simple! J’aimerais avoir vos avis!

Merci beaucoup!

Astromatik

Le langage Brainfuck!

Dans le monde debian, le langage préféré, juste après le C qui est incontournable mais pas tout public, je dirai que c’est perl. Ensuite vient C++ qui complique tout puis python qui consomme pas mal. Il paraît que chez ubuntu, ils sont fans de python.

EDIT
Je précise un peu : pour les petits programmes plutôt perl et pour les jeux plutôt python.

Tout dépend de tes objectifs. Pour ce que tu décris :

  • Python semble tout à fait adapté : facile à apprendre, bien plus rapide que la plupart des langages interprétés, et avec un tas de bibliothèques pour t’aider.
  • C : très connu, et rapidité d’éxécution hors du commun
  • C++ pour les plus gros projets.

Plop,

Pour ce que ça vaut, j’ai appris avec Turbo Pascal (oui, je suis vieux :079 ) sans grand entrain, puis VBA pour Excel, puis perl, je n’ai pas du tout accroché, puis Java, là j’ai franchement détesté, et enfin python, et ça me convient parfaitement pour mon utilisation : extraction et traitements de données depuis des bases Oracle/postgresql/sqlite, interface par scripts cgi (flemme de faire un vrai GUI), macros pour Libre Office (multi plate-forme au passage, mes collègues étant sous windows), plus quelques amusements avec mon raspberry pi (timelapse notamment).

Bref, on peut (presque) tout faire avec python, même si ce langage n’est pas parfait pour tout, mais ça évite d’apprendre un langage parfait pour chaque tâche :116

Je précise que je ne suis ni programmeur, ni dans l’informatique, et que j’ai fait tout ça en autodidacte.

Après chacun voit midi à sa porte.

Usti

L’utilisation de python n’est pas trop pénible en terme d’adaptation (compatibilité d’un script d’une version à une autre) suite aux (nombreuses?) différentes versions du langage?

Mieux vaut-il utiliser la branche 2.7 ou 3.x??

J’ai appris avec python2.
Je n’ai eu aucun mal à passer sur le 3 : je trouve la syntaxe au contraire plus claire.

Cependant, je n’ai qu’une utilisation très basique de python. Cela a du causer plus de soucis aux développeurs avancés.

Un autre souci qui n’existe de plus est l’inexistence de certaines bibliothèques sur python3. Désormais la très grande partie a été portée vers python3.

Ok, vu ta réponse après l’édition du mien…

Question tout à fait inutile mais la manière de répondre est rigolote :

[code]% cat > count-pkg-in-langage.sh
#!/bin/sh

echo “$1 => $(debtags search “$1” | wc -l)”
% chmod +x count-pkg-in-langage.sh
% debtags cat | sed -n ‘s@.* (implemented-in::[^, ]), .@\1@pg’ | sort -u | xargs -n1 ./count-pkg-in-langage.sh[/code]
Résultat :

implemented-in::c => 4698 implemented-in::perl => 3578 implemented-in::c++ => 1923 implemented-in::python => 1114 implemented-in::java => 317 implemented-in::ruby => 302 implemented-in::shell => 218 implemented-in::ocaml => 215 implemented-in::lisp => 207 implemented-in::php => 138 implemented-in::TODO => 131 implemented-in::r => 99 implemented-in::haskell => 96 implemented-in::c-sharp => 79 implemented-in::tcl => 63 implemented-in::objc => 59 implemented-in::fortran => 48 implemented-in::lua => 44 implemented-in::scheme => 43 implemented-in::vala => 38 implemented-in::ecmascript => 34 implemented-in::ada => 16 implemented-in::pike => 15 implemented-in::ml => 3

Donc les 4 plus populaires sont dans l’ordre le C, le perl, le C++ et le python.

Mais ça n’a pas grand intérêt pour savoir avec quel langage débuter.

non, mais un script bash qui présente un grand intérêt (enfin pour moi au moins :mrgreen: )

étonnant que le shell soi aussi loin dans le classement, je pensais qu’il était largement utilisé sous Debian…pas assez fun peut être :005

Pour apprendre à programmer évite le C ou le C++.

La popularité n’a aucune pertinence lorsqu’il s’agit de choisir un langage pour débuter.

Je te conseille FreePascal (et Lazarus qui est le meilleur environnement de développement sous Linux) ou Python (très facile à apprendre mais très puissant). Pour Python les éditeurs Eric et SPE sont disponibles.

Pour installer Lazarus :
[mono]apt-get install lazarus[/mono]

Tu peux aussi essayer Racket, un dialecte de Scheme (Lisp) très utilisé pour l’enseignement. Il n’existe tout simplement pas de langage plus puissant et plus élégant.

De mon temps (il y a 15 ans de cela :033 ), on débutait en ADA car c’est un langage (arrếtez-moi si je me trompe) très rigoureux. Puis le C car très populaire. [size=50]Puis du Visual Basic[/size] :078
(quand j’y repense j’ai même eu fait du Cobol :116 )

Ceci étant, quel que soit le langage que l’on veut apprendre, il faudrait commencer par des notions d’algorithmique.

Yop,
Merci a tous pour vos réponses, mon choix se portera donc vers le Python, qui est “facile” a apprendre, mais puissant!
Merci a tous pour vos commentaires, ca fait plaisir, et a la prochaine. Je posterais surement de nouveau pour vous montrer ma progression et mes projets! :023

++!

EDIT: Quelqu’un aurais un bon site pour apprendre ce language ^^?

Bravo MisterFreez, je suis démasqué ! :slightly_smiling:
agensteel a tout à fait raison pour l’algorithmique mais dans tous les cas c’est en forgeant qu’on devient forgeron.

[quote=“Astromatik”]Yop,
Merci a tous pour vos réponses, mon choix se portera donc vers le Python, qui est “facile” a apprendre, mais puissant!
Merci a tous pour vos commentaires, ca fait plaisir, et a la prochaine. Je posterais surement de nouveau pour vous montrer ma progression et mes projets! :023

++!

EDIT: Quelqu’un aurais un bon site pour apprendre ce language ^^?[/quote]
http://fr.wikibooks.org/wiki/Apprendre_%C3%A0_programmer_avec_Python
http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-python
http://lfe.developpez.com/tutoriel/python/
http://fr.openclassrooms.com/informatique/cours/pygtk (pour créer des interfaces graphiques en Python)
http://python.lycee.free.fr/ (attention : pour Python 3)

Sinon pour commencer tu peux utiliser un simple éditeur comme Bluefish ou SciTe, puis ensuite passer à Eric ou SPE.

Bonjour,

Comme tout petit utilisateur de langage de programmation, j’ai appris à l’école - il y a bien longtemps - le C qui venait de naître :005 et il est vrai que son approche est un peu “hard”. Mais la puissance de la bête est sans commune mesure.

Lorsque j’ai commencé à travailler avec Linux et les logiciels comme Inkscape, GIMP ou Blender, j’ai été confronté à nécessité de pouvoir créer des “outils” conformes à mes besoins spécifiques.
Si C était probablement tout désigné, mes connaissances en la matière étaient bien faibles et mon manque de pratique énorme.

Alors je me suis reporté sur Python qui est supporté par ces applications.
Bien entendu, c’est un langage interprété qui demande assez bien de ressources système mais c’est un langage relativement aisé à apprendre et surtout extrêmement documenté en français sur la toile.

Si le besoin s’en fait sentir, il est également possible, dans un programme écrit en C d’y incorporer des codes Python. Cela permet de développer rapidement des codes en Python quitte à les réécrire, quand on a mieux le temps, en C.

Un numéro spécial de Linux Magazine Hors Série 70 traite justement du C et de la possibilité de le combiner avec Python. Ce magasine permet de se forger une (toute) petite idée du fonctionnement de C et permet une (toute) petite et élémentaire approche de la bête.

Pour ce qui est de l’outil de programmation, j’utilise Spyder qui me convient très bien.

:wink:

Chaque langage a un domaine de prédilection donc il n’est pas intéressant d’apprendre un langage suivant se popularité ou sa présence dans une distrib mais plutôt suivant ce que l’on veux en faire.

  • Le C est très orienté matériel, c’est un langage très puissant car très permissif, tu peux absolument TOUT y faire, mais du coup tu peux y faire énormément de connerie aussi.
  • Le C++ (je vais en faire crier certains) est une surcouche objet au C. Il permet plein de chose en essayant de combler ce qui est reproché au C.
  • Le Python est bien plus orienté «dev-frendly» donc il y a énormément de facilité et de sucre syntaxique qui en font un langage de choix quand on apprend a programmer.
  • Le Ruby (personne en a parlé) est un peu à l’image du Python mais avec une orientation objet bien plus poussé, du coup il est moins facile à l’apprentissage mais reste très agréable à l’utilisation.
  • Le Java est LE langage objet de référence et malgré tous ses défauts il reste très formateur quand on veux abordé la notion objet. Il est très verbeux et contraignant, mais la richesse de son eco-système est tel que TOUT (même de l’embarqué) est faisable avec.
  • Le Shell est aussi intéressant à apprendre du fait de son omniprésence dans le système, mais les différentes version (Bash, Zsh, Csh, Ksh, …) n’en fait pas quelque chose de très universel.

Ne connaissant pas assez Perl je ne peu en faire une critique.

Ensuite il faut te dire que une fois que tu as acquis les base de algorithmique et un premier langage la transition vers un autre langage du même type est facilité, si tu change de paradigme là le coût est plus élevé mais réalisable sans se décourager.

[quote]
Le Java est LE langage objet de référence et malgré tous ses défauts il reste très formateur quand on veux abordé la notion objet. Il est très verbeux et contraignant, mais la richesse de son eco-système est tel que TOUT (même de l’embarqué) est faisable avec.[/quote]
Hop hop hop
java est un contre exemple, c’est important de l’aborder pour savoir ce qu’il ne faut pas faire.

Pour répondre à la question du premier post :
prend n’importe lequel;
Tu n’en a rien à foutre des performances pour ton projet.
Tu n’en a rien à foutre de la “puissance” du langage pour ton projet.
Prend celui pour lequel tu as le plus de feeling.
Et ne prends pas java.

Le tite du sujet pique les yeux, language est pour les british!!

Richard Stallman préconise de commencer par le langage Lisp!
stallman.org/stallman-computing.html