Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pourquoi tant de langages ?

    21 octobre 2008 à 18:07:46

    Ciao belli,

    Pourriez-vous me dire ou m'expliquer pourquoi il y a tant de langages de programmations alors qu'ils font tous la même chose ?

    Tous ont :

    des variables
    des structures de décisions
    des boucles
    des tableaux
    des interfaces graphiques possibles, etc, etc...

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      21 octobre 2008 à 18:10:11

      Je te propose de lire cette article : les différences entre les langages de programmation.
      Qui devrait t'aider à répondre à la question que tu te poses. :)
      • Partager sur Facebook
      • Partager sur Twitter
        21 octobre 2008 à 18:15:39

        "C'est parce que la diversité fait la force mon padawan" ;-° .
        • Partager sur Facebook
        • Partager sur Twitter
          21 octobre 2008 à 18:32:12

          ils ne font pas tous la meme chose
          et quand ils le font, ils le font rarement de la meme facon.
          • Partager sur Facebook
          • Partager sur Twitter
            21 octobre 2008 à 18:36:40

            Citation : pimpinou

            Ciao belli,

            Pourriez-vous me dire ou m'expliquer pourquoi il y a tant de langages de programmations alors qu'ils font tous la même chose ?

            Tous ont :

            des variables
            des structures de décisions
            des boucles
            des tableaux
            des interfaces graphiques possibles, etc, etc...

            Merci



            Cette impression est en fait relativement fausse, elle vient du fait que tu ne regardes pas les bons points. Je vais prendre un exemple. Ce que tu dis est comparable à :

            « Pourquoi y'a-t-il tant de livres ? Après tout, ils ont tous des pages avec des mots, des chapitres, un sommaire et une couverture. C'est débile d'en faire autant : n'en gardons qu'un, ça reviendra au même ? »

            Un livre ressemble à un autre livre, mais pourtant on a plein de livres différents car c'est leur contenu, les informations et les pensées qu'ils véhiculent, qui sont intéréssants et qui varient.

            L'idée est un peu la même avec les langages : tous ont l'air de se ressembler, mais pourtant n'ont pas la même pensée derrière. C'est expliqué plus en détail dans l'article cité par Dark-Side.

            En plus, ce que tu affirmes est faux. Je connais au moins un langage sans tableaux, ni variables, ni boucles, qui permet de développer très sérieusement (c'est pas une blague style Brainfuck, quoi). Si ça t'intéresse, il s'agit du langage Haskell.
            • Partager sur Facebook
            • Partager sur Twitter
            J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
              21 octobre 2008 à 18:45:32

              Je partage tout à fait ton point de vue GuilOooo...
              Tu prends 2 langages : le c et le java,un et tres rapide, mais pas aussi portable que l'autre qui est plus lent et qui lui,est orienté objet...
              Et d'autres langages sont fait spécialement pour le réseau(comme LUA je crois),d'autres plus orientés algo(OCaml il me semble xD)...

              Mais de toute facon,il n'existe réellement qu'un langage, le binaire ;)

              Voili voilou !
              • Partager sur Facebook
              • Partager sur Twitter
                21 octobre 2008 à 18:49:42

                le binaire, c'est un langage de quoi ? de description de valeurs numeriques entieres et positives ?
                • Partager sur Facebook
                • Partager sur Twitter
                  21 octobre 2008 à 18:58:12

                  euh les langages orientés réseau, comme tu dis, je citerais Erlang, mais surement pas lua :D
                  j'utilise lua moi pour scripter, dans awesome par exemple. lua est assez utilisé pour les fichiers de configurations de trucs un tant soit peu complexes ( awesome, le gestionnaire de fenetres, est un bon exemple). après, j'imagine qu'on doit pouvoir faire du réseau en lua, mais c'est clairement pas adapté
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 octobre 2008 à 19:01:00

                    Le C est pratique parce qu'il est rapide? J'ai bien compris conflict?


                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      21 octobre 2008 à 19:27:39

                      Non. Le C n'est pas pratique, *mais* il est rapide.

                      Edit : le modo arbitraire a encore frappé.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 octobre 2008 à 19:50:33

                        Oui, le C est rapide alors que le python ou le java est interpreté, donc plus lent...
                        Mais sache que la lenteur n'est pas toujours significative...
                        Sinon, excuse-moi Tuxer, tu as raison,j'aurais plutot du donner erlang comme exemple...

                        Maintenant, un autre critère est aussi ce qu'il faut installer sur le PC client... car pour java,l'installation est conséquente...
                        Pour python aussi, mais heureusement, il y a py2exe :ange:
                        Alors que pour le C, il marche tout de suite, rien a installer ^^
                        Sinon, le binaire, c'est le langage du processeur, il désigne les circuits du processeur à faire fonctionner...
                        Mais en réalité, personne ne code en binaire...
                        On écrit plutot en hexadécimal car il est beaucoup plus court d'ecrire FF que 11111111( = 255)...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 octobre 2008 à 19:58:55

                          En vérité, si on veut être très pointilleux, le binaire n'est qu'un moyen d'écrire des nombres, au même titre que l'hexa ou le décimal. Donc dire que c'est un langage n'a pas vraiment de sens (à part si on commence à partir dans les travaux de Kurt Gödel etc etc). On parlera plutôt de langage machine.

                          Aussi, conflict, attention, car cedont tu nous parles là, c'est de l'implémentation du langage (compilateur, interpréteur). La discussion initiale portait plutôt sur les langages en eux-mêmes que sur leurs implémentations, non ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                          J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                            21 octobre 2008 à 20:17:38

                            conflict, ce que tu dis sur le binaire, c'est faux.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              21 octobre 2008 à 20:47:14

                              GuilOooo...
                              Euh...si xD
                              Sinon, c'est vrai que le binaire est une manière de compter...
                              Maintenant, pourquoi avoir choisit le binaire !?!?
                              Simplement car un processeur travaille avec des transistor NPN ou PNP, pour 0 ou 1...
                              Je ne vais pas aller plus loin car j'ai peur de mal m'exprimer, et donc de raconter des conneries...
                              Ou même de dévier la conversation...

                              Sinon, pimpinou, quel était le but de la conversation ?
                              Etait-il de t'orienter vers un langage ?
                              Si oui, perso, j'ai commencé avec le PHP puis le C et le C++ et bien d'autres...
                              Mais j'ai un petit faible pour Blender couplé avec python ^^

                              @+ et bonne continuation
                              • Partager sur Facebook
                              • Partager sur Twitter
                                21 octobre 2008 à 21:09:59

                                ca ne fait pas du binaire un langage de prog

                                au sens propre du terme, on pourrait ecrire avec un editeur hexa, en binaire, mais : 1 ca serait ingerable, 2 on aurait meme pas la possibilite d'inserrer "entre deux lignes"

                                et euh... si tu dis : binaire, ca veut dire que tu n'as que deux instructions : 0 et 1, et que tu peux tout faire avec.

                                or c'est totalement faux, on a pas des processeurs 1 bits, mais plutot entre 8 et 128 bits
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  21 octobre 2008 à 23:00:16

                                  Le binaire n'est pas un langage de programmation, c'est un alphabet, au même titre que le jeu de caractere ascii...
                                  Mais en ascii on peut ecrire plein de langages, le français (non accentué), l'anglais, le C, le python, l'assembleur.

                                  l'assembleur lui est un langage, et il peut s'ecrire directement en binaire (comme au debut de l'informatique, où on utilisait des cartes perforées pour programmer une machine)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    21 octobre 2008 à 23:08:22

                                    ouais enfin t'as quand meme une etape de compilation entre l'asm et le code machine (et un code, c'est pas un 0 ou un 1, donc c'est pas LE binaire), et cette etape de compilation, c'est pas un simple remplacement.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      21 octobre 2008 à 23:35:25

                                      Un assembleur (le programme) va principalement remplacer les adresses symboliques par les adresses réelles, remplacer les macro par leur definition et convertir les mnémoniques en binaire (et mettre le tout dans l'ordre comprehensible par le µProc).

                                      Après il est possible qu'il existe des assembleurs qui font de l'optimisation, mais ce n'est pas obligatoire...
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        22 octobre 2008 à 9:33:02

                                        Citation : conflict

                                        Oui, le C est rapide alors que le python ou le java est interpreté, donc plus lent...



                                        Le java est un langage semi-interprété !
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          22 octobre 2008 à 9:39:28

                                          Merci à vous d'avoir tenté de m'expliquer mais désolé, je pige toujours pas.

                                          Dans l'article dont on m'a donné l'adresse, l'auteur dis lui même, je le cite :" On peut légitimement se demander : « et alors, ça change quoi ? ». Selon que l’on programme en C ou en Python, on ne va pas penser la même chose, même si au final on écrira deux instructions équivalentes."

                                          Quand j'ai envoyé ce message, je pensais que quelqu'un allait me dire que tel ou tel langage était incapable de faire ceci ou tel autre cela et que c'est ça qui fait qu'ils sont tous utiles.
                                          Mais, quand on lit les statistiques de developpez.com on se rend compte que c/c++, java, dotnet et python représentent >90% des langages utilisés. Alors que pour une centaine d'autres, le 0.01% n'était même pas atteind. Et je ne parle même pas de langages exotiques.

                                          En gros si j'ai compris, au lieu de créer tant et tant de langages on aurait tres bien pu créer de nouvelles bibliothèques pour le c ( par ex: <html.h>, <objet.h>, etc et ainsi adjoindre au C le peu qu'apportent ces langages.

                                          Quelqu'un m'a répondu en disant qu'il connaissait un langage qui n'utilisait pas de variable, pas de tableaux, etc... Mais, qu'il le veuille ou non, que les créateurs dudit langage aient eu envie d'appeler un chat, un ninon, il faut quand même bien des entree/sortie, stocker des données en mémoire et permettre au programme de choisir sa réponse en fonction de ceci ou ca, nonobstant le fait qu'il doit exister aussi dans ce langage un moyen de ne pas recopier 2221 fois le même code?!

                                          Qu'on change de langage, de paradigme, de sémentique ou que sais-je encore, c'est quand même au final pour aboutir à la même chose, non ?
                                          Il est vrai qu'on peut aller à Rome en train à cheval en voiture ou à pieds et qu'on peut y aller par la montagne, la mer ou en passant par Alger, mais au final on est tous partis d'ici pour aller à Rome.

                                          Désolé et merci quand même.

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Anonyme
                                            22 octobre 2008 à 9:55:35

                                            Oui, ou encore "qu'on mange des langoustines ou de la purée on fait caca pareil". Ouais désolé.

                                            Il existe des langages très différents les uns des autres par les concepts qu'ils mettent en avant, et pas uniquement par leur syntaxe. Effectivement, s'il existe un compilateur, celui-ci traduira toujours tout ça en assembleur, et donc en fera un programme impératif. Mais pas forcément de la même façon, parce que la sémantique de ton programme pourra laisser apparaître (ou non) des aspects que d'autres langages ne pourraient pas faire ressortir.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              22 octobre 2008 à 10:02:22

                                              Le C ne permet pas de créer des pages web...
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                22 octobre 2008 à 10:21:00

                                                @ Zarmakuizz : Ah bon ? Un programme en C qui serait appelé par un serveur web et qui générerait une page HTML en sortie, ce n’est pas possible ?

                                                Ça alors, mais comment on faisait avant le Perl ?
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  22 octobre 2008 à 10:31:12

                                                  Ah? Pas con... mais il faut d'abord que le programme se fasse appeler, ceci dit.
                                                  "On" a ensuite créé le C++ parce que la POO en C, c'est la galère.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    22 octobre 2008 à 10:40:25

                                                    apache te liste bien les fichiers et dossiers quand il ne trouve pas d'index.html, et pour faire ca, il fait une page web...


                                                    bon les langages de programmation servent TOUS a faire des programmes.

                                                    apres, faut voir comment on les fait, quelles contraintes on a, quels sont les portions de codes qui sont reutilisables ailleur, a quelle vitesse s'execute le programme, est-ce-que ca marche sur plusieurs processeurs, et quelle productivite il apporte.

                                                    si tu prends du php3 et du php6, les deux permettent la meme chose, seulement, dans l'un, tu vas coder un truc 15 fois plus long et 15 fois plus lent.

                                                    beaucoup de gens disent que caml sert essentiellement a faire des compilateurs, parce-que caml est TRES bon pour la manipulation de types algebriques (un AST est un type facilement manipulable en caml), alors que les autres langages se debrouillent salement pour ca.

                                                    Beaucoup de gens disent que le web appartient a python, ruby, php, java, ASP (et donc tout les .net), parce-que ce sont des langages qui permettent de faire un site web pro en quelques heures voir minutes.

                                                    apres, pour la programmation systeme, il faut un truc qui s'interface parfaitement avec du C, en general, on prend du C, du Cpp ou de l'asm.

                                                    pour la programmation de plugins (tout logiciels confondus) soit on charge une DLL (ou un .so pour nous, les linuxois) et donc on fait du C, soit on utilise un langage de script comme :
                                                    -python (comme dans xchat et gimp)
                                                    -lua
                                                    -tcl (comme dans xchat et amsn)
                                                    -perl (comme dans xchat)
                                                    -guile (comme dans xchat)
                                                    -scheme / lisp (comme dans gimp et emacs)
                                                    etc...

                                                    Bref, toute forme de nouriture sert a se nourrir, et tout les langages de programmation servent a programmer, mais tous n'ont pas le meme "gout"
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      22 octobre 2008 à 10:51:33

                                                      Chaque langage de programmation est propre à une tache, a des avantages ou des inconvéniants. Par exemple:
                                                      C -> un langage *rapide* MAIS pas portable
                                                      Java -> Un langage portable, MAIS doit être interprété (donc *lent*)

                                                      Je vais te donner un exemple, les moteurs de recherches!!
                                                      (Je suis désolé, mais je ne maitrise pas les langages de prog, je n'ai que les bases en Java)
                                                      En effet, tu peux créer ton moteur en PHP et le coupler à une BDD pour tout ce qui touche le visuel, ce qui sera relativement efficace.
                                                      Cependant, deux choix s'offre à toi par la suite, et tu devra faire avec ce que tu connais. En effet, pour alimenter ta BDD tu pourras te créer un "Crawler" en PHP, ce qui sera assez efficace, mais vraiment pas aussi rapide qu'un crawler en C, ou en python... Et cela résume bien le fait que des dizaines de langages existent.
                                                      Chaque langage doit être exploité au maximum de ces capacités, et ne pas être utilisé pour des taches qui ne lui sont pas propres...
                                                      Cependant, avec tous les langages, tu pourras toujours arriver au même résultat!!
                                                      De plus, si tu code un programme en C et le même en Java, le C étant nativement plus rapide d'exécution, il se peut que le Java s'exécute plus vite que celui en C, cela dépend de la qualité de ton code!
                                                      Voilà voilà!! :)
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP
                                                        22 octobre 2008 à 10:54:08

                                                        euh... okana, java n'est pas si lent que ca, et C est portable, ce sont les libs autour qui ne le sont pas.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          22 octobre 2008 à 11:00:26

                                                          Oui enfin je voulais dire que java doit être interprété pour s'exécuter (bien que l'on puisse faire des .exe avec ses .jar) mais s'il est codé sous windows, ont peut filer le .jar à un type sous linux ou mac sans problème, mais en ce qui concerne le C, il doit être compilé sous le système d'exploitation concerné^^
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP
                                                            22 octobre 2008 à 11:58:47

                                                            Merci,

                                                            okana et coucou747 m'ont fait comprendre.
                                                            Ce que vous me dites me fait penser qu'un bon programmeur devrait connaître tous ces langages afin de choisir le plus approprié à ce qu'il veut créer ?

                                                            Je suppose qu'il est cependant possible de choisir aussi en fonction de ses goûts ?
                                                            Par exemple eclipse est codé en java mais aurait tout aussi bien pu l'être en c, c++ ou .NET ?
                                                            Par contre, il est vraissemblable que brainfuck n'ait pas convenu.

                                                            C'est beaucoup plus clair maintenant
                                                            merci
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Pourquoi tant de langages ?

                                                            × 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