Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/09/2009, à 13:07

Gaube65

Prmier langage de programmation

Bonjour à tous !

Ayant depuis peu plus de temps libre, j'ai décidé de me (re) intéresser à la programmation.
Mes premières armes datent de fort longtemps: un peu de "qBasic" et un zeste de "Fortran" à la Fac; depuis plus rien: pas le temps! Mon problème aujourd'hui est de choisir un langage de programmation pour redémarrer qui ne soit pas trop ardu et me permette de développer assez rapidement quelques applications simples pour mon PC perso (essentiellement scientifiques)
Quel langage me conseillez vous en premier lieu ?


La Vie c'est le Partage ...

Hors ligne

#2 Le 03/09/2009, à 13:13

bipede

Re : Prmier langage de programmation

Sans la moindre hésitation : Python
Langage de haut niveau, facile à appréhender, pur objet, multi-plateformes.

Une bonne base pour commencer...


Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.

Mon site: Les contributions du bipède

Hors ligne

#3 Le 03/09/2009, à 13:26

HP

Re : Prmier langage de programmation

Sujet récurrent…
http://www.google.fr/search?q=site%3Ahttp%3A%2F%2Fforum.ubuntu-fr.org%2F+d%C3%A9buter+programmation
http://www.google.fr/search?hl=fr&q=site%3Ahttp%3A%2F%2Fforum.ubuntu-fr.org%2F+premier+langage
http://www.google.fr/search?hl=fr&q=site%3Ahttp%3A%2F%2Fforum.ubuntu-fr.org%2F+d%C3%A9buter+programmation


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#4 Le 03/09/2009, à 14:37

Le Farfadet Spatial

Re : Prmier langage de programmation

Salut à tous !

   Comme l'a fait remarquer HP, le sujet revient régulièrement sur le forum. D'habitude, j'oriente le questionneur sur le fil de discussion suivant : http://forum.ubuntu-fr.org/viewtopic.php?id=150438. Cela dit, je profite de l'occasion pour remettre à jour mon intervention première (ça date d'il y a deux ans tout de même).

   La première chose à savoir, c'est qu'il n'y a pas de langage parfait, qui permet de tout faire. Il faut donc choisir le langage en fonction de ses qualités, mais aussi de ses défauts et surtout de ce que l'on compte faire. Donc, la première chose, c'est de bien évaluer ton besoin.

   D'autre part, l'essentiel, en programmation, c'est l'algorithmique. Je te conseille donc cet ouvrage :

      Introduction à l'algorithmique
      Thomas H. CORMEN, Charles E. LEISERSON, Ronald L. RIVEST et Clifford STEIN
      Dunod

   Le bouquin est énorme, mais tu ne le liras pas d'un coup. Par contre, il te suivra dans toute ta vie de programmeur, depuis tes premiers pas jusqu'à la pratique avancée. De plus, tu pourras en tirer profit quel que soit le langage que tu utiliseras. D'ailleurs, globalement, je te conseille le format livre pour tout ce qui est documentation, bien plus facile à utiliser et à consulter lorsque l'on est en situation d'effectivement coder.

   Également, si tu optes pour un langage orienté objet, dans un deuxième temps ce sera une bonne idée de se mettre à la modélisation UML. Cet ouvrage permet une bonne introduction (les langages utilisés dans les exemples sont C# et Java) :

      UML 2 par la pratique
      Pascal ROQUES
      Éditions Eyrolles

   Voici donc un rapide tour d'horizon de quelques langages, à mon avis les plus remarquables :

   D'abord, un langage généraliste, très bien adapté au web et pur objet --- paradigme de programmation le plus répandu à l'heure actuelle. Par contre, il n'est à utiliser que dans les cas où le temps d'exécution n'est pas critique (encore que sa lenteur soit trop souvent exagérée) : Java. Simple à apprendre, propre, c'est en général un bon choix. Si tu optes pour ce langage (ou tout autre langage orienté objet), je te conseille d'apprendre la modélisation UML, toutefois je pense qu'il vaut mieux avoir un peu touché le langage avant de se lancer dans l'UML, afin que les concepts ne soient pas trop abstrait. Il y a de nombreux ouvrages de qualités dédiés à l'apprentissage de Java, il suffit d'aller dans une librairie informatique et de choisir celui qui te plaît. Un exemple :

      Programmer en Java
      Claude DELANNOY
      Éditions Eyrolles

   Dans la série des langages généralistes, un autre, qui a l'avantage de permettre d'opter aussi bien une approche impérative que fonctionnelle (et même de permettre de mêler les deux approches), supporte l'objet, autorise d'excellentes performances (équivalentes à C) et qui est extrêmement robuste --- plus encore qu'Ada, pour les connaisseurs, --- tout en permettant une énorme productivité : Objective CaML. Son inconvénient est qu'il est très peu utilisé dans les projets réels (ce qui est bien dommage), de sorte que c'est surtout un excellent choix pour l'apprentissage. Un très bon ouvrage pour apprendre à programmer en Objective CaML :

      Développement d'applications avec Objective Caml
      Émmanuel CHAILLOUX, Pascal MANOURY et Bruno PAGANO
      O'Reilly

   Si tu optes pour ce langage, envisage l'apprentissage d'UML à moyen terme.

   Pour la programmation scientifique, dans la mesure où il n'y a pas de calcul trop intensif, mais également à mon sens un très bon moyen d'apprendre la programmation de manière propre sans risquer de prendre de mauvaises habitudes et sans trop se prendre la tête (en plus le langage permet une très bonne productivité) : Haskel, principalement langage fonctionnel, mais avec une partie objet. Différents ouvrages sont parus, généralement de bonne qualité, il suffit de prendre celui qui te plaira le plus. Un exemple :

      http://gorgonite.developpez.com/livres/ … e-haskell/

   Dans la série des langages fonctionnels, citons Lisp et ses nombreux dialectes (tel que Scheme). Emacs utilise Lisp pour ses macro-commandes.

   Si tu es plus orienté intelligence artificiel, quoique le paradigme de programmation est un peu particulier (programmation logique) : Prolog. Quelques livres parus à son sujet, il faut prendre ce qui est disponible dans la librairie informatique la plus proche de chez toi --- il y en a en général au moins un et de bonne qualité.

   Si tu veux faire de la programmation système, le langage de référence est C. Ce n'est pas un langage difficile à apprendre contrairement aux idées reçues, par contre il est impératif, procédural et structuré --- il est possible d'adopter une approche objet, mais elle ne fait pas vraiment partie du langage, --- ce qui signifie qu'il est facile de faire des choses assez peu propres (voir vraiment n'importe quoi) et donc difficile à maintenir, souvent inefficace et comportant des bogues étranges. De plus, la gestion des pointeurs et plus généralement de la mémoire peu vite devenir un casse-tête inextricable. C'est le langage utilisé pour le codage du noyau Linux, entre autre. De nombreux ouvrages de qualités disponibles, je conseille celui-ci :

      Méthodologie de la programmation en C
      BRAQUELAIRE
      Dunod

   En complément :

      Maîtrise des algorithmes en C
      Kyle LOUDON
      O'Reilly

   Autant que possible, je conseille de ne pas commencer la programmation avec C.

   Pour le web, PHP (en général couplé à MySQL) est un très bon choix. Simple, facile à apprendre, disposant d'une bibliographie abondante et permettant d'être très vite opérationnel. Par contre, il est totalement spécialisé dans le web.

   Un très bon langage pour la création d'automates et le traitement des chaînes de caractère : Perl. Il dispose lui aussi d'une bonne bibliographie. Par exemple :

      Perl pour l'impatient
      Sébastien DESREUX et Stéphane TOUGARD
      H et K Editions

   Ainsi que l'incontournable :

      Programmation en Perl
      Larry WALL, Tom CHRISTIANSEN, Jon ORWANT
      Éditions O'Reilly

   Larry WALL est le créateur de Perl.

   Dans à peu près le même domaine que Perl, mais avec peut-être une syntaxe plus claire : Python. C'est un bon choix pour apprendre la programmation, à peine plus compliqué que Basic, mais bien plus propre et avec plus de possibilités. Ce livre n'est pas mal :

      Apprendre à programmer avec Python
      Gérard SWINNEN
      Éditions Eyrolles

   Un ouvrage spécialement dédié à l'apprentissage de Python pour les scientifiques, habitués à d'autres langages comme Matlab ou Fortran (ça te ressemble) :

      Python : Les Fondamentaux du langage --- La Programmation pour les scientifiques
      Matthieu BRUCHER
      Éditions ENI

   Pour information, je signale un langage strictement objet, orienté vers la rédaction de programmes sûrs : Eiffel. Ada est un autre langage un peu dans le même genre. Ces deux langages ne sont pas très répandus.

   Enfin, un langage extrêmement versatile et généraliste, qui permet aussi bien la programmation scientifique, le calcul intensif, le temps réel, la programmation système, que toutes sortes d'applications. Les principaux paradigmes supportés sont la programmation impérative, la programmation structurée, la programmation procédurale, la programmation orientée objet, la programmation orientée prototypes et la programmation orientée composants. De plus, les extensions du langage (principalement la bibliothèque standard et la bibliothèque Boost) lui permettent de supporter d'autres paradigmes. Si tu optes pour ce langage, il sera bon, également, de te mettre à UML une fois les bases maîtrisées, ainsi que d'apprendre à utiliser la bibliothèque Boost. Par contre, contrairement aux autres langages proposés, c'est un langage difficile, tant au niveau de l'apprentissage qu'au niveau de son utilisation. De plus, il est souvent extrêmement souvent mal utilisé et mal enseigné. Attention donc à la littérature sur son sujet : trop souvent, elle propose d'apprendre du C un peu étendu compilé par un compilateur C++ (une aberration), avec gestion des pointeurs à la C (n'importe quoi), utilisation de la bibliothèque standard C en lieux et place de la bibliothèque standard C++ --- qui est pourtant bien plus versatile et très efficace si on sait l'utiliser proprement. La seule référence à laquelle on puisse vraiment faire confiance en matière d'apprentissage du C++ c'est :

      Le langage C++
      Bjarne STROUSTRUP
      Pearson Education.

   Bjarne STROUSTRUP est le créateur du langage.

   C++ est un excellent choix pour un projet réel --- par exemple, je l'utilise dans la programmation d'un modèle d'océan, --- mais je le déconseille pour l'apprentissage de la programmation (même si je connais des gens qui n'ont jamais utilisé que ce langage). Je conseille également d'apprendre C++ avant C, pour éviter une contamination mal venue.

   Voilà, j'espère que cela donne quelques éléments pour faire un choix.

   À bientôt.

                                                                                                                                 Le Farfadet Spatial

Dernière modification par Le Farfadet Spatial (Le 04/09/2009, à 19:50)

Hors ligne

#5 Le 03/09/2009, à 19:13

rniamo

Re : Prmier langage de programmation

t'as déjà eu des réponses constructives mais je ne peux m'empêcher de donner mon avis.

si tu veux apprendre à programmer "vraiment" il te faut connaitre un peu comment marche la machine et donc je pense que le C est le plus adapté.

Si c'est juste pour le fun python est simple.

Enfin si c'est pour faire de "vrais" choses le C++/Java sont les mieux je pense.


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#6 Le 03/09/2009, à 21:36

Le Farfadet Spatial

Re : Prmier langage de programmation

Salut à tous !

rniamo a écrit :

si tu veux apprendre à programmer "vraiment" il te faut connaitre un peu comment marche la machine et donc je pense que le C est le plus adapté.

Je ne re-citerais pas les Poppies, parce que je l'ai fait il y a moins de deux semaines, mais c'est tentant.

   Donc, à chaque fois que cette question revient sur ce forum, tu fais cette remarque. À chaque fois, je fais cette réponse :

   Je me pose en faux par rapport à cette affirmation. Trop souvent j'ai vu des dégâts causés par des développeurs qui ont d'abord cherché à savoir comment ça se passait au niveau de la machine : ils sont alors partis dans des optimisations bizarres, difficilement maintenables et peu portables, en oubliant que leur algorithme ne valait rien, donc que de toute façon leur code serait peu performant.

   La première chose, l'essentielle et qui sert dès que l'on fait de la programmation, c'est l'algorithmique. Le niveau matériel, c'est intéressant et utile, surtout si on s'oriente vers de la programmation système, mais seulement dans un second temps.

   De plus, une fois que l'on connait l'algorithmique et un langage de programmation, en apprendre un autre est facile. L'important, pour débuter, c'est donc de choisir un langage qui aide à prendre de bonnes habitudes. L'absence totale de garde-fou et l'arithmétique des pointeurs en C font que l'apprentissage de la programmation avec ce langage est périlleuse --- possible, mais ce n'est pas la voie la plus simple. Au contraire, OCaml, Java et Python répondent bien aux exigences pédagogiques.

   Pour reprendre une image que j'ai déjà utilisée il y a longtemps : il est parfaitement possible d'apprendre à conduire sur une formule 1, mais les risques de se tuer sont alors beaucoup plus grande que lorsque l'on apprend sur une 206.

Enfin si c'est pour faire de "vrais" choses le C++/Java sont les mieux je pense.

Si l'on envisage d'apprendre C++, alors il faut à tout prix éviter d'apprendre C avant, sinon les probabilités de faire n'importe quoi sont extrêmement proches de 1 --- je ne suis pas le seul à le dire, parmi lesquels quantité de gourous de C++. De plus, il faut savoir que C++ est un langage difficile, donc à mon avis inapproprié à l'apprentissage de la programmation.

   À bientôt.

                                                                                                                                 Le Farfadet Spatial

Hors ligne

#7 Le 04/09/2009, à 00:12

rniamo

Re : Prmier langage de programmation

je ne suis pas d'accord sauf en ce qui concerne l'algorithmie ... mais si on apprend un langage on doit en avoir les bases non ?

Je pense que le C descend assez bas pour comprendre les bases d'une machine (adresses etc) mais reste assez haut pour ne pas se prendre trop la tête.

Enfin c'est un bon début par rapport au c++ et au java (on ne réapprend pas la synatex de base).

Je ne vois pas comment tu veux faire n'importe quoi en c++ en ayant appris le C ? tu veux parler de mélanger l'objet et l'impératif ? si c'est ça, cela fait partie de l'algorithmie ou plutot de la modélisation et intervient donc en amont (parfois très proche mais amont quand même wink) du codage.

PS : désolé de toujours dire la même chose mais commencer par le python n'est pas un bonne solution à mon avis. Il faut aller du plus simple au plus difficile a priori, de l'impératif à l'objet, du c au c++

Dernière modification par rniamo (Le 04/09/2009, à 00:12)


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#8 Le 04/09/2009, à 00:17

Gaube65

Re : Prmier langage de programmation

  Bonsoir à tous !

Merci pour vos réponses.
Vos avis recoupent ce que l'on m'a dit par ailleurs: tout dépend de ce que l'on veut faire.
Donc dans un premier temps je pense opter pour Python qui me semble correspondre le plus à mes besoin immédiats : calculs mathématiques simples (mais laborieux) pour l'essentiel.
Cela étant fait, je pense m'intéresser à l'algorithmique et au C++ qui m'a été également vivement conseillé par des collègues informaticiens et qui est le langage le plus utilisé par nos machines (labo biochimie)
Ensuite (et seulement ensuite si j'ai bien compris) viendra le C car j'ai bien envie de savoir (enfin!) ce que linux que j'utilise tous les jours a dans le ventre.
Ajoutez à ça Php/mySql pour le web...
Rassurez vous, j'ai désormais pas mal de temps libre et je ne suis pas, mais alors pas du tout pressé !! car je l'ai assez été toute ma vie.
Bref, vous risquez de me revoir bientôt pour d'autres conseils, sur Python pour commencer...


La Vie c'est le Partage ...

Hors ligne

#9 Le 04/09/2009, à 00:32

NooP

Re : Prmier langage de programmation

Bonjour,

J'arrive un peu tard, mais je suis étonné que personne ne cite Ruby.
Très semblable à Python pourtant, mais développé totalement autour du modèle Objet.


Votez Macron, vous l'aurez dans le fion !

Hors ligne

#10 Le 04/09/2009, à 01:30

Le Farfadet Spatial

Re : Prmier langage de programmation

Salut à tous !

rniamo a écrit :

je ne suis pas d'accord

Dans le cas contraire, nous ne passerions pas notre temps à nous contredire lorsque la question est posée !

rniamo a écrit :

sauf en ce qui concerne l'algorithmie ... mais si on apprend un langage on doit en avoir les bases non ?

Pas nécessairement. D'expérience, enseigner l'algorithmique sans que l'étudiant ne connaisse un langage et sans lui faire faire des applications concrètes s'avère rapidement totalement rébarbatif et au final il n'intègre pas grand-chose. D'expérience, également, lorsque quelqu'un dit : « je suis débutant et je voudrais apprendre un langage » et même s'il précise « j'ai fait un peu de Basic il y a vingt ans, » il ne connait pas l'algorithmique.

rniamo a écrit :

Je pense que le C descend assez bas pour comprendre les bases d'une machine (adresses etc) mais reste assez haut pour ne pas se prendre trop la tête.

Disons que tu n'as pas l'habitude d'avoir des questions incessantes d'étudiants qui disent : « je ne comprends pas, ça marche pas, pourtant ça compile, » pour te rendre compte qu'ils ont produit un code qui est techniquement accepté par le compilateur, mais qui est aberrant ou bien que la gestion des pointeurs est aléatoire. L'avantage avec un langage tel qu'OCaml, par exemple, c'est que le compilateur détecte très bien ce genre d'erreur et les pointe immédiatement : l'apprentissage est alors plus autonome, ce qui est plus rentable pour l'étudiant et un gain de temps pour l'encadrant.

rniamo a écrit :

Enfin c'est un bon début par rapport au c++ et au java (on ne réapprend pas la synatex de base).

Je reviens plus bas sur les relations complexes entre C et C++.

   Cela dit, la syntaxe, c'est vraiment la chose la moins essentielle d'un langage et la plus rapide à apprendre. Ce n'est qu'un détail, vraiment pas la chose sur laquelle se focaliser : en apprendre une nouvelle est l'affaire de très peu de temps. Encore une fois, l'essentiel, c'est la tournure d'esprit et l'algorithmique. Les paradigmes arrivent juste après.

rniamo a écrit :

Je ne vois pas comment tu veux faire n'importe quoi en c++ en ayant appris le C ? tu veux parler de mélanger l'objet et l'impératif ? si c'est ça, cela fait partie de l'algorithmie ou plutot de la modélisation et intervient donc en amont (parfois très proche mais amont quand même wink) du codage.

Tout d'abord, oui, l'algorithmique et la modélisation est essentielle, c'est d'ailleurs le fond de toutes mes interventions. Ensuite, c'est au contraire une très bonne chose de mélanger les paradigmes objets et impératifs, C++ permet d'ailleurs de mélanger d'autres paradigmes à ces deux-là et c'est ce qui fait sa grande richesse : cela permet de mettre en place une approche totalement ad hoc par rapport au problème que l'on cherche à résoudre. D'ailleurs, on peut dire que l'orienté objet n'est pas (plus) la caractéristique principale de C++.

   Non, quand je dis « faire n'importe quoi, » je veux dire « faire n'importe quoi. » C'est-à-dire utiliser un sabir qui est plus du « C with classes » que C++. Par exemple, en C++, on utilise incommensurablement moins souvent les pointeurs qu'en C, il vaut mieux éviter la gestion de la mémoire à la C, la bibliothèque standard n'est pas la même, les macros ne s'utilisent pas de la même manière, il est préférable de proscrire les conversions à la C et j'en passe, mais j'ai encore des choses en réserve.

   Il faut bien comprendre que ce sabir a été la cause principale et essentielle des programmes difficilement maintenables et incompréhensible que l'on rencontre encore trop souvent et également la raison de la réputation de lenteur de C++, alors que si on sait bien l'utiliser on peut même obtenir de meilleures performances qu'en C.

   Car il faut se rendre compte que C et C++ sont deux langages totalement différents (tout aussi différents que le sont C et Java). Cependant, la possibilité de compiler certains programmes C avec un compilateur C++ --- certains, car il est possible de créer des programmes parfaitement valable en C, mais qui ne peuvent pas être compilé par un compilateur C++ --- induit en erreur. Si l'on est programmeur C et que l'on apprend C++, même avec la meilleure volonté du monde, on commencera nécessairement par pratiquer le sabir « C with classes. » Il va alors falloir passer par une longue et laborieuse phase pendant laquelle on revient sur les mauvaises habitudes. Il est en effet possible d'apprendre C++ après avoir appris C, mais c'est se mettre des bâtons dans les roues. À l'inverse, lorsque l'on apprend C après C++, on ne peut pas faire du « C++ without classe, » de sorte que l'apprentissage est beaucoup plus efficace.

   Je parle d'expérience : j'ai appris C++ avant sa normalisation, selon l'approche qui consistait à le considérer comme une surcouche de C, ce qu'il n'est pas (plus). Aujourd'hui, je pense pouvoir dire que je fais vraiment du C++, mais ça m'a fait perdre beaucoup de temps. À l'inverse, je constate que ceux dont l'apprentissage s'est fait dans l'ordre C++ puis C maîtrisent bien plus vite les deux langages. Essayons de faire en sorte que les erreurs des vieux servent d'avertissement aux jeunes, afin qu'ils ne fassent pas les mêmes.

rniamo a écrit :

PS : désolé de toujours dire la même chose mais commencer par le python n'est pas un bonne solution à mon avis.

Je comprends que les python-maniaques qui veulent le mettre à toutes les sauces t'exaspèrent --- ils m'irritent un peu parfois, moi aussi, --- mais il est tout de même vrai que ce langage présente bien des qualités pour l'apprentissage, à commencer par une syntaxe claire, suffisamment de gardes-fous pour éviter les erreurs courantes et une bibliothèque fournie.

rniamo a écrit :

Il faut aller du plus simple au plus difficile a priori

Je suis bien d'accord, mais je n'arrive pas à faire le lien avec le reste : par exemple, Python est plus simple que C.

rniamo a écrit :

de l'impératif à l'objet

Pour ma part, je préfère faire débuter avec le paradigme fonctionnel, qui demande moins de notions pour commencer que la programmation impérative, c'est-à-dire uniquement les notions (mathématiques) de calculs et de fonctions, toutes deux maîtrisées depuis la seconde. Cela permet de penser uniquement algorithmique et pas machine et néanmoins faire des programmes performants. À l'inverse, l'impératif nécessite d'apprendre les notions de variables (bizarroïde), de structures de contrôles et très vite de procédures. En plus, ce paradigme fait perdre du temps pour se demander ce qui se passe au niveau de la machine.

rniamo a écrit :

du c au c++

Surtout pas !

Gaube65 a écrit :

Bref, vous risquez de me revoir bientôt pour d'autres conseils

N'hésite pas, ce forum est là pour ça.

   Au vu de tes besoins, l'ouvrage Python : Les Fondamentaux du langage --- La Programmation pour les scientifiques (références dans mon premier message) m'a l'air tout à fait indiqué.

   À bientôt.

                                                                                                                                 Le Farfadet Spatial

Dernière modification par Le Farfadet Spatial (Le 04/09/2009, à 01:35)

Hors ligne

#11 Le 04/09/2009, à 01:32

Le Farfadet Spatial

Re : Prmier langage de programmation

Salut à tous !

NooP a écrit :

je suis étonné que personne ne cite Ruby.

Pour ma part, je n'en ai pas parlé parce que je ne le connais pas (à part qu'il s'agit d'un langage interprété et dans la mouvance de Perl et Python), je préfère donc éviter de dire une bêtise.

   À bientôt.

                                                                                                                                    Le Farfadet Spatial

Hors ligne

#12 Le 04/09/2009, à 09:35

no_spleen

Re : Prmier langage de programmation

Bonjour Gaube65,

Je me permet de donner mon avis, en tant que scientifique, si ta question est de savoir comment réaliser ton job facilement et rapidement.

Quel genre d'applications scientifiques réalises-tu ? Selon la réponse, la meilleure option risque de changer.

Pour la plupart des calculs scientifiques, il n'est pas utile de programmer tout à partir de zéro, que ce soit en C,C++,fortran ou autre. Des langages comme Octave, R, Scillab permettent de faire presque tout, bien plus facilement qu'à partir des langages généralistes (même en utilisant les bibliothèques disponibles).

L'argument principal pour passer à des langages généralistes est la rapidité de calcul. Si tes applications sont lourdes (par exemple éléments finis). Dans ce cas 99,9% des scientifiques tournent sur C++ ou fortran. Et encore, dans le cas des éléments finis il existe des codes extrêmement performants tels que code_aster.

Si ton objectif est de coder pour le plaisir, alors mes remarques ne sont pas pertinentes, et je te renvoies aux commentaires ci-dessus.

Bien à toi

Hors ligne

#13 Le 04/09/2009, à 13:46

Gaube65

Re : Prmier langage de programmation

Bonjour no_spleen !  ... et les autres!

Non, il ne s'agit pas de coder pour une application du labo (je laisse ça aux informaticiens de métier) mais de "reprendre" une idée sotte et grenue que nous avions eu à Louis le Grand il y a pas mal d'années, à l'époque d'un certain J.C.Yoccoz qui depuis à fait son chemin ...
Tout cela tournait autour de la conjecture de Goldbach ... Nous pensions à une approche analytique originale de la question et buttions en préambule sur un calcul numérique qui nous semblait insurmontable... mais nous étions loin d'avoir la puissance de calcul des ordinateurs actuels !!
Nous savons aujourd'hui que notre méthode ne fera pas avancer la question de la conjoncture, donc peu importe le résultat de notre calcul me direz vous : oui mais reste la nostalgie de savoir si le nombre tant cherché est bien dans la fourchette espérée .
Et puis sait on jamais ...


La Vie c'est le Partage ...

Hors ligne

#14 Le 04/09/2009, à 14:27

Le Farfadet Spatial

Re : Prmier langage de programmation

Salut à tous !

Gaube65 a écrit :

"reprendre" une idée sotte et grenue que nous avions eu à Louis le Grand il y a pas mal d'années, à l'époque d'un certain J.C.Yoccoz qui depuis à fait son chemin ...

En effet, il a fait son chemin --- pour ceux qui ne le connaissent pas (ce n'est une super-star que parmi les mathématiciens) : http://webetab.ac-bordeaux.fr/Pedagogie … yoccoz.htm.

   Louis le Grand, École Normale Supérieure, médaille Fields et professeur au collège de France, ça fait un peu figure de parcours sans faute --- ragnagna, d'un coup, je le déteste !

   Es-tu resté en contact avec lui ?

   À bientôt.

                                                                                                                                           Le Farfadet Spatial,
                                                                                                                                           même pas jaloux, je
                                                                                                                                           l'obtiendrais aussi,
                                                                                                                                           la médaille Fields,
                                                                                                                                           en résolvant le
                                                                                                                                           problème des
                                                                                                                                           équations de
                                                                                                                                           Navier-Stokes (je
                                                                                                                                           suis l'élu), ce qui en
                                                                                                                                           plus me fera un
                                                                                                                                           million de dollars et
                                                                                                                                           toc !

Dernière modification par Le Farfadet Spatial (Le 04/09/2009, à 17:32)

Hors ligne

#15 Le 04/09/2009, à 14:50

no_spleen

Re : Prmier langage de programmation

juste pour le fun, à quoi ressemble ce calcul numérique ?

Hors ligne

#16 Le 04/09/2009, à 15:29

Kranagard

Re : Prmier langage de programmation

je dis ça comme ça mais sortant d'une des plus grandes ecoles de programmation reseau au niveau europeen mais aussi mondial (suffit de voir les euroskills et imagine cup on les a chaque année ça prend une place folle a l'ecole) notre mode d'apprentissage est le suivant:

premiere année:
-beaucoup beaucoup d'algorithmique, c'est la base de tout. le pseudo code y'a rien de mieux pour penser une applic
-un poil d'asm histoire de connaitre un peu l'architecture ainsi que du bach
-apprentissage du langage C, introduction au pointeurs et differents acces memoire

seconde année:
-devoloppement des connaissances en C (surtout sur machine unix et sun => file de message,memoire partagée,semaphore...)
   -derive du C sur machine temps reel avec utilisation de bras mecanisés et de capteurs
   -derive du C pour une utilisation reseau, creation d'un serveur multi thread avec client en librairie X11
-apprentissage du C++ en profondeur (introduction a Qt)
-apprentissage du C# en profondeur
-apprentissage de java, la base + java beans et thread java en gros


troisieme année:
-Java, le reste
-c# pour affiner un peu, surtout le reseau
-cpp application parallele, multithread et autre.
-Qt (ça va vite)





et chaque année les eleves sortant de l'ecole trouve du boulot partout dans le monde, j'ai un pote a la sortie de l'ecole il est partie chez sisco a la silicon valey y bosser pour devolopper un truc en wifi (il a pas voulu dire quoi sad )


je trouve que de commencer comme ça par le C peut en rebuter pas mal mais quand on apprend bien le C et qu'on prend de bons reperes le reste vient tout seul:
cpp => rajout des flux et des objets
le reste? specifique a chaque language mais quand meme essentielement basé sur la syntaxe global du C.

mais comme dis, apres il faut voir ce que tu veux faire, passer 6 mois a te prendre la tete sur le C pour finalement faire une applic que tu peux faire un python c'est sur que l'utilité est limitée...

Hors ligne

#17 Le 04/09/2009, à 15:56

bipede

Re : Prmier langage de programmation

rniamo a écrit :

Si c'est juste pour le fun python est simple.

Enfin si c'est pour faire de "vrais" choses le C++/Java sont les mieux je pense.

Tu connais un peu python ? Si oui, ça ne se voit pas, et si non, tu gagnerais en crédibilité à l'apprendre avant d'en parler.

Si tu veux voir de vraies choses et que tu es sous ubuntu regarde bien partout autour de toi... Il y a plein de python...

Python ce n'est pas pour le fun... Programmer en python c'est faire aussi bien qu'en C++ mais avec vingt fois plus de productivité. Et c'est quarante fois moins lourd et gourmand que java.

Et si tu as du calcul scientifique à intégrer dans une appli, ton algo de calcul, tu le fais en c et tu intègres sans soucis dans un programme python.


Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.

Mon site: Les contributions du bipède

Hors ligne

#18 Le 04/09/2009, à 16:35

Le Farfadet Spatial

Re : Prmier langage de programmation

Salut à tous !

Kranagard a écrit :

je dis ça comme ça mais sortant d'une des plus grandes ecoles de programmation reseau au niveau europeen mais aussi mondial (suffit de voir les euroskills et imagine cup on les a chaque année ça prend une place folle a l'ecole)

Chouette ! Un argument d'autorité. Pourtant, il me semblait que Descartes lui avait définitivement tordu le cou.

   Je ne doute pas des qualités de ton école et je suis certain que tu es compétent, bien plus que moi en terme de réseau. Cela n'empêche pas de dire des sottises --- on en dit tous, moi le premier. Est-ce que je suis venu dire que, sur mon diplôme, il y a écrit « École Polytechnique » et « École Normale Supérieure » (ceci est totalement vrai et je peux le prouver) ? À quoi ça sert, à part flatter son égo ? En tout cas, ça n'ajoute --- ni ne retranche, certes --- aucune valeur à un argumentaire.

   Je n'hésite pas à le revendiquer : rien que sur ce forum, il y a des lycéens SMS qui ont remis en cause certaines de mes idées et ils avaient raison.

   De toute façon, une compétence n'est vraiment digérée que lorsque l'on est capable de prendre du recul par rapport à l'enseignement que l'on a suivi.

Kranagard a écrit :

cpp => rajout des flux et des objets

Justement, non. On peut faire un bon code en bon C++, parfaitement performant, lisible et maintenable, sans utiliser les objets ni les flux. Encore une fois, C++ n'est pas une surcouche de C, c'est un autre langage. Ce que tu décris, c'est l'approche historique, que je n'hésite pas à remettre en cause, pour les raisons énoncées plus haut et je ne suis pas le seul dans ce cas.

   Le fait est que cette vision de C++ est très (trop) répandue. Il y a de cela quelques années, c'était également la mienne et j'étais persuadé de maîtriser C++, ce qui était faux. Ce qui m'a fait revoir mes certitudes, c'est la bibliothèque Boost (http://www.boost.org/).

bipede a écrit :

Programmer en python c'est faire aussi bien qu'en C++

Je n'ai absolument rien contre Python. Cependant, il faut que les python-maniques s'en rendent compte : Python et C++ ne sont pas faits pour réaliser les mêmes choses. Défendre un langage, c'est aussi savoir quels sont ses défauts et ce pour quoi il est approprié, ainsi que ce pour quoi il n'est pas le bon choix.

bipede a écrit :

avec vingt fois plus de productivité

C'est une affirmation un peu gratuite et très contestable.

bipede a écrit :

c'est quarante fois moins lourd et gourmand que java

Même remarque. On surestime beaucoup trop la lourdeur de Java.

   Python permet de faire très bien des choses très sérieuses. Cependant, il n'existe pas de plus meilleur langage du monde parfait pour tout.

   À bientôt.

                                                                                                                                 Le Farfadet Spatial

Dernière modification par Le Farfadet Spatial (Le 04/09/2009, à 19:57)

Hors ligne

#19 Le 04/09/2009, à 17:27

Gaube65

Re : Prmier langage de programmation

(Re) Bonjour à tous !

Merci pour tous vos commentaires.
Vous me donnez une petite pointe de nostalgie : j'aimerais bien avoir trente ans de moins et revenir sur les bancs de la fac pour pouvoir étudier sérieusement l'informatique...
Plus modestement, je me suis mis à étudier le livre de G. Swinnen que l'on m'a indiqué et qui me semble très bien
Jusqu'à présent, tout marche très vite, mais je n'ai sans doute fait que la partie facile.
Par contre il n'y a quasiment pas d'algorithmique : je vais acheter le livre conseillé par Le Farfadet Spatial
Pour le moment je ne comprends pas grand chose à vos petites querelles sympathiques entre partisants C++ ou C mais vous lire m'a en tout cas donné très envie d'apprendre C++ ET C pour me faire une opinion !

Bien cordialement

PS: Non, je n'ai plus de contact avec J.C. Yoccoz Pour le contacter vous pouvez essayer via le Collège de France


La Vie c'est le Partage ...

Hors ligne

#20 Le 04/09/2009, à 17:51

Le Farfadet Spatial

Re : Prmier langage de programmation

Salut à tous !

Gaube65 a écrit :

Jusqu'à présent, tout marche très vite, mais je n'ai sans doute fait que la partie facile.

Pour un matheux, apprendre à programmer, c'est surtout apprendre une nouvelle algèbre, ce n'est donc pas très compliqué.

Par contre il n'y a quasiment pas d'algorithmique : je vais acheter le livre conseillé par Le Farfadet Spatial

Le Cormen est une référence, tu ne regretteras pas cet achat (sauf si tu décides d'arrêter toute programmation demain).

petites querelles sympathiques

J'espère qu'elles sont sympathiques, en tout cas je précise qu'il n'y a pas d'animosité chez moi. Par exemple, même si je ne suis pas d'accord avec lui, je pense que l'avis de Rniamo est intéressant.

   C'est juste qu'il se fourre le doigt dans l'œil jusqu'au coude --- oups ! Ne me cachez rien : ne viendrais-je pas de déraper ?

me faire une opinion !

Il est certain que c'est la meilleure solution.

   En tout cas, cet échange m'a remis en tête le fait que je voulais poser par écrit de manière complète mon approche de l'enseignement de C++. Ha ! Tant de choses à faire et si peu de temps pour le réaliser :

      Ô temps ! suspends ton vol et vous, heures propices !
      Suspendez votre cours :
      Laissez-nous savourer les rapides délices
      Des plus beaux de nos jours !

   Un baril de considérations distinguées (les miennes) à celui qui trouvera l'origine des quelques vers précédents (c'est fastoche).

   À bientôt.

                                                                                                                                             Le Farfadet Spatial

Hors ligne

#21 Le 04/09/2009, à 17:57

Luc Hermitte

Re : Prmier langage de programmation

Kranagard a écrit :

je trouve que de commencer comme ça par le C peut en rebuter pas mal mais quand on apprend bien le C et qu'on prend de bons reperes le reste vient tout seul:
cpp => rajout des flux et des objets

I.e., le fameux sabir de C with classes dénoncé par le Farfadet Spatial.
Passer à côté du RAII et de la généricité, cela n'aide pas à faire du C++ maintenable. Et non, ce ne sont pas des aspects négligeables de ce langage. Et je ne parle même pas de la méta-prog du C++ (qui au passage relèvera plus du Lisp et du Prolog que du C) vu qu'elle est sans grand intérêt pour le débutant.

Hors ligne

#22 Le 04/09/2009, à 18:20

valAa

Re : Prmier langage de programmation

[edit]
Pour situer mon intervention tongue

Le Farfadet Spatial a écrit :

Un baril de considérations distinguées (les miennes) à celui qui trouvera l'origine des quelques vers précédents (c'est fastoche).

[/edit]

Je suis à peu près sûr que c'est du Lamartine (Alphonse de), mais impossible de me rappeler dans quoi.

Dernière modification par valAa (Le 04/09/2009, à 18:22)

Hors ligne

#23 Le 04/09/2009, à 18:26

rniamo

Re : Prmier langage de programmation

Pour un matheux, apprendre à programmer, c'est surtout apprendre une nouvelle algèbre, ce n'est donc pas très compliqué.

superbe !

Sinon je reste sur mes positions même si je comprends les tiennes le farfadet

edit : oui je connais les bases de python et je les trouve légéres par rapport au C++

Dernière modification par rniamo (Le 04/09/2009, à 18:30)


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#24 Le 04/09/2009, à 18:43

Jean-Julien

Re : Prmier langage de programmation

Hyper-marrant !
Absent depuis 4 mois sur le forum, je reviens et tombe sur ce magnifique sujet.
Le mouvement perpétuel.
Peut-être dervrait-on rédiger un texte CLAIR qui répond de manière exhaustive à cette question et l'épingler ??

Personnellement, si tu veux mon avis, cliques sur ce lien et lis le poste #23, tu auras mon avis.

http://forum.ubuntu-fr.org/viewtopic.php?id=246908

Tu peux lire le reste pour le fun, c'est l'anarchie !

Amicalement! smile

Hors ligne

#25 Le 04/09/2009, à 18:45

Gaube65

Re : Prmier langage de programmation

Bonsoir à tous !

Il semblerait que valAa soit dans le lac !  big_smile


La Vie c'est le Partage ...

Hors ligne