Précédent   Forum du club des développeurs et IT Pro > Autres langages > Langages fonctionnels > F#
F# Forum d'entraide sur la programmation en langage fonctionnel F#
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 20/10/2009, 14h32   #1
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 962
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 962
Points : 1 148
Points : 1 148
Par défaut Nouvelle version de F# (1.9.7.8)

Pour ceux qui ça intéresse, une mise à jour de F# vient d'être faite, en même temps que la Bêta 2 de Visual Studio 2010. Les détails se trouvent ici :
http://blogs.msdn.com/dsyme/archive/...or-vs2008.aspx

En bref :
  • Nouvelles contraintes "comparison" et "equality".

    Du coup, contrairement à Caml, le code "(fun x -> x) = (fun x -> x)" ne compile pas. Par conséquence, appeler List.sort sur une liste de records qui ont un champ non comparable échouera aussi (sauf si on a défini une fonction de comparaison ou si le type se compare de façon physique).
  • Support de Silverlight (intégré dans la release de F#)
  • Syntaxe simplifiée pour la surcharge de méthodes (plus de OverloadID à spécifier)
  • Chaque fichier (sauf le main) doit indiquer son nom de module ou namespace (au lieu de prendre le nom du fichier)
  • Toute la documentation F# est intégrée à MSDN
  • Diverses améliorations de la bibliothèque standard (simplification de l'asynchrone), qui est maintenant stable. Il n'y aura plus de renommages et autres incompatibilités.
  • Et plein d'autres choses (améliorations dans le système objet où des casts ne sont plus nécessaires, l'interopérabilité avec les autres langages a aussi été travaillée, de même que l'intégration dans Visual Studio et les messages d'erreur).
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2009, 18h53   #2
SpiceGuid
Rédacteur
 
Avatar de SpiceGuid
 
Homme Damien Guichard
Inscription : juin 2007
Messages : 1 513
Détails du profil
Informations personnelles :
Nom : Homme Damien Guichard
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 1 513
Points : 2 497
Points : 2 497
Citation:
Toute la documentation F# est intégrée à MSDN
C'est un très bon signal, parce que Microsoft ayant trop de technos pour les maintenir toutes indéfiniment, les entreprises ont souvent peur de miser sur le mauvais cheval et demandent des signes d'engagement à long terme.

Une autre chose que les entreprises web-technos demandent c'est un projet de site commercial à forte visibilité, et là Scala a semble-t-il marqué plus de points avec Twitter et LinkedIn.

Mon point de vue:
  • F# est vendu comme un langage fonctionnel qui s'intègre très bien au modèle objet de .Net, ça fonctionne mal parce qu'aucun programmeur C# ne veut se marginaliser en s'éloignant du paradigme dominant
  • Scala au contraire est vendu comme un super-langage à objets qui fait tout ce que fait Java/Ruby/Python mais en mieux, ça fonctionne mieux parce que le choc culturel est moins grand

À mon avis le changement de paradigme ne peut se faire qu'accompagné d'un discours transitionnel. Au début il faut insister non pas sur la vraie nouveauté mais sur la liste de tous les apports superficiels, c'est ce que j'appelle l'argumentaire ++ qu'on pourrait résumer ainsi:
Citation:
C++ c'est comme le C mais avec les commentaires //
C# c'est comme C++ mais avec une machine virtuelle
C'est sur ce modèle qu'il faut bâtir les slogans qui vendront F# aux programmeurs C#. Il faut toujours dire qu'on fait mieux mais dans la continuité et pour ça il faut mettre en avant les nouveautés inconséquentes qui ne coûtent rien et remettre à plus tard la pédagogie sur ce qui dérange les habitudes établies.

gorgonite semble penser que F# est vraiment fonctionnel tandis que Scala est plus POO. Je pense au contraire que seul Haskell est vraiment fonctionnel, et que tout le reste c'est de l'impératif avec un typage évolué. Il faut garder à l'esprit que ce qui succèdera à la POO ressemblera pendant encore longtemps à de la POO++ et ne pourra être accepté que comme tel.
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo.
Avant de poser une question je lis les règles du forum.
SpiceGuid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2009, 23h14   #3
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 962
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 962
Points : 1 148
Points : 1 148
Citation:
Envoyé par SpiceGuid Voir le message
F# est vendu comme un langage fonctionnel qui s'intègre très bien au modèle objet de .Net, ça fonctionne mal parce qu'aucun programmeur C# ne veut se marginaliser en s'éloignant du paradigme dominant
Ca fonctionne mal parce que F# est encore trop récent et trop expérimental. Si tu as écrit du code F# il y a un an, il ne compile plus à cause des nombreux changements dans le langage. C'est assez gênant pour qui veut faire un projet à long terme. Mais maintenant, tout se stabilise.

Avec la première version stable de F# (22 mars 2010), la documentation MSDN qui donne des exemples en F#, la distribution de F# dans Visual Studio (sans installer de plugin à part), je pense que ça va changer pas mal de choses. Ce sera bien plus rassurant et le fait qu'il y ait une grande entreprise derrière ajoute du sérieux.

Citation:
Envoyé par SpiceGuid Voir le message
Scala au contraire est vendu comme un super-langage à objets qui fait tout ce que fait Java/Ruby/Python mais en mieux, ça fonctionne mieux parce que le choc culturel est moins grand
Euh, je ne vois pas qui peut croire ce que tu décris. Pour moi, c'est peut-être Java en mieux, mais ce n'est nullement supérieur à Ruby. C'est un Java qui tend vers Ruby. Mais oui, c'est vrai, le choc culturel est probablement moins grand (parce que Ruby et Python sont plus connus que Caml).

C'est sur ce modèle qu'il faut bâtir les slogans qui vendront F# aux programmeurs C#. Il faut toujours dire qu'on fait mieux mais dans la continuité et pour ça il faut mettre en avant les nouveautés inconséquentes qui ne coûtent rien et remettre à plus tard la pédagogie sur ce qui dérange les habitudes établies.

Citation:
Envoyé par SpiceGuid Voir le message
Je pense au contraire que seul Haskell est vraiment fonctionnel
Parce que tu associes fonctionnel et pureté.

Citation:
Envoyé par SpiceGuid Voir le message
Il faut garder à l'esprit que ce qui succèdera à la POO ressemblera pendant encore longtemps à de la POO++ et ne pourra être accepté que comme tel.
Je pense que c'est une bonne chose. La POO a apporté beaucoup de choses qu'il ne faut pas jeter, il construire au-dessus.
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2009, 20h48   #4
gorgonite
Rédacteur/Modérateur

 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur d'études
Inscription : décembre 2005
Messages : 9 963
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 963
Points : 18 158
Points : 18 158
Citation:
Envoyé par SpiceGuid Voir le message
gorgonite semble penser que F# est vraiment fonctionnel tandis que Scala est plus POO. Je pense au contraire que seul Haskell est vraiment fonctionnel, et que tout le reste c'est de l'impératif avec un typage évolué. Il faut garder à l'esprit que ce qui succèdera à la POO ressemblera pendant encore longtemps à de la POO++ et ne pourra être accepté que comme tel.


sympa de parler en mon nom, mais je suis encore capable d'exprimer mes idées si je le souhaite, et de manière plus précise
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2009, 19h07   #5
SpiceGuid
Rédacteur
 
Avatar de SpiceGuid
 
Homme Damien Guichard
Inscription : juin 2007
Messages : 1 513
Détails du profil
Informations personnelles :
Nom : Homme Damien Guichard
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 1 513
Points : 2 497
Points : 2 497
Désolé, je n'ai pas cherché à exprimer maladroitement tes opinions, j'ai seulement maladroitement cherché à exprimer les miennes.

Ce que je voulais dire c'est qu'il ne faut pas déplorer le fait que tel ou tel code Scala ressemble à du Java dopé aux types fonctionnels. Que c'est précisément la raison d'être de F# et Scala d'apporter des types fonctionnels en plus des types mutables habituels. Que le plus important c'est que ces nouveaux langages trouvent leur place pour qu'il y ait enfin d'autres styles possibles que la POO préformatée à la façon Java.
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo.
Avant de poser une question je lis les règles du forum.
SpiceGuid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2009, 19h05   #6
ylarvor
Membre Expert
 
Inscription : août 2002
Messages : 1 249
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 249
Points : 1 457
Points : 1 457
Envoyer un message via Yahoo à ylarvor
Par défaut Programmation fonctionnelle et C#.

Jusqu'à récemment, je n'avais jamais entendu parler de programmation fonctionnelle. D'ailleurs, c'est avec un certain enthousiasme que j'ai découvert la définition de la programmation fonctionnelle, très instructive sur la différence entre fonctionnel et impératif, f# et c#.

http://fr.wikipedia.org/wiki/Programmation_fonctionnelle
Microsoft a choisi de populariser le fonctionnel avec F# et l'initiative Scala dans le monde java qui connait un certain succès joue peut être un rôle dans cette décision de microsoft.

De toute façon, c'est vrai que C# depuis le version 2.0 récupère des fonctionnalités issus du fonctionnel comme Linq par exemple. Le fonctionnel est donc dans l'air du temps...

Pour les programmeurs issus de cursus informatique et formés à oCAML, l'apprentissage de F# sera probablement naturel, surtout si F# entre à l'université...

Pour les autodidactes et les salariés formés par des stages de formation continue court,3 semaines ou 3 mois dans un centre de formation objet, il faudra un temps d'adaptation pour travailler avec F#. Répondre comme Tomas Petricek à la question "qu'apporte le fonctionnel aux entreprises ?" est à mon avis important pour des salariés qui pourront intégrer cet outil supplémentaire à leur quotidien du jour au lendemain en 2010.

en octobre, robert pickering a donné une conférence surement tres interessante sur ce sujet : http://www.zenika.com/conference/dot...ert-pickering/

Yann.
ylarvor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h03.


 
 
 
 
Partenaires

Hébergement Web