programming paradigm oriented languages language for dummies best language-agnostic oop programming-languages paradigms

language-agnostic - paradigm - procedural programming language



¿Alternativas a la programación orientada a objetos? (5)

Actualmente no existen paradigmas que puedan reemplazar genuinamente OOP. El problema con (beneficio de) OOP es que hace una gran cantidad de trabajo para usted, liberando recursos automáticamente, validando datos, etc., y hace que sea fácil validar el código, sin mencionar que la gran mayoría de las bibliotecas existentes en el mundo están escritos en un lenguaje OOP como C ++, C # o Java. La realidad de llevarse bien sin tales bibliotecas a gran escala es extremadamente dudosa.

En nichos o mundos académicos, encontrarás mucha programación funcional. Sin embargo, si realmente desea hacer un proyecto grande, OOP es el único camino a seguir.

Creo que la programación genérica va a surgir como un nuevo paradigma. Sin embargo, todavía está en la fase de desarrollo y solo C ++ / D ofrece una programación genérica genuinamente buena.

OOP es probablemente el paradigma de programación más utilizado en el diseño de software de hoy. Mi pregunta es: ¿qué otro paradigma (s) puede competir con él y puede estar en el lugar de oop ? Para aclarar esa pregunta, no estoy preguntando qué otros paradigmas hay. Hay muchos de ellos y me gustaría saber cuál:

  • Ha sido utilizado en la práctica, no solo en teoría.
  • Puede competir con oop , por lo que puede usarse en un proyecto grande sin o con un mínimo de dolor.
  • Se puede usar para desarrollar una aplicación de escritorio con lógica comercial, bases de datos, etc.
  • No se usa con el compañero de oop, pero puede reemplazar el oop.

Y si hay alguno, ¿cuáles son sus ventajas y desventajas? ¿Por qué es mejor / peor que oop? ¿Qué idiomas son los mejores para usarlo? ¿Qué pasa con el uso en los lenguajes populares, tiene algún patrón de diseño y puede Reemplazar totalmente oop?


El procesamiento procedimental fue todo antes de que OOP apareciera, ha producido algunas aplicaciones grandes del mundo real (de hecho, la mayoría originalmente) y muchos sistemas operativos.

Sin duda se puede utilizar en productos a gran escala con un mínimo de dolor y un máximo de rendimiento


FP - La Programación Funcional es un paradigma de programación extremadamente popular que ha existido por mucho tiempo y, en los últimos años, ha comenzado a ser cada vez más prominente. FP favorece la inmutabilidad sobre la mutabilidad, la recursividad y las funciones sin efectos secundarios. Algunos ejemplos de los lenguajes fp populares son Erlang, Scala, F #, Haskell y Lisp (entre otros).


Vector Relational Data Modeling se usa para crear modelos de información ejecutables con semántica relevante para el dominio dentro de Global Information Network Architecture, un corredor modelo residente en la red.


La programación funcional es otro paradigma de programación popular, principalmente académica. El mejor ejemplo de un lenguaje de programación funcional es Haskell y Standard ML .

La diferencia fundamental entre la programación funcional y la programación orientada a objetos es que usted está programando en el sentido del flujo de datos en lugar del flujo de control . Vea la presentación Domando Efectos con Programación Funcional por Simon Peyton-Jones para una buena introducción.

Un buen ejemplo de programación funcional utilizada en la industria es Erlang . Se usa principalmente en sistemas de telecomunicación, distribuidos y tolerantes a fallas. Ver la presentación Erlang - Software para un mundo concurrente por Joe Armstrong .

También hay lenguajes de programación funcionales más nuevos que combinan programación funcional con OOP. Dos buenos ejemplos son F# para la plataforma .NET y Scala para la plataforma Java; a menudo pueden usar bibliotecas existentes en la plataforma escritas en otros idiomas.

La tendencia de los nuevos lenguajes de programación ahora es Multi-paradigm , donde múltiples paradigmas como la programación orientada a objetos y la programación funcional se combinan en el mismo idioma.