Question

En tant que développeur C # depuis la version 1.0, F # a capturé mon temps libre ces dernières semaines. Les ordinateurs sont maintenant vendus avec 2, 4 .. Les cœurs et le multi-threading n’est pas toujours simple à réaliser.

Pour le moment, je constate que F # a un grand potentiel de charge de travail compliquée et / ou lourde. Pensez-vous que F # deviendra (une fois RTM) un acteur important sur le marché des logiciels d'entreprise?

Était-ce utile?

La solution

Je pense que, peu importe que F # devienne une importation pour Enterprise Software, il sera essentiel d’isoler des portions de code purement fonctionnelles dans n’importe quelle langue pour exploiter le potentiel des ordinateurs multicœurs. Par exemple, les Parallel Extensions for .NET de Microsoft sont excellents, mais il reste encore beaucoup de marge pour faire des erreurs en parallélisant du code qui ne peut pas s'exécuter en parallèle. Si le code se présente sous la forme d'un langage purement fonctionnel ou d'un sous-ensemble de votre langage purement fonctionnel, vous êtes assuré de pouvoir l'exécuter en parallèle. Le truc consiste alors à déterminer le moyen le plus efficace d’attribuer le travail.

Je dirais que le rôle que joue F # dans ce domaine serait davantage un catalyseur pour mettre les gens sur le qui-vive et commencer à réfléchir de manière plus déclarative.

Autres conseils

Je pense que F # a l’occasion de percer certains des créneaux des applications d’entreprise, tels que la modélisation mathématique (par exemple pour les applications bancaires / de négociation). La suppression des effets secondaires des fonctions offre également de grandes possibilités de parallélisme et de mémorisation. Il est difficile de dire si ces langues auront un jour le potentiel de développement pour le grand public, mais à mon avis, les problèmes sont plus susceptibles d’être liés à l’activité humaine (manque de compétences et courbe d’apprentissage élevée pour les personnes familiarisées avec des langages plus typiques comme c # / java / c ++) plutôt que technique.

Je pense que nous verrons bien que certains éléments fonctionnels vont migrer vers C #, tels que l'utilisation croissante de types immuables et les fonctions de marquage comme étant pures, etc. Je ne vois pas comment F # aurait un rôle plus important dans le développement des entreprises, trop mystifier pour le développeur moyen.

C # / VB seront toujours les langues principales, mais F # convient mieux aux problèmes complexes. C # est un objectif plus général alors que F # est meilleur dans l'analyse d'impact, les statistiques, la science (trouver un remède contre le cancer, par exemple), etc. F # ne remplacera jamais C #, mais permettra à .NET de rivaliser dans plus de domaines de l'informatique. En ce qui concerne l’exploration de données et le traitement de grandes quantités de données, il est préférable de développer directement dans la base de données, comme SQL Server ou Oracle.

Pour ce qui est de savoir que F # est difficile à apprendre, c’est uniquement parce que nous avons été "corrompus". par la manière impérative de penser dans la plupart des autres langues. Il est difficile de désapprendre quelque chose que vous faites pendant 5 ans! En outre, dans mon expérience, ocaml et F # sont une joie à utiliser. Le seul reproche que je puisse faire pour F # / Ocaml est que la plupart du temps, les gens abusent de l’inférence de type, ce qui rend le code illisible. Je préfère déclarer les types de variables pour faciliter la maintenance.

Je pense que F # sera toujours un langage de niche, comparé à VB / C # / Java, car il nécessite davantage de connaissances en mathématiques ou en informatique. Cependant, le fait même qu’il s’agisse d’un langage CLR signifie qu’il sera beaucoup plus exposé que les langages fonctionnels précédents.

Je travaille dans une banque d’investissement et nous utilisons déjà F # à des fins de script ad-hoc. Nous sommes impatients de voir une version publiée de F # afin de pouvoir envisager une intégration plus formelle dans nos systèmes (bien qu’ils soient susceptibles rester fondamentalement basé sur C #).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top