Journal Microsoft libère F#

Posté par .
Tags : aucun
6
13
nov.
2010
On apprend <a href="http://blogs.msdn.com/b/dsyme/archive/2010/11/04/announcing-(...) source sûre que Microsoft a décidé de libérer le compilateur F# et les bibliothèques fondamentales de F# sous la licence Apache 2.

L'équipe de Mono s'attaque déjà à un portage sous Linux: http://tirania.org/blog/archive/2010/Nov-11.html

F# est un langage de programmation fortement typé multi-paradigme ciblant le Framework .NET englobant la programmation fonctionnelle ansi qu'impérative et orientée objet.

Ce langage est particulièrement destiné aux scientifiques.

La licence Apache 2 est approuvée par l'OSI et est compatible GPL3 uniquement.
  • # F# et OCaml

    Posté par (page perso) . Évalué à 10.

    Rappelons au passage que F# est très fortement inspiré d'Objective Caml, langage sorti des laboratoires de l'INRIA. Ça fait plaisir de voir la programmation fonctionnelle se démocratiser (petit à petit).

    http://caml.inria.fr
    • [^] # Re: F# et OCaml

      Posté par (page perso) . Évalué à 2.

      Ah bon, je croyais qu'il était inspiré par Eiffel (lui aussi de l'INRIA) ?
      • [^] # Re: F# et OCaml

        Posté par (page perso) . Évalué à 4.

        Le Fonctionnel, c'est la programmation à la Française !

        Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

        • [^] # Re: F# et OCaml

          Posté par . Évalué à 8.

          Pourtant, pour ce qu'on sait faire de fonctionnel...
        • [^] # Re: F# et OCaml

          Posté par . Évalué à 4.

          c'est de la programmation de fonctionnaire même :)
      • [^] # Re: F# et OCaml

        Posté par . Évalué à 1.

        Hein? Eiffel a été créer par Bertrand Meyer, il ne me semble pas qu'il ai travaillé à l'INRIA (ce n'est pas marqué sur wikipedia en tout cas).
        L'INRIA propose peut-être aussi une implémentation d'Eiffel, mais c'est différent..
  • # Calcul

    Posté par (page perso) . Évalué à 4.

    > Ce langage est particulièrement destiné aux scientifiques.

    Qu'en est-il du calcul parallèle ? Je me vois mal demander aux chercheurs d'utiliser un nouveau langage si celui n'apporte rien aux calculs parallèles, notamment sur un cluster.

    Qu'en est-il des performances ?

    Qu'en est-il de l'aspect multi-plateforme (a priori, spécifique Microsoft pour le moment si j'ai bien compris) ? Avant combien d'année pourra-t'on voir F# tourner sur la majorité des calculateurs du top500 ?

    S'il n'a ni les uns ni les autres, quels en sont ses réel avantages pour les scientifiques ?
    • [^] # Re: Calcul

      Posté par . Évalué à 5.

      C'est le piège habituel : les gens croient que la programmation fonctionnelle, qui utilise/adapte beaucoup de concepts mathématiques, est destinée aux scientifiques. Moi quand on me dit "langage destiné aux scientifiques", je comprends, comme toi je pense, Fortran…

      Les langages comme ML (et comme F#, cet espèce d'hybride microsoftien) ne sont pas là pour faire du calcul performant comme Fortran (ou Fortress), mais sont des objets de recherche à eux tous seuls. Ils sont bons pour la manipulation symbolique, et sont par exemple utilisés par les gens qui s'intéressent aux compilateurs, aux systèmes de typage, etc.
      • [^] # Re: Calcul

        Posté par (page perso) . Évalué à 1.

        Alors effectivement, ce n'est pas destiné aux << scientifiques >> au sens large mais plutôt à la recherche en informatique.
        • [^] # Re: Calcul

          Posté par . Évalué à 3.

          Non, la programmation fonctionnelle est très utile AUSSI dans l'industrie, voir l'avancée de Scala dans le domaine.
          • [^] # Re: Calcul

            Posté par (page perso) . Évalué à 2.

            Je suis sur un projet avec un industriel qui a choisi le Scala pour faire son développement. Il s'en mord les doigts car le code ne lui semble pas plus maintenable qu'avec un autre langage et il doit former chacun des développeurs qu'il embauche car il ne trouve pas de compétence Scala sur le marché. Sa boite est sur Paris.

            Bref, personnellement, je n'ai pas d'opinion sur le sujet mais pour ce premier projet industriel, cela ne semble pas gagné.
        • [^] # Re: Calcul

          Posté par (page perso) . Évalué à 2.

          « destiné » ?
          Pourquoi ?
          • [^] # Re: Calcul

            Posté par . Évalué à 5.

            destiné, on était tous les deux destinés ....

            Ou, en passant la bande à l'envers :

            On ira , où tu voudras quand tu voudras
            Et l'on s'aimera encore
            lorsque l'amour ce rat mort.

            Sedullus dux et princeps Lemovicum occiditur

            • [^] # Re: Calcul

              Posté par (page perso) . Évalué à 2.

              Destinée,
              On était tous les deux destinés
              À voir nos chemins se rencontrer
              À s'aimer sans demander pourquoi
              Toi et moi

              c'est ça à l'endroit ?
    • [^] # Re: Calcul

      Posté par . Évalué à 3.

      Je ne sais pas si ça répond à la question sur le calcul parallèle, mais je me rappelle de présentations sur Scala qui présageait de supers avancées dans ce domaine :

      http://days2010.scala-lang.org/node/138/140
      et
      http://days2010.scala-lang.org/node/138/150

      Ce dernier me semble le plus proche de ce qui t'intéresse :)
    • [^] # Re: Calcul

      Posté par (page perso) . Évalué à 0.

      Qu'en est-il de l'aspect multi-plateforme (a priori, spécifique Microsoft pour le moment si j'ai bien compris) ?
      Non, F# tourne déjà avec Mono, donc sous Linux, Windows, BSD, Solaris, Mac, Wii, PS3, sur les archi x86, x86-64, IA64, PowerPC, SPARC (32), ARM, Alpha, s390, s390x (32 and 64 bits). Donc sur à peu prêt n'importe quoi.
      Le seul doute qui subsiste, c'est sur son fonctionnement sur iPhone.

      S'il n'a ni les uns ni les autres, quels en sont ses réel avantages pour les scientifiques ?
      Utiliser un langage au paradigmes généralement utilisés dans les milieux scientifiques tout en ayant accès à des frameworks "mainstream" et ainsi bosser avec des gens non scientifiques. (Une brique F# peut être consommée en VB, en C++, en C#, etc. et inversement).
      Bref, c'est plus de choix pour ceux qui bossent déjà sous .NET, et c'est une bonne passerelle pour ceux qui viennent du monde scientifique et qui sont habitués aux Caml et autres dérivés.
    • [^] # Re: Calcul

      Posté par . Évalué à 1.

      C'est marrant lorsqu'on parle de langage performant en calcul parallèle ou ultra rapide, j'ai plutôt l'impression que la démarche scientifique c'est l'inverse.

      La montée en puissance des machines a permis de passer de Fortan à C/C++ et maintenant de passer de C/C++ à Python (ou Java)

      On compense la parte de performance du langage par la puissance de calcul et surtout par la simplicité d'écriture (On s'en fou de tourner 24h de plus sur le cluster si on peut écrire le code en 24h de moins)
      Sachant que la plus parts des scientifiques codes avec les pieds, le facteur limitant la vitesse est plus la compétence de l'auteur que la vitesse du langage.
      • [^] # Re: Calcul

        Posté par (page perso) . Évalué à 3.

        Je voudrais bien savoir la proportion de Fortran et de C ou de C++ sur une grosse machine de calcul ;-) En tout cas chez moi, le coeur est quasiment toujours en Fortran. Le python est utilisé en post-traitement donc pas en calcul parallèle pour le moment.

        Lorsque ton code utilise plus de 1000 coeur avec MPI et qu'il tourne plus d'un mois, crois moi, on essaye quand même d'optimiser !

        Sinon, le Fortran a énormément évolué, bien plus que le C et c'est maintenant un langage objet dans sa dernière version. La version suivante (ou en cours sur les différentes implémentations) est l'intégration du clustering au coeur du langage via les Co-Array.

        Bref, on n'est pas près de voir le Fortran disparaître des machines de calcul, surtout que les doctorants et les chercheurs ne sont pas des informaticiens en général et qu'il est à mon sens plus facile d'écrire du code propre et lisible en Fortran qu'en C ou C++.

        J'irais presque jusqu'à dire que du code Fortran peux se lire aussi facilement que du langage script python si la personne écrit en Fortran moderne.
        • [^] # Re: Calcul

          Posté par . Évalué à 2.

          oui le fortran moderne est tout à fait lisible, par contre quand on tombe sur du vieux code (F77) là c'est marrant, faut deviner ce que veut dire une suite LKJP, ou MTRN.

          Heureusement qu'on peut dépasser 80 colonnes maintenant ^^

          Il ne faut pas décorner les boeufs avant d'avoir semé le vent

          • [^] # Re: Calcul

            Posté par . Évalué à 2.

            le plus drole ce sont les commons. Ah si les variables implicits un grand moment de bonheur...
            • [^] # Re: Calcul

              Posté par . Évalué à 2.

              hé ho implicit none est un impératif tout comme use strict; l'est en perl.

              Il ne faut pas décorner les boeufs avant d'avoir semé le vent

              • [^] # Re: Calcul

                Posté par . Évalué à 2.

                je sais mais combien de vieux soft en 77 (voir pire 66) utilise au contraire les implicit. Et oui ca existe encore (un copain qui bosse dans le nucleaire se coltine ca tous les jours...).
  • # Le bon lien...

    Posté par . Évalué à 7.

    F# n'est pas le lien vers la page Wikipedia parlant du langage, mais celui vers la page parlant de la lettre F.
    Le bon lien est F_Sharp
  • # comme ironpython et ironruby

    Posté par . Évalué à 3.

    plutot que de liberation on devrait parler d'abandon et de "on refile a la communaute libre qui vont maintenir ca a notre place".
    • [^] # Re: comme ironpython et ironruby

      Posté par (page perso) . Évalué à 4.

      Je doute très fortement que Microsoft va utiliser la même stratégie pour F#. C'est un des langages supportés de base dans Visual Studio (les autres étant C, C++, C# et VB), ce qui est un engagement très fort de la part de Microsoft.
    • [^] # Re: comme ironpython et ironruby

      Posté par . Évalué à -4.

      Et Dieu sait que Miguel « Chien-chien » de Icaza va s'empresser d'obéir à son maître.
    • [^] # Re: comme ironpython et ironruby

      Posté par . Évalué à 5.

      Quand ms fait du proprio, ils se font engueuler parce qu'ils feraient mieux liberer leur code.
      Quand ms libere son code, c'est des encules qui exploitent la communaute.

      If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

  • # Et OCaml?

    Posté par (page perso) . Évalué à 1.

    Quel est l'intérêt par rapport à OCaml?

    http://devnewton.bci.im

    • [^] # Re: Et OCaml?

      Posté par . Évalué à 3.

      C'est à certains détails près une implémentation d'OCaml tournant sur le CLR.

      Donc le principal intérêt est à mon avis de pouvoir utiliser facilement toutes les DLLs .NET (y compris bien sûr le framework .NET lui même) et que le code écrit en F# soit utilisable par un du code .NET.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.