En realidad, algunas escuelas ya lo hacen de esta manera. Donde estudio (Universidad de Copenhague), enseñan SML en el primer semestre, como una introducción a la programación. Luego enseñan Java luego, como una introducción a OOP.
Creo que funciona muy bien, y estoy de acuerdo contigo es mejor que al revés. La programación funcional es bastante intuitiva para alguien que no es (todavía) un programador. Se correlaciona mucho mejor con lo que nos enseñaron como matemáticas en la escuela secundaria o antes, por lo que las personas que aún no han estado expuestas a una programación imperativa suelen aprenderlo sin demasiados problemas.
De hecho, hay una tendencia que las personas que son nuevas en la programación cuando se inscriben eligen 0Lmás rápido que los que ya han aprendido Java o C++.
Parece que hay un gran salto conceptual en ir de imperativo a funcional, pero el revés parece mucho más fácil para la mayoría. Generalmente, los estudiantes no encuentran que Java sea difícil cuando están expuestos a eso después de aprender SML. Una vez que conozca los conceptos "puros" de la programación, pegar los efectos secundarios es bastante sencillo. Pero si su comprensión total de la programación se basa en los efectos secundarios, es mucho más difícil imaginar que cualquier cosa es posible sin ellos.
Creo que un gran beneficio de este enfoque es que los principios de programación funcional se convierten en una parte esencial de su caja de herramientas de programación, en lugar de un complemento esotérico que podría usar si desea presumir. Incluso cuando programo en lenguajes imperativos, creo que hay un beneficio en tener sus antecedentes en un lenguaje funcional. Incluso cuando se programa en algo de bajo nivel como C, hay un beneficio al pensar en minimizar el estado y los efectos secundarios, y estar acostumbrado al concepto de funciones de orden superior (aunque no están disponibles en el idioma)
Cuando dices escuela, ¿te refieres a primaria? La programación funcional se enseña en la mayoría de las universidades y en cualquier curso sobre lenguajes de programación. – kgrad
El título es un poco engañoso, la programación funcional se enseña en la mayoría de las escuelas, y su pregunta en el cuerpo no coincide con la pregunta en el título. –
La pregunta en el cuerpo es realmente buena, sin embargo, actualice el tema. –