Quel(s) langages apprendre ?

Bonjour,
J’ai l’intention d’apprendre un langage, je sais pas lequel choisir.
Car je connais simplement les noms des langages courant comme: c, c++, perl, python, java, ect sans connaître rien en leur capacité (utilisation ect).
J’ai toujours été attirer par perl, sans jamais avoir codé je sais pas pourquoi, peut-être du fait que php que je connais vient du perl.

Mon but pour le moment: rien de vraiment précis.
C-à-d, je veux apprendre un langage, pas pour le fric ou le professionnel, mais pour faire des choses utiles qui me serviront.

D’une part pour le niveau web:

  • site web: un site web dynamique
    (Je m’y connais déjà au php, mais sa reste un langage web, j’aimerais plutôt utiliser un langage du système avec toute sa puissance.)

D’autre part script et logiciel (fenêtrer donc logiciel graphique):

  • script: faire des tâches précis (comme, faire une sauvegarde config/paramètre du système/logiciel et documents personnel, lancer une musique et mon navigateur internet dès que ma session sous X s’ouvre, ect)

  • logiciel fenêtrer: exemple faire une calculatrice, un logiciel qui permet de stocker des données comme un bloc note de manière catégorique, application messagerie en mode fenêtrer ou comme certain irc que j’avais vu sur image le chat est intégrer dans la console, ou même un logiciel que j’avais en tête de faire: afficher un site web précis dans une application, ect…

not: ce que je viens de dire (les exemples), sont tous ou presque déjà fait et utilisable, copier/coller, mais je veux pouvoir les programmer moi même, faire des choses plus personnalisable, et plus complexe.

L’explication du titre de mon sujet auquel j’ai ajouté un u[/u]: quelu[/u] langage apprendre ?
Je sais qu’il y a des langages bas niveau et haut niveau.
Peut-être qu’il me serait bien d’apprendre un langage de chaque niveau et qui se complète bien ? (ou inutile pour mon cas)

Donc en résumer de tous ce que j’ai dis ci-dessus, quel langage me conseillerez-vous ?

Sans voir les capacités, juste niveau écriture du langage, entre python et perl.
J’ai pu remarquer depuis ce site: strombergers.com/python/, que python est plus lisible niveau programmation.

D’après un autre site que j’ai pas sous la main, j’avais vu des exemples où perl faisait le même résultat que python en par exemple 3 ligne contrairement à python une 10’aine.
Bien entendu c’est pas toujours le cas, mais perl à toujours un avance et parfois très remarquable.

Donc j’en réduit (programmation pas capacité):
Perl est plus complexe, mais plus court et python l’inverse simple et long.

J’ai aussi lu que python est plus rapide que perl vrai ou faux, je vais vérifier en détaille leur niveau performance ainsi leur capacité pour voir ce que je pourrais en faire avec.

Cela dépend de plusieurs critères:

  • du temps et de l’énergie disponible
  • de l’usage ( un type de projet, connaître et gérer son système, apprendre les bases etc… )
  • peut-être aussi du style personnel ( certains sont plus doués pour les langues orientales, le latin , l’anglais, ou le verlan ! )

Pour ma part, totalement autodidacte, limité par l’âge et une profession très absorbante, et par une paresse croissante, j’ai beaucoup appris en tombant “par hasard” sur Perl, puis par nécessité sur bash.
Avec 2 nuances:
j’ai commencé à m’initier avec basic puis pascal sur un win3.1 dans les années 80 ( 85…92),
je pense que la qualité de l’écriture ( et des traductions ) et les qualités didactiques des auteurs jouent aussi un grand rôle, ainsi qu’une grande patience eu égard à mes très faibles performances.

Pour des projets web, il est classique et sans doute inévitable de connaître PHP et javascript, mais ce n’ est pas mon cas.

Pour la facilité et l’efficacité d’un langage objet, il semblerait que python ait la cote ( mais il y en a d’autres )

Les assembleur, C ada et autres nécessitent beaucoup de travail et me semblent réservés à des pro, car tout ce qui peut servir aux autres a déjà été programmé et plus ou moins intégré aux autres langages ( impression de béotien… )

Pour ma part, je persiste à cultiver mon Perl, car très polyvalent ( pour le style ) et proche d’un langage naturel ( sauf les expressions régulières, qui sont aussi l’une de ses forces ), et bash pour des scripts simples ( automatisation de tâches, tâches complexes en ligne de commande etc … )

Il me semble que, outre les programmes de compétitions en C, les langages les plus courants utilisés sur ma machine ( dans les paquets Debian ) sont en Perl en bash ou sh posixly correct, et de nombreux logiciels sympas en python, simple impression à vérifier.

