¿El costo reducido de RAM significa que la programación funcional es comparativamente más popular en los años 2010 que en los años 2000/90?

El aumento de la RAM y la potencia de procesamiento ha hecho que los lenguajes de alto nivel en general sean mucho más populares.

En los productos más nuevos, C y C ++ se han convertido en un nicho: solo los alcanza cuando el rendimiento es crítico o cuando tiene que lidiar con sistemas heredados. En su lugar, tenemos de todo, desde Java hasta Python y Scala. Todavía hay áreas en las que este no es el caso, pero es cierto para lo que considero un software “genérico”: código del lado del servidor y sistemas empresariales, así como la mayoría de los proyectos front-end (UI).

La programación funcional es, por su naturaleza, un paradigma para los lenguajes de alto nivel y definitivamente se ha beneficiado de este aumento. Incluso los lenguajes más orientados a objetos tienen características funcionales ahora (¡incluso Java tiene lambdas!) Y algunos lenguajes como Scala van mucho más allá.

Esto no significa que todos estén usando la programación funcional, pero la moda OO-is-the-one-true-way de los años 90 y 2000 está (finalmente) concluyente. En el pasado, las personas trataban el “diseño orientado a objetos” como sinónimo de “principios de ingeniería de software” y lo miraban como un idiota por haber escrito cualquier código que no estuviera orientado a objetos; En estos días, las personas están felices de mezclar ideas de programación funcional y de procedimiento o paradigmas aún más exóticos (la programación reactiva ha sido particularmente influyente).

He visto muchas bases de código que usan OO a la ligera , pero tienen muchos aspectos funcionales o de procedimiento. Incluso he visto algunos que no usan objetos en absoluto . ¡No esperaría encontrar mucho código en ese tipo de estilo hace 15 años fuera de C!

Dicho esto, las bases de código escritas principalmente de manera funcional siguen siendo raras. Hay una gran cantidad de código que mezcla algunas construcciones funcionales con objetos o procedimientos, pero es raro encontrar código donde el estilo funcional es el estilo principal . Por otra parte, sigue siendo una mejora masiva en los años 90 porque, aunque existen bases de código funcionales raras. Decirles a las personas que uso Haskell en el trabajo todavía les sorprende , pero al menos reconocen el idioma y lo ven como una opción válida (aunque peculiar). Ese no era realmente el caso incluso hace 10 años.

Bueno, ciertamente el rendimiento del hardware ya no es un obstáculo, pero lograr que todos programen de manera funcional encontrará mucha resistencia. La mayoría de los programadores han recibido capacitación en programación procesal y orientada a objetos, y tardarán en adoptar funcionalmente. Eso es solo la naturaleza humana.

Tal vez si la generación actual de programadores muere y las universidades imparten clases funcionales para estudiantes de primer año y los cursos en línea se centran en funciones en lugar de Python, Ruby y JavaScript. Eso es un montón de ifs.

La programación funcional ha ganado una buena cantidad de tracción. Está presente en lenguajes multi-paradigmáticos. Esto es tan bueno como parece, me temo.