domingo, 29 de octubre de 2017

Beneficios de la programación funcional

Siguiendo con el post anterior, nombro algunos beneficios de la programación funcional:

  • Serás mejor programador: tu forma de pensar en el código y de afrontar los problemas será muy distinta. Con la programación funcional aprenderás afrontar los problemas de computación y de plantear la mejor solución posible: a plantear soluciones de formas que nunca habías pensado, mucho más simples y eficientes.
  • Código más simple, limpio y con menos bugs: solo por este motivo ya merece la pena. Tendrás menos código, menos variables, menos estructuras de control, no hay nulos ... así que cometerás menos errores escribiendo código. Además el compilador te ayudará a detectarlos antes que nadie.
  • Podrás resolver problemas más complejos: la esencia de la programación funcional es la simpleza: buscar soluciones simples. Y cuando más simple sea tu solución, mayores problemas podrás resolver. Joel Spolsky, el fundador de StackOverflow y Trello, decía: Without understanding functional programming, you can’t invent MapReduce. A eso me refería, problemas realmente complejos son muy difíciles de resolver (de entender, de implementar, de testear...) con código imperativo.
  • Código más versátil: las abstracciones y tipos que definas serán totalmente reutilizables. Como dijo Joe Armstrong, creador del lenguaje funcional Erlang, con la OOP tú coges un plátano (un objeto), pero con él te traes al gorila y a la jungla entera (todas sus dependencias). ¿Te suena?
  • Mejor concurrencia y asincronismo: hoy en día los dispositivos tienen varios cores para ejecutar código en paralelo, por lo que este punto es esencial. Podrás evitar el famoso callback hell!
  • Y por último, aumentará tu valor como programador: una cosa es que seas buen programador y otra muy diferente es que los demás lo perciban a la primera. La programación funcional te permitirá destacar entre el resto y tu valor como programador se multiplicará.