Mais pour moi, l’essentiel c’est le fun, le plaisir d’apprendre, de poser et tenter de résoudre des problèmes. Pour l’efficacité, je laisse la parole aux autres.

:text-welcomewave:

PS
autres critères: ( entre Python, seulement objet et Perl qui mélange les 2 approches, peut-être )

Ci dessous les titres de paragraphe de: “De l’art de progammer en Perl” Damian Conway (trad: Philippe Bruhat ,Jérôme Fenal et Jean Forget ) ed O’Reilly p326-328, “Critères pour choisir l’orientation Objet”:

[quote]“Lorsque vous décidez d’utiliser ou non l’orientation objet, cherchez les éléments du problème ( ou de sa solution ) qui pourraient suggérer que l’ OO est adaptée.Par exemple, l’orientation objet peut être une approche correcte dans l’une de ces situations:”

  • La taille du système à développer est importante ou susceptible de le devenir
    -Les données peuvent d’agréger en structures de manière évidente, surtout s’il y a une grande quantité de données à agréger
    -Les différents types d’aggrégats de données s’agencent dans une hiérarchie naturelle favorable à l’utilisation de l’héritage e du polymorphisme
    -Vous devez appliquer de nombreuses opérations différentes sur un élément de données
    -Vous devez appliquez de nombreuses opérations analogues sur des données apparentées avec toutefois de légères variations
  • Il est probable que vous deviez ajouter de nouveaux types de données ultérieurement
  • Les interventions typiques entre les pièces de données peuvent être représentées par des opérateurs [size=85]( peut-être spécifique à Perl .note de Joseph Tux)[/size]
  • L’implémentation des composants individuels est susceptible de changer au cours du temps
    -La conception du système est déjà orienté objet [size=85]( = ce n’est pas la liberté du programmeur . note de Joseph Tux )[/size]
    -De nombreux autres programmeurs utiliseront vos modules [size=85]( Un module Perl, c’est une bibliothèque . note de Joseph Tux)[/size][/quote]

Le meilleur.

Autre critère: dans la vie, tu préfère les serpents ou les chameaux ? :laughing: :074

Bonjour,

1/ Je dirai d’après ce que tu écris Php, python ou ruby.
Le langage est une chose, mais le plus important maintenant, ce sont les objets/libraires/frameworks associés.

0/ Je commencerai par algorithmique (en pseudo langage) car une fois que l’algo est écrit, l’écriture du programme est plus simple et il y a moins d’erreur après.

2/ Je regarderai aussi du coté des tests, avec une méthode TDD (fr.wikipedia.org/wiki/Test_Driven_Development), car tu écris du code, mais tu le testes un paire de fois.
Et écrit du code, c’est une chose, écrire du code correct s’en est une autre !!!

Si tu veux trouver du boulot dans le développement par exemple, le critère n’est pas de maîtriser le meilleur des langages, mais les environnements qui sont demandés … Donc Java / .NET et de moins en moins PHP

@josephtux

J’adore faire de la programmation !
Jusqu’à maintenant j’ai toujours fait du php donc côté web, mais j’aimerais le faire aussi au niveau système, des scripts, des applications en mode graphiques ect.

L’énergie et le temps ne me manque pas, je suis étudiant (haute école), donc après les cours, j’ai toute ma soirée voir une partie de la matinée aussi (je dors pas beaucoup), je sors presque jamais de la maison d’ailleurs on me prend pour un antisocial un mec timide qui parle jamais , mais j’en ai rien à foutre, j’aime pas faire du chat avec les filles sur internet, sortir en boite avec ses potes, parler pour rien dire comme cet génération, mais voila c’est un choix, bien que mon entourage ne veulent pas ou ont du mal à comprendre…

J’aurais aimé répondre à tes question ou plutôt au texte que tu as cité pour choisir ou pas selon les critères.
Le problème est que je connais pas les langages et le fonctionnement des scripts et des applications graphique, donc par exemple je peux pas te dire si je devrais utilisé oui ou non l’orientation objet dans mon logiciel, c’est pour cela que j’avais essayer de donnée des exemples de ce que je pouvais faire avec le langage que j’apprendrais.

Bien sur que le chameaux, le serpent est l’animal que je déteste le plus.

Il me semble que tu me conseillerais le perl.

@jc1
Donc toi tu me conseilles python ou ruby.
Sans oublier les 2 autres points que tu as écrit, j’ai jeter un coup d’oeil, j’y verrais de manière plus détailler plus tard.

Je sais pas vraiment quoi te répondre.
Parlant d’environnement, les script / logiciel graphique que je ferais seront plus déstiné à mes propres besoin donc sa sera pour linux (debian), mais sa se pourrait que je devrais faire une application qui devra tourner sous linux et windows.

En faisant une petite recherche de rapidité, j’ai remarquer que C est extrêmement rapide par rapport aux autres langage (10x, 100x, 1000x), bien qu’il est plus dur.
Est-ce que les exemples que j’avais donné, sont-ils tous réalisable avec le C ?

Si oui, au lieu d’apprendre le C, je penses qu’il vaut mieux apprendre directement le C++.

édit:
J’ai débuter sur c++, j’ai déjà pas mal avancer, vu les base que j’avais déjà de visual basic (école) et php.

J’attend vos avis.

Bonjour,

Normalement, chaque langage a son domaine ou est plus à l’aise dans un domaine.
On essaie de tout faire avec un seul langage, alors que l’on devrait utiliser plusieurs langages en fonction des domaines.

Ensuite, si tu veux apprendre, il y a des langages qui sont plus faciles que d’autres.
Python est l’un de ceux là et il y a de très bons tutos pour apprendre.
De plus, c’est l’un des langages de construction de Linux et qui fonctionne aussi sous d’autres OS.

Après, tu peux utiliser php en programmation structurée ou objet ou comme un “phacochère”.
Le langage n’est qu’un support, pas l’objectif :wink:

Un bon livre sur le codage, “Coder proprement” de Robert C. Martin.

[quote=“kripteks”]En faisant une petite recherche de rapidité, j’ai remarquer que C est extrêmement rapide par rapport aux autres langage (10x, 100x, 1000x), bien qu’il est plus dur.
Est-ce que les exemples que j’avais donné, sont-ils tous réalisable avec le C ?

Si oui, au lieu d’apprendre le C, je penses qu’il vaut mieux apprendre directement le C++.

édit:
J’ai débuter sur c++, j’ai déjà pas mal avancer, vu les base que j’avais déjà de visual basic (école) et php.

J’attend vos avis.[/quote]

le C++ est celui que je préfère, parce qu’il permet casiment de tout faire ,mai surtout parce qu’il a un typage fort et orienter objet.
Le C est mieux pour le systeme car tout est coder avec ou presque.
Le c++ permet d’importer des api C mai ce n’ est pas vraiment fait pour (wrapper)
pour le web c’est pas vraiment la tasse de the du c++ mai sa reste possible.

Ce qu’il faut aussi tenir compte c est les language comme le C ou le C++ demande plus de boulôt que le python (pour ne citer que lui…)donc sa prend plus de temps.
vala bon coding :wink:

Il faut pas se prendre la tête pour la performance. C’est pas très important.

Des langages tu en as des tas, tu fait déjà du PHP pour du web, je te déconseille les langages types C/C++/ADA/Fortran/etc. Tu mettrais du temps avant d’arriver à avoir quelque chose et c’est très frustrant. Je pense que ce diriger vers des langages interprétés qui visent à être généraliste peut être une bonne idée : python, perl, ruby, …

Ils te permettront de ne pas trop te perturber par rapport à PHP, mais tu verras ce sera déjà très différent et tu te tourneras vers d’autres langages plus tard quand tu verras leurs limites.

Je te déconseille Java/.Net si tu ne compte pas faire ça en entreprise.

[quote=“kripteks”]En faisant une petite recherche de rapidité, j’ai remarquer que C est extrêmement rapide par rapport aux autres langage (10x, 100x, 1000x), bien qu’il est plus dur.
Est-ce que les exemples que j’avais donné, sont-ils tous réalisable avec le C ?
[/quote]

C est certainement très rapide du point de vue de l’utilisateur, mais beaucoup plus long du point de vue du programmeur et même du développeur.
Python, c’est (un peu ) le contraire.

Aujourd’hui avec les ordinateurs surpuissants et très rapides, cet avantage du C est encore important pour le système et ce qui touche de près, pour écrire d’autres langages, pour les exigences temps-réels etc… mais pas forcément pour un projet orienté utilisateur lambda avec interface graphique qui fait de la comptabilité, joue et gère de la vidéo etc…

Perl dispose d’une impressionnante bibliothèque et d’une communauté très active.
Si tu habite Paris, Lyon, Toulouse ou ( je ne sais pas ), cela te donnera aussi l’occasion de rencontrer des personnes plus avancées, des professionnels et aussi d’autres amateurs.
Dans ton cas, il me semble utile de ne pas limiter tes rapports sociaux par une interface internet, mais aussi de te faire et d’entretenir des relations plus sensibles; c’est un entrainement nécessaire, car dans la vie les relations non choisies sont souvent les plus pénibles ( pas toujours ), et s’entrainer avec des quidams qui partage un intérêt et un goût prononcé pour la même chose que toi, c’est un trésor rare à ne pas ignorer. Donc, fait plaisir à ton entourage, sort, tu les auras moins sur le dos, et surtout pour te faire plaisir, avec d’autres programmeurs et apprentis programmeurs.
Les mongueurs de Perl se rencontrent régulièrement dans les grandes villes ( je crois avoir oublié Lille ).

Je ne te recommande pas Perl spécialement, n’étant pas assez compétent ni multilingue; simplement je t’ai adressé un retour de ma petite expérience et en quoi Perl m’a plu. Je ne te parle donc que de ce que je connais un tout petit peu et me fait plaisir. Je suis actif mais agé, et loin des grandes villes, donc je ne connais pas les Mongueurs de Perl, sinon par leur activité et l’impression de sérieux et de bonheur ( parfois de généreuse passion ) qu’ils me semblent transmettre.

Donc fais-toi plaisir, mais ose aussi te lancer dans ce monde plein de trésors humains, qui, comme toi sont suffisamment discrets pour ne pas trop faire parler d’eux, mais qui gagnent certainement comme toi, à être connu pour leurs talents et aussi pour mieux les développer.

Je suppose qu’il existe des associations comme les mongueurs de Perl, pour d’autres langages ou d’autres formes de partage du goût pour la programmation, commence peut-être par chercher ce qui existe près de chez toi, car finalement, avant de trouver ton style, les bases ( l’algorythmique, par exemple ) se retrouvent plus ou moins dans tous les langages, avec les limites des uns et des autres.

Tu as tout à y gagner, peut-être même à nous faire gagner.

Aller, je me sens devenir prosélythe, :violin: mais je ne vais pas renoncer au plaisir de vous faire partager cette page que je viens de redécouvrir (et que j’aurai du chercher lors d’une conversation précédente sur grep )

comment un module perl pulvérise les performances de grep “pourtant écrit en C” :

http://articles.mongueurs.net/magazines/perles/perles-29.html

Voici les langages que j’ai choisis:

Web: php
Car vous m’avez tous conseillez d’utiliser un langage orienté web plutôt qu’un langage orienté système.
Vu que je connais déjà le php, je l’apprendrais d’avantage.
De plus sa prochaine version (v6), sera orienté objet.

Script: bash
J’ai fait une petite recherche sur bash, il permet d’utiliser des commandes du système comme cp ect, de plus on sait faire des variables, conditions (if,else,…) ect…
Et pour compléter le tous, j’ai trouver un document avec 200 pages de cours sur la ligne de commande unix (bien que bash est différent des autres shell, j’y ferais gaf).

Logiciel graphique: c++
Raison: performance, bas niveau, limite.
Je suis désolé pour certains qui vont me taper dessus en disant la performance c’est pas le plus important, certe mais en plus d’être plus performant je pourrais faire avec c++ tous ce que perl et python le font, et j’aurais pas des limites qu’on python et perl. Le C est un des langages le plus rapide, grande écart de performance avec python et perl, mais aussi très dur à programmer/développé contrairement à la facilité de python et perl. Le C++ c’est comme une nouvelle version de C avec des ajouts positif qui est un genre d’amélioration du langage, niveau performance c’est pas très remarquable entre C et C++. J’aurais un puissant langage en main et pousser les limites.

Bonjour,

Php est orienté objet depuis quelques versions, il me semble.

D’un autre coté, l’objet n’est pas la panacée, cela va dépendre de ce que tu veux faire.
Très peu de personnes font du “full object”, car c’est très compliqué, cela demande de la réflexion, donc du temps, temps, qu’aujourd’hui peu de gens ont.

Il vaut mieux un programme bien écrit en programmation structurée qui fonctionne parfaitement, qu’un pseudo objet mal écrit et qui fonctionne moyennement …

Tu peux faire de très joli chose avec php, et des daubes aussi, farcies de failles de sécurité.
imho, c’est la qu’il faut creuser et bétonner avec php, et aussi toutes l’architecture sur laquelle repose php, OS, serveur web, lib php, …

Pour C++, cela va dépendre de ce que tu veux faire (encore une fois).
L’une des erreurs, imho, c’est de vouloir tout faire avec 1 seul langage.
Chaque langage à son domaine, or de celui-ci …

Après, avec une certaine expérience, passer d’un langage à un autre est relativement facile.
Beaucoup de langages ont une syntaxe à la C (:().
La plus value maintenant n’est plus dans le langage, mais dans les frameworks de développement et les bibliothèques de fonction/procédure/objet/classes qui vont avec. c’est là que tu gagne du temps (ou pas) et ed la performance, grâce à la réutilisabilité du code.

Un dernier point, l’objectif est l’application pas le code :wink:

L’eau ça mouille (du moins sous forme liquide ou gazeuse).