Alternatives à la programmation orientée object?

La POO est probablement le paradigme de programmation le plus utilisé dans la conception logicielle actuelle. Ma question est: quels autres paradigmes peuvent rivaliser avec elle et peuvent se substituer à oop ? Pour clarifier cette question, je ne demande pas quels sont les autres paradigmes. Il y en a beaucoup et j’aimerais savoir lequel:

  • A été utilisé dans la pratique, pas seulement en théorie.
  • Peut rivaliser avec oop , il peut donc être utilisé dans un grand projet sans ou avec un minimum de douleur.
  • Peut être utilisé pour développer une application de bureau avec une logique métier, des bases de données, etc.
  • N’est pas utilisé avec un compagnon de pieu, mais peut remplacer oop.

Et s’il y en a, quels en sont les avantages / inconvénients, pourquoi c’est mieux / pire que oop, quelles langues sont les meilleures pour l’utiliser, que dire de son utilisation dans les langages populaires, quels sont les modèles de conception, et remplacer totalement oop?

La functional programming est un autre paradigme de programmation populaire, principalement dans les milieux universitaires. Le meilleur exemple d’un langage de programmation fonctionnel est Haskell et Standard ML .

La différence fondamentale entre la functional programming et la programmation orientée object est que vous programmez dans le sens de stream de données au lieu de stream de contrôle . Voir la présentation Taming Effects with Functional Programming par Simon Peyton-Jones pour une bonne introduction.

Erlang est un bon exemple de functional programming utilisée dans l’indussortinge. Il est principalement utilisé dans les systèmes de télécommunication, dissortingbués et à tolérance de pannes. Voir la présentation Erlang – Logiciel pour un monde concurrent par Joe Armstrong .

Il existe également des langages de programmation fonctionnels plus récents qui combinent la functional programming avec la POO. Deux bons exemples sont F # pour la plate-forme .NET et Scala pour la plate-forme Java; ils peuvent souvent utiliser des bibliothèques existantes sur la plate-forme écrites dans d’autres langues.

La tendance des nouveaux langages de programmation est désormais Multi-paradigme , où plusieurs paradigmes comme la programmation orientée object et la functional programming sont combinés dans le même langage.

Le traitement procédural était tout ce qui se passait avant que la POO ne soit apparue, elle a produit de grandes applications réelles (en fait, la plupart d’elles à l’origine) et de nombreux systèmes d’exploitation.

Il peut certainement être utilisé dans des produits à grande échelle avec un minimum de douleur et un maximum de performance

La modélisation de données relationnelles vectorielles est utilisée pour créer des modèles d’informations exécutables avec une sémantique pertinente pour le domaine au sein de l’architecture globale de réseau d’information, un courtier modèle résidant en réseau.

FP – La functional programming est un paradigme de programmation extrêmement populaire qui existe depuis très longtemps et qui, ces dernières années, a commencé à devenir de plus en plus important. La PF favorise l’immuabilité par rapport à la mutabilité, la récursivité et les fonctions sans effets secondaires. Erlang, Scala, F #, Haskell et Lisp (entre autres) sont des exemples de langages fp populaires.

Il n’existe actuellement aucun paradigme capable de remplacer véritablement la POO. Le problème avec (avantage de) la POO est qu’elle fait beaucoup de travail pour vous – en libérant automatiquement des ressources, en validant des données, etc., et en facilitant la validation du code – sans oublier que la grande majorité des bibliothèques existantes sont écrits dans un langage OOP comme C ++, C # ou Java. La réalité de s’entendre sans de telles bibliothèques à grande échelle est extrêmement douteuse.

Dans les mondes spécialisés ou universitaires, vous trouverez beaucoup de functional programming. Cependant, si vous voulez vraiment faire un grand projet, la POO est la seule solution.

Je pense que la programmation générique va devenir un nouveau paradigme. Cependant, il est encore en phase de développement et seuls C ++ / D offrent une véritable programmation générique.