Esta página web esta en venta en SEOBulk.net

Programacion funcional vs orientada a objetos

Programacion funcional vs orientada a objetos
Índice
  1. Lenguajes de programación funcionales
  2. ¿Cuál es la diferencia entre orientado a objetos y funcional?
  3. ¿Es mejor la programación funcional que la orientada a objetos?
    1. Diferenciar entre programación funcional y programación orientada a objetos
    2. Conceptos de programación funcional
    3. Oop vs procedimiento

Lenguajes de programación funcionales

}FP se concentra más en modelar acciones y transformaciones y las relaciones entre ellas. Todas esas mónadas, co-monadas, etc. son sólo conceptos diferentes que describen objetos desde la perspectiva de cómo pueden ser transformados. Si me pides que te muestre un trozo de código que represente mejor FP, te daré una transformación compleja con muchos pasos.fun bestStudents(semester: String) = repo

.sortedByDescending(Student::result)InterfacesCuando estaba aprendiendo a programar, dominaba la orientación a objetos. La mayoría de los libros mostraban algo como un Animal o un Coche (clase abstracta o interfaz) y explicaban que el supertipo debía tener todas las características comunes entre todos los objetos. ¿Qué relación tiene la interfaz Comparable con eso? En absoluto. Describe lo que podemos hacer con un objeto, no sus características.interface Comparable<in T> {

Es muy OOP pensar en un supertipo como un conjunto de características. TimeUnit es un buen ejemplo. Es muy FP pensar en un objeto como un conjunto de capacidades. Comparable es un gran ejemplo. Piensa en la taza que tienes delante. ¿Qué es más importante? Que sea un plato, o que se pueda coger y beber. ¿Qué es o cómo se puede utilizar? ¿Un conjunto de rasgos o un conjunto de capacidades? Ahora se podría argumentar que esto es lo que distingue a las clases de las interfaces. La superclase te dice lo que es una clase, y las interfaces te dicen lo que una clase puede hacer. Es una buena regla general, pero parece estar lejos de la realidad o de los proyectos. Veo que los entusiastas de la programación orientada a objetos buscan el "es" siempre que es posible, y también utilizan interfaces para ello. También veo entusiastas de la PF viendo sólo "puede hacer" y evitando la herencia de clases siempre que sea posible.la mayoría de las interfaces que utilizamos hoy en día están a la sombra de objetos como servicios o repositorios. Echa un vistazo al siguiente ejemplo UserRepository.interface UserRepository {

  Ejercicios resueltos de programacion orientada a objetos

¿Cuál es la diferencia entre orientado a objetos y funcional?

En su forma más simple, la programación funcional utiliza datos inmutables para indicar al programa exactamente lo que debe hacer. La programación orientada a objetos le dice al programa cómo conseguir resultados mediante objetos que alteran el estado del programa. Ambos paradigmas pueden utilizarse para crear código elegante.

¿Es mejor la programación funcional que la orientada a objetos?

La programación funcional es mejor si tienes un conjunto fijo de cosas y necesitas añadirles operaciones. Añadir funciones que realicen cálculos sobre tipos de datos existentes es un ejemplo de ello. La programación orientada a objetos funciona bien cuando se tiene un conjunto fijo de operaciones sobre cosas y se necesita añadir más cosas.

Diferenciar entre programación funcional y programación orientada a objetos

Este problema es bien conocido desde hace muchos años; en 1998, Phil Wadler lo bautizó como el "problema de la expresión". Aunque algunos investigadores creen que el problema de las expresiones puede resolverse con características del lenguaje como los mixins, todavía no se ha generalizado una solución ampliamente aceptada.

Los lenguajes funcionales destacan en la manipulación de datos simbólicos en forma de árbol. Uno de los ejemplos favoritos son los compiladores, en los que los lenguajes fuente e intermedio cambian poco (casi siempre las mismas cosas), pero los programadores de compiladores siempre están añadiendo nuevas traducciones y mejoras u optimizaciones del código (nuevas operaciones sobre las cosas). La compilación y la traducción en general son "aplicaciones asesinas" para los lenguajes funcionales.

  Programacion orientada a objetos modularidad

Tomemos por ejemplo C#. Podría decirse que es principalmente programación orientada a objetos, pero contiene muchos conceptos y construcciones de programación funcional. Si consideramos Linq, las construcciones más importantes que permiten la existencia de Linq son de naturaleza funcional: las expresiones lambda.

Otro ejemplo, F#. Se podría decir que es principalmente FP, pero hay muchos conceptos y construcciones OOP disponibles. Puedes definir clases, clases abstractas, interfaces, tratar con herencia. Incluso puedes usar mutabilidad cuando hace tu código más claro o cuando aumenta drásticamente el rendimiento.

Conceptos de programación funcional

IntroducciónA lo largo de la historia de la humanidad, nos hemos encontrado con problemas y hemos descubierto soluciones. Nos formamos un conjunto de creencias sobre los factores que contribuyen al problema, y formamos patrones de soluciones que han ayudado a abordar problemas similares. Con el tiempo, confirmamos nuestras creencias formadas con pruebas que verifican nuestros métodos. Los distintos ámbitos problemáticos tienen paradigmas diferentes. (Un paradigma es un conjunto de conceptos que reflejan nuestra comprensión actual del campo y las prácticas que modelan cómo se pueden expresar las soluciones existentes). Los paradigmas de programación son un conjunto de reglas que prescriben un planteamiento del problema. Los lenguajes de programación admiten un conjunto de paradigmas que se pueden utilizar para implementar algoritmos. Algunos lenguajes de programación se adhieren a uno o varios conjuntos de paradigmas. Lisp abogaba por la programación funcional, C por la procedimental y Simula por la orientación a objetos. Los lenguajes de programación modernos admiten más de un paradigma de programación.

Oop vs procedimiento

Los paradigmas de programación son enfoques en los que se organiza el código para implementar soluciones en un programa. Existen muchos paradigmas de programación, pero en este artículo sólo nos centraremos en el funcional y el orientado a objetos.

  Principios de la programacion orientada a objetos

Según Wikipedia, en la programación funcional, los programas se tratan como una secuencia de evaluaciones de funciones sin estado. En la programación orientada a objetos, los programas se tratan como un conjunto de objetos que interactúan.

Hay muchas formas de resolver los problemas del mundo real. Esto también se aplica a la programación. Estos dos paradigmas de programación son sólo una de las muchas formas diferentes en que puedes estructurar y organizar tu código para implementar soluciones.

Entender cómo funcionan puede darte más flexibilidad en la resolución de problemas como programador. Saber cuándo es mejor utilizarlos requiere tiempo y experiencia. La mayoría de las veces, no utilizarás estrictamente ninguno de ellos, sino una mezcla de ambos, dependiendo del problema.

Subir
Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad