J'ai lu et réfléchi un peu à ce sujet. Le buzz semble être que dans l'avenir multi-core, les langues fonctionnelles deviendront plus populaires. Je suis un parent par rapport à la programmation fonctionnelle. Ma seule exposition était académique, et rien de suffisamment compliqué pour vraiment mettre cette classe de langue à l'épreuve. Donc, si je comprends bien, les fonctions pures peuvent être parallélisées facilement et de façon transparente. C'est une fonctionnalité géniale, car cela ne signifie aucun problème avec l'écriture du code de thread. Cependant, il ne semble pas donner beaucoup d'aide avec le code série.Les langages fonctionnels sont-ils intrinsèquement plus parallélisables que leurs OO ou leurs cousins impératifs?
Example:
fooN(... (foo3(foo2(foo1(0)))))
Les appels de série comme ceci semblent être un problème commun et parfois inévitable. Pour moi, ils sont à la base de la raison pour laquelle la parallélisation est si difficile. Certaines tâches sont simplement (ou semblent être) hautement sérielles. Avoir un «état d'esprit fonctionnel» vous permet-il de mieux décomposer certaines tâches apparemment sérielles? Des langages fonctionnels existants offrent-ils des mécanismes transparents pour mieux paralléliser le code hautement série? Enfin, les langages fonctionnels sont-ils intrinsèquement plus parallélisables que les langages OO ou impératifs, et pourquoi?
Les langues purement fonctionnelles (avec les mondas appropriés) sont la clé du futur. Et vous n'avez pas besoin d'être un programmeur immortel pour le zen. Vous avez juste besoin d'aborder les problèmes un peu différemment. – yfeldblum
En désaccord. Un état mutable qui existe pour de courtes périodes dans de petites étendues, telles que des variables locales pour une fonction, est une bonne chose car cela rend l'implémentation des fonctions plus facile et plus efficace. Quand cela devient problématique, c'est pour des choses comme les variables membres et globales. – dsimcha
Plus facile est un terme subjectif. Je pensais comme vous, maintenant je pense le contraire. J'avais raison les deux fois. – luqui