He estado interesado en programar toda mi vida y durante los últimos 6 años he trabajado casi exclusivamente con Java. Acabo de terminar mis estudios universitarios y tengo un trabajo como desarrollador de Java para una empresa.Programación funcional aplicada
Todos estos años la programación ha sido un hobby y un pasatiempo favorito, pero esto tuvo un efecto ligeramente negativo en el sentido de que crecí tan acostumbrado a Java que nunca me aventuré más allá como lenguaje de programación. Intenté expandir mi conocimiento de las cosas aprendiendo expresiones regulares, SQL y estudié un poco de XML, pero nunca pude involucrarme lo suficiente con un nuevo idioma para aprender a usarlo correctamente porque todos se parecen tanto en su núcleo. , encontré la curva de aprendizaje de cada idioma nuevo irritante. Sentí que tenía que pasar por todo el proceso para terminar bien si comencé porque sentía que otros idiomas imperativos no tenían nada más que ofrecerme (sé que esta afirmación puede comenzar una pelea, no es mi intención).
Por lo tanto, decidí en un momento explorar el mágico mundo de la programación funcional. Empecé a leer un libro sobre Haskel y lo encontré realmente interesante desde el punto de vista académico (me especialicé en Matemáticas) pero no pude encontrar aplicaciones prácticas para que me ayudara a aprender el idioma.
Así que ahora que Java es la parte principal de mi día, ya que me pagan para codificar (y lo disfruto tanto como lo hice cuando era simplemente un hobby) sentí la necesidad de ampliar mis horizontes y nuevamente la programación funcional parece una buena idea.
Pensé que podría comenzar con Scala ya que soy alfabetizado en Java (hacer la transición más fácil y ser más reutilizable ya que pueden "hablar" entre ellos) y entonces mi pregunta es: En su experiencia, ¿aprender un lenguaje funcional? "tener sentido"? ¿Existen aplicaciones de la vida real donde conocer este paradigma puede ser útil? No solo para entretenimiento personal sino también ¿sería esto un "profesional" en la industria?
Si quería aprender un lenguaje funcional que se ejecuta en la JVM y puede "hablar" con Java, ¿por qué no utilizar Clojure? Está más cerca de Lisp y creo que Lisp es un excelente ejemplo de lo que es un lenguaje funcional. Aunque Scala y Clojure admiten programación funcional, cuando pienso en programación funcional en JVM, pienso en Clojure. –