Partage
  • Partager sur Facebook
  • Partager sur Twitter

Quel langage aprendre en complément de Python

Java, C, C++, C#, ...

    27 septembre 2010 à 10:59:47

    Bonjour,
    J'ai pu constater en lisant plusieurs forums que la plus part des personnes qui programment connaissent et utilisent plusieurs langages de programmation.
    Je suis pout l'instant en train de m'autoformer sur python, quand j'aurais aquis de bonnes bases, je voudrais completer mon apprentissage en apprenant un autre langage de programmation. Je voudrais en priorité que ce langage puisse etre un complément utile a python.
    J'ai pensé au C, C++ puisque ces langages sont natifs et peuvent aporté un grand + en thermes de performances !, les cours du SDZ sont très bien fait et très complets pour débuter, ou éventuellement le Java, C#, ...
    Si il y a parmis vous des personnes qui connaissent plusieurs langages de programmation dont le python ou qui sont en train d'en apprendre un autre je serais très interessé d'avoir votre avis, vos expériences !
    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      27 septembre 2010 à 11:26:33

      Si tu veux des langages pour élargir ta culture et voir d'autres façons de faire, apprends Smalltalk et Lisp ; ça ne te servira pas tous les jours mais ce que tu apprendras te servira énormément dans tous les autres langages. Par exemple lis le Wizard Book "Structure and Interpretation of Computer Programs". Celui qui n'a pas ce bouquin est un noob.

      Si tu veux un langage totalement opposé à python mais complémentaire, apprends le C, tu peux aussi faire des extensions python avec. Pour une appli moderne (exemple : lightroom), on a une GUI en lua/python/autre et un noyau rapide en C.

      Ou le C++, mais tu en as pour beaucoup plus longtemps, car le C++ est incroyablement compliqué si tu veux aller au fond des choses. Tu peux apprendre les bases du C++ assez rapidement (si tu fais du "C avec classes") mais ce n'est pas très utile...

      Si tu t'intéresses au Web, garde python (avec django) et apprends le javascript. Attention, le javascript est un Lisp déguisé, et n'a rien à voir dans l'esprit avec php par exemple... même si y'a des {}...

      Java et C# les frères ennemis : C# a l'inconvénient de ne pas être complètement portable (Mono a l'air bien ceci dit) mais les IDE de Microsoft sont toujours un plaisir à utiliser. Tu peux aussi mixer divers langages sur le CLR. Pour le Java, connais pas trop, mais y'aura bien quelqu'un qui te renseignera...

      • Partager sur Facebook
      • Partager sur Twitter
        27 septembre 2010 à 13:04:28

        Java est insupportable quand on a fait du Python. Et en plus il n'apporte pas grand chose (à part pour Jython éventuellement, mouais, bof).

        Pour le reste, je pense que tu ferais mieux d'apprendre des langages complémentaires à Python pas dans le sens "les deux ensemble vont bien", mais plus parce qu'ils n'apportent pas la même vision de la programmation. Ocaml par exemple (ce n'est qu'un exemple, mais c'est à mon avis un très bon choix).
        • Partager sur Facebook
        • Partager sur Twitter
          27 septembre 2010 à 14:29:28

          Citation : Maxibolt

          Java est insupportable quand on a fait du Python.


          Ah ? Je fais du Java à mon taff et un peu de python en-dehors (mais je suis encore mauvais), je trouve pas que Java soit "insupportable". Simplement "différent".
          Java me paraît "mieux" que Python dans un contexte pro, dans ce sens où comme plein de trucs sont vérifiés à la compilation, les mauvais programmeurs sont limités dans leurs dégâts.

          Cela dit, je suis d'accord pour dire que Java ne me paraît pas très intéressant pour découvrir "autre chose" quand on vient de Python. Autant apprendre un langages aux paradigmes très différents, genre le C ou un langage fonctionnel.

          Ah si quand même : au boulot, je fais du dev web en Java, ça c'est cool.
          Par contre, faire des interfaces graphiques (clients lourds) en Java, c'est effectivement insupportable. Ne faites pas ça.
          D'ailleurs, il suffit de regarder le forum d'aide pour s'en convaincre ^^
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            27 septembre 2010 à 18:46:31

            En ce moment j'apprend le C me permettant par la suite de l'interfaçage avec python. J'utilise SWIG pour permettre ce lien. Ca fonctionne très bien, par contre le temps d'apprentissage du C n'est tout de même pas négligeable.

            Le C++ je ne connais pas assez, je ne peux pas t'aider, mais quand j'ai vu les bases du C, je trouve que le C++ n'est pas plus complexe.

            Bon courage pour ton choix :)
            • Partager sur Facebook
            • Partager sur Twitter
              27 septembre 2010 à 19:30:24

              Oué +1 à Maxibolt, essaye de voir un paradigme différent de ceux que propose Python (impératif, OO). Je pense au paradigme fonctionnel, tu peux donc aller voir du côté d'OCaml/Caml, Haskell.

              En cherchant un peu sur le forum, je crois qu'on doit retrouver des posts de bluestorm qui compare l'haskell et l'ocaml quand on débute dans la programmation fonctionnelle.
              • Partager sur Facebook
              • Partager sur Twitter
                27 septembre 2010 à 20:05:53

                Merci pour vos réponses !
                effectivement le Java ne m'apportera pas grand chose de plus que le python, vu que je travaille pas dans l'informatique je n'ai pas grand intéret a l'apprendre.
                Au niveau des langages le C semble etre le meilleur choix apparement, si j'ai bien compris on peut utiliser le C pour créer la partie centrale du programme, le compiler, et utiliser python pour tout ce qui est interface et fonctions ne nécésitant pas un temps d'execution optimisé, c'est ça qu'on appele l'interfacage ?
                Je n'avais jamais entendu parlé de programmation fonctionnelle, je vais essayer de trouver quelques infos dessus !
                Je pense que le C peut etre un bon compromis, je ne suis pas pressé d'apprendre peu importe le temps que ça prendra, je voudrais surtout que le bénéfice de ce que j'ai apris me serve vraiment. De toute façon j'ai encore énormément a apprendre en python.
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  27 septembre 2010 à 20:14:48

                  Citation

                  Au niveau des langages le C semble etre le meilleur choix apparement, si j'ai bien compris on peut utiliser le C pour créer la partie centrale du programme, le compiler, et utiliser python pour tout ce qui est interface et fonctions ne nécésitant pas un temps d'execution optimisé, c'est ça qu'on appele l'interfacage ?



                  En gros oui c'est à peu près cela.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 septembre 2010 à 20:51:32

                    Citation

                    Ah ? Je fais du Java à mon taff et un peu de python en-dehors (mais je suis encore mauvais), je trouve pas que Java soit "insupportable". Simplement "différent".
                    Java me paraît "mieux" que Python dans un contexte pro, dans ce sens où comme plein de trucs sont vérifiés à la compilation, les mauvais programmeurs sont limités dans leurs dégâts.


                    C'est vrai qu'on aimerait que Python vérifie un peu plus de choses pendant la "compilation" (la même que java en fait), surtout au niveau des types (mais bon Java est loin d'être exemplaire dans ce domaine), mais j'ai surtout trouvé Java excessivement verbeux et inélégant.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      28 septembre 2010 à 9:49:23

                      Juste...

                      Citation : fred1599


                      Le C++ je ne connais pas assez, je ne peux pas t'aider, mais quand j'ai vu les bases du C, je trouve que le C++ n'est pas plus complexe.



                      Tout dépend de ce que tu as vu en C++. Si on décide d'utiliser le C++ uniquement comme du "C avec des classes", c'est sûr, c'est pas la mer à boire : un peu de syntaxe nouvelle, on ajoute les références et on est parti. Mais là où ça devient vraiment intéressant (et très complexe), c'est quand on veut utiliser efficacement les templates (pour faire des policies, par exemple), faire de la métaprogrammation : ça, et le fait que le langage te laisse absolument libre de tout faire, des choses les plus élégantes aux horreurs sans nom, c'est ce qui fait de C++ un langage complexe (mais ô combien intéressant).

                      Pour le PO :
                      Comme cela a été dit, tout dépend vraiment de ce que tu cherches à apprendre.
                      C et C++ sont plutôt "proches" de Python (mêmes paradigmes), mais ils ont des utilisations totalement complémentaires (et leurs interactions avec Python sont très intéressantes). Si tu veux voir ce qui se fait "de manière professionnelle" en développement, ce sont les langages indiqués.

                      Si tu veux, au contraire, voir d'autres manières de penser et de programmer (d'autres paradigmes...), à ce moment là, oriente-toi peut-être vers un langage fonctionnel.

                      De toute façon, rien ne t'empêchera de faire les 2 à terme. :p
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Zeste de Savoir, le site qui en a dans le citron !
                        28 septembre 2010 à 11:53:51

                        Merci pour votre aide !
                        Je suis a la recherche d'un langage complémentaire a Python mais un langage a part entière. Sauf erreur de ma part, il faut les bases de synthaxe du C pour faire du C++ ? Je pense que je vais me tourner vers l'apprentissage du C.
                        Si j'ai bien compris, le C est (au moins dans un premier temps) déjà suffisant pour l'interfacer avec python ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          28 septembre 2010 à 12:07:24

                          Citation : Darioo2


                          Sauf erreur de ma part, il faut les bases de synthaxe du C pour faire du C++ ?


                          Erreur de ta part. ;)

                          Le C++ reprend l'ensemble de la syntaxe du C, mais tu n'es pas obligé de suivre l'ordre imposé par les tutos officiels sur ce site : ce sont deux langages différents, qui ne s'utilisent pas du tout de la même manière. Il est peut-être (enfin ici n'est pas l'endroit pour discuter de ça) plus simple d'apprendre directement C++ sans passer par la case C : ça évite d'être tenté d'utiliser des pratiques du C qui sont considérées comme très moches en C++.

                          Citation : Darioo2


                          Si j'ai bien compris, le C est (au moins dans un premier temps) déjà suffisant pour l'interfacer avec python ?



                          Oui.
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Zeste de Savoir, le site qui en a dans le citron !
                            28 septembre 2010 à 13:01:10

                            Merci pour ta réponse !
                            Donc la synthaxe du C++ est exactement la même que celle du C mais on utilise les 2 langages de manière différente !
                            Par contre je suppose que l'apprentissage direct du C++ doit être beaucoup plus compliqué a abordé tout de suite ? ou la difficulté est elle a peu près équivalente (au moins au début) par rapport au C
                            • Partager sur Facebook
                            • Partager sur Twitter
                              28 septembre 2010 à 13:20:39

                              Citation : Darioo2

                              Merci pour ta réponse !
                              Donc la synthaxe du C++ est exactement la même que celle du C mais on utilise les 2 langages de manière différente !



                              Exactement la même, non, parce que C++ ajoute de la syntaxe par rapport au C, de manière à laisser les développeurs libres de s'écarter des problèmes de gestion de la mémoire. Je pense personnellement que pour les débuts (écrire quelques fonctions, sans forcément rentrer dans la POO), C++ est probablement plus simple à utiliser (et plus facilement "propre"), parce que sa bibliothèque standard permet de s'écarter un peu du silicium (par rapport à celle du C).
                              Ensuite, en tant que développeur Python, tu voudras nécessairement passer à la POO, et C++ intègre déjà ce paradigme nativement (alors que C, non) : tu n'auras donc pas à te farcir un ré-apprentissage des bases (pour acquérir la syntaxe propre à C++ que tu n'auras pas vu en C, par exemple pour les références, les "new/delete", etc.) et pourras te concentrer sur l'implémentation du paradigme objet en C++.
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Zeste de Savoir, le site qui en a dans le citron !
                                29 septembre 2010 à 8:53:31

                                Ok, merci pour toutes ces infos !
                                En regardant sur Amazon j'ai vu ce type d'ouvrage qui propose d'apprendre le C++ sans nécéssairement être passé par le C avant !
                                http://www.amazon.fr/Apprendre-C-Claud [...] &sr=8-12#noop
                                J'ai jeté un oeil sur la table des matières et sur les "Avant Propos" il me semble adapté !
                                Si je démare une approche C++ tu pense que ce serais un bon choix ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  29 septembre 2010 à 10:30:32

                                  Le C est très simple (trop simple diront certains) mais des petites choses comme les pointeurs nécessitent une rigueur absolue : le C est facile à apprendre, mais difficile à maîtriser. Et on n'insistera jamais assez sur la rigueur.

                                  Citation : fred1599

                                  Le C++ je ne connais pas assez, je ne peux pas t'aider, mais quand j'ai vu les bases du C, je trouve que le C++ n'est pas plus complexe.



                                  LOL.

                                  Suite ici : http://www.siteduzero.com/forum-83-563 [...] langages.html

                                  Personnellement si tu veux un truc qui ressemble à du C, je te conseille vivement C# et la famille .NET, si tu tiens à ta santé mentale.



                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    29 septembre 2010 à 21:18:06

                                    Salut, j'ai appris à programmer à travers python cela fait maintenant 3 ans. Depuis j'ai regardé à gauche, à droite, en haut, en bas, pour rechercher des trucs sympas à faire avec/après python et donc pour répondre à ta question rapidement :
                                    -JAVA -> beurk !
                                    Après le python, tu vas trouver ça dégueulasse au niveau de la syntaxe rigide.
                                    -FORTRAN -> idem ! (meme pour le calcul scientifik)

                                    -SCILAB -> bien pour le calcul scientifik.

                                    -C -> interfaçable avec python, donc très prometteur si tu pousse le 'vice'.

                                    -C++ -> à preferer au C à cause de la POO. Excellent si tu pousse le niveau.

                                    -Javascript -> ça n'a rien avoir... sauf si tu veux faire des site web avec python (CGI, ect...).

                                    -PHP -> idem

                                    -ZOPE -> GROS GROS (TROP GROS ?) OUTILS pour le web. Mais passionnant comme jamais (à mon gout).


                                    En bref, pour la prog ce qui est bon c'est : python/C++ (hum hum... avant d'etre 'FORT', disons que tu aura eu le temps de voir de l'eau couler sous les ponts...)

                                    Pour le web : python/ZOPE(mais attention, j'ai mis 2 semaine à découvrir, 1 mois à faire un petite truc, 5 mois... en gros c'est comme pour le C++, c'est long et pas évident...)

                                    Voila mon ressentis...


                                    Enfin si je me trompe pas....
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      30 septembre 2010 à 9:58:05

                                      Merci pour ton expérience, mon choix se tournera sans aucun doute vers le C ou C++ meme si je ne suis pas encore tout a fait conscient de la difficultée ...
                                      Si je peut dirrectement commencer par le C++ sans nécéssairement passer par le C avant, que je reste au début a une utilisation du langage basique sans nécéssairement attaquer les parties plus complexes du langage (POO, ...).
                                      Ce qui m'intéresse c'est si une utilisation du C++ comme on pourrais l'avoir avec le C (sans POO) serais plus difficile a aborder, car si ce n'est pas le cas, comme le dis NoHaR attaquer dirrectement le C++ laisse une perspective pour approfondir sans nécéssairement avoir a réaprendre l'utilisation de la synthaxe par exemple !
                                      Après je ne peut qu'immaginer a quel point le langage est compliqué, mais il faut quand même prendre en compte que je n'ai pas le même niveau que vous et j'en suis concient, donc je n'en aurais certainement pas la même utilisation (au moins pour les 2 prochaines années :p)
                                      Merci de votre aide !
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        30 septembre 2010 à 10:07:44

                                        Pour une utilisation basique, le C++ laisse le développeur s'écarter des problèmes de gestion de la mémoire (allocation/désallocation dynamique, entre autres), et fournit un mécanisme de références qui est plus safe à utiliser que les pointeurs classiques. De plus, C++ dispose d'une bibliothèque standard pas trop mal fournie.

                                        En cela, je pense que C++ sera plus simple (moins lourd) pour une utilisation "basique", même s'il demande d'apprendre un petit peu plus de syntaxe.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Zeste de Savoir, le site qui en a dans le citron !
                                        Anonyme
                                          30 septembre 2010 à 22:55:13

                                          Bonjour.

                                          Comme personne ne le fera à ma place, je suis ici pour suggérer Vala. C'est un langage jeune, encore en développement, qui reprend la plupart des concepts de C# mais compile vers du C, utilisant la Glib. Ça assure de très bonnes performances sans pour autant en faire un langage aussi complexe que C++.

                                          Sinon, pour échapper à la lourdeur syntaxique de Java ou C#, il y a Scala, c'est marrant aussi.

                                          À plus.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            1 octobre 2010 à 9:16:37

                                            Merci pour cette alternative, mais je vais malgré tout rester sur mon idée !

                                            Je me suis mis a la recherche d'un ouvrage sur le C++ et celui-ci me semble vraiment pas mal pour commencer.
                                            http://www.editions-eyrolles.com/Livre [...] pprendre-le-c
                                            Il ne requiert pas de connaitre le langage C mais impose quand même d'avoir pratiqué la programmation et pas forcément orienté objets
                                            avant propos:
                                            http://www.editions-eyrolles.com/Chapi [...] _Delannoy.pdf
                                            Le dernier lien est la table des matières détaillé du livre:
                                            http://www.editions-eyrolles.com/Chapi [...] _Delannoy.pdf
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              1 octobre 2010 à 19:03:43

                                              À noter qu'il existe Genie. C'est un langage qui a été créé dans la même pensée que Vala. Il est compilé vers du C, mais sa différence est qu'il a une syntaxe proche de Python.

                                              Site web de Genie.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                8 octobre 2010 à 14:45:02

                                                Citation : Plug'n'Play 512

                                                À noter qu'il existe Genie. C'est un langage qui a été créé dans la même pensée que Vala. Il est compilé vers du C, mais sa différence est qu'il a une syntaxe proche de Python.

                                                Site web de Genie.



                                                Sympathique comme langage, je ne connaissais pas. Une sorte de langage C mélangé avec Python, c'est génial.
                                                Cependant il n'y a pas beaucoup de documentation à ce sujet.
                                                Si quelqu'un trouve quelque chose, je suis preneur.
                                                Bonne journée,
                                                Realmagma.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  8 octobre 2010 à 14:49:52

                                                  Tu as Cython sinon, qui est vraiment un mélange de C et de Python.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  Quel langage aprendre en complément de Python

                                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                  • Editeur
                                                  • Markdown