Partage
  • Partager sur Facebook
  • Partager sur Twitter

[OCaml] L'intérêt du langage

Sujet résolu
    18 février 2009 à 13:34:07

    Bonjour à tous :) .

    Je ne vais pas vous exposer ici un problème dans un programme, ou quoi que ce soit d'ordre technique.
    C'est après m'être baladé sur les forums que cette question m'est venue.

    J'ai beaucoup lu que OCaml (et éventuellement Haskell) était de très bons langages pour débuter, car différents des C, Java ou autres...
    J'ai aussi lu que quelqu'un connaissant déjà un langage de programmation plus "conventionnel" aurait beaucoup à apprendre de ces langages (dits fonctionnels si j'ai bien compris).

    Cependant je n'ai jamais compris exactement pourquoi?

    Je voudrais donc des explications objectives là dessus. Qu'apportent-ils réellement au programmeur? Permettent-ils de faire des choses différentes?
    J'insiste sur le "objectives" car souvent les gens ont des préférences et les mettent en avant sans raison vraiment valable pour les autres...

    Voilà en attendant des réponses, merci d'avance!

    FoeSteR `

    PS: le module de recherche ne fonctionne pas, désolé si le sujet a déjé été traité...
    • Partager sur Facebook
    • Partager sur Twitter
      18 février 2009 à 13:57:32

      Je voulais aussi faire un topic pour posé les mêmes questions que toi. ;)
      J'espère que quelques personnes auront l'amabilitées de nous répondre. :)

      • Partager sur Facebook
      • Partager sur Twitter
        18 février 2009 à 13:59:08

        OCaml te force à être rigoureux (merci le typage). Il ne t'emmerde pas avec des concepts dont tu te fous pour programmer (la gestion de la mémoire). Il permet d'aborder tous les styles (programmation fonctionnelle, impérative, objet, sans compter les extensions comme JoCaml), est incroyablement expressif, et en plus il sent bon la noisette.

        Par contre pour Haskell on t'a menti. Dommage.
        • Partager sur Facebook
        • Partager sur Twitter
          18 février 2009 à 14:11:40

          Humm en plus j'adore la noisette ! :p

          Ok merci pour ta réponse :)

          (Je mets pas en résolu de suite au cas où il y aurait d'autres réponses)
          • Partager sur Facebook
          • Partager sur Twitter
            18 février 2009 à 18:58:20

            Je suis d'accord avec ChaussonGratuit quand il parle d'ocaml, mais la partie sur haskell me paraît assez injuste.

            Il y a beaucoup de choses à apprendre en codant en haskell. Ce n'est peut-être pas un bon langage pour commencer (et encore, pourquoi ?).
            Mais, le message de l'OP demandait aussi si quelqu'un qui venait d'un autre langage pouvait apprendre beaucoup de ces langages.
            En effet, en plus d'apprendre une bonne partie de ce qu'on apprend avec ocaml (sauf la programamtion impérative et orientée objet, en fait), tu apprends aussi à profiter de l'évaluation paresseuse, qui permet de faire des trucs très jolis.
            Évidement tu vas pas utiliser ça tous les jours si tu codes en Java, mais peut-être qu'un jour tu trouveras une solution super élégante (et efficace) à un problème en utilisant des sturctures de données paresseuses.
            Et puis, tu as une bibliothèque standard pleine de fonction qui utilisent des structures assez abstraites (des monoides, des monades,...), et quand tu vois quelqu'un réécrire un code de 20 lignes en 3, et en généralisant le tout, ça te fait un bon exemple de réutilisation de code, et de comment écrire du code générique.

            • Partager sur Facebook
            • Partager sur Twitter
              18 février 2009 à 19:40:16

              Salut !

              D'un côté il y a les langages couramment utilisés (C/C++, Java etc.) qui sont tous impératifs ou à objets (je schématise volontairement), et de l'autre des langages plus exotiques. Parmi ceux-là, les langages fonctionnels proposent une autre façon de voir les choses, et enseignent une autre manière de programmer. OCaml, quant à lui, réunit (cela a déjà été dit plus haut) la prog fonctionnelle et des traits impératifs, des objets... ce qui permet de l'utiliser dans des situations variées en choisissant le style de prog le plus approprié. Dans tous les cas, tu peux y voir un encouragement à aborder un problème sous plusieurs angles (immense bienfait).

              Cordialement,
              Cacophrène
              • Partager sur Facebook
              • Partager sur Twitter
                18 février 2009 à 20:07:17

                Merci à tous pour vos réponses ;) .
                Je mets en résolu apparemment tout à été dit :) .
                • Partager sur Facebook
                • Partager sur Twitter
                  18 février 2009 à 22:50:33

                  On a parlé des langages fonctionnels OCaml, Haskell, il ne faudrait pas oublier Prolog qui apporte une autre manière de réfléchir à la programmation, aucun rapport avec la programmation impérative ni fonctionnelle.
                  En Prolog, on se contente de déclarer des faits, et des règles travaillant sur ces faits, on pose une question et Prolog se débrouille pour trouver toutes les solutions à la question, a toi de donner les bonnes règles.
                  C'est complètement déroutant pour un programmeur venant de l'impératif, il n'y a plus de boucles, d'affectations, il n'y a que la récursivité et les unifications, celà permet de se remettre en question, et ça fait du bien :)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le crayon la gomme et le papier sont les meilleurs outils du programmeur !

                    19 février 2009 à 1:25:50

                    "Plus t'en mets apprends, plus t'en as." *sort*

                    A chaque paradigmes sa façon d'appréhender un problème donné. Tu ne tireras pas le même enseignement d'un langage orienté objet que d'un langage fonctionnel, car tous deux doivent respecter un certain style de programmation et ont une "vision du problème" différente. Il y a même des problèmes plus difficile à résoudre ou à aborder avec certains langages, tandis que d'autre le permettront très simplement. Le choix du langage reste une histoire de goût et/ou de besoins propres à chacun.

                    Pour moi ce qui fait qu'un langage est bien pour débuter dans la programmation est un langage qui te permet de t'occuper essentiellement des principes de la programmation, par là je veux parler des concepts de bases : variables, structures de contrôle, fonctions etc ... Qui t'ouvrent sur des manières de penser parfois différentes que celle dont on est habitué. Et non les détails de syntaxe comme les ; en fin d'instruction, les {...} ou (...) qui sont propres à chaque langages. Bien que ces petits détails force une certaine rigueur (parfois rebutante), je pense qu'au début (phase de découverte), ils cachent souvent les vrais aspects de la programmation.
                    Par la suite, il est préférable d'étudier d'autres langages pour approfondir ses connaissances en abordant des sujets que le premier langage ne trait pas ou peu.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 mai 2016 à 23:54:06

                      Non ce n'est pas un langage facile pour débuter.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 mai 2016 à 2:03:16

                        Quitte à remonter un sujet de plus de 7 ans, autant y mettre des arguments constructifs... (comme moi :D)

                        • Partager sur Facebook
                        • Partager sur Twitter

                        [OCaml] L'intérêt du langage

                        × 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