Estoy tratando de familiarizarme con diferentes tipos de idiomas para comprender las áreas en las que cada uno de ellos es extremadamente bueno. Hasta ahora, he incursionado en C, un lenguaje de procedimiento, C ++ y java, lenguajes orientados a objetos de tipo estático y maravilloso, un lenguaje orientado a objetos de tipo dinámico.
Es probable que cada lenguaje de programación haya comenzado a responder a una necesidad. Y supongo que cada idioma es extremadamente bueno en al menos una cosa, por lo que se convierte en un estándar en un área o campo específico. Al igual que C, C ++ se ha convertido en estándar en áreas como el navegador o el desarrollo de juegos. Python en el mundo Linux por su capacidad de scripting fácil, Java en el mundo empresarial, etc.
Ahora estoy interesado en aprender un lenguaje de programación funcional como Clojure o Lisp. Entonces, ¿dónde se utilizan los lenguajes de programación funcionales en escenarios del mundo real? No creo que se use Clojure o Lisp para desarrollar aplicaciones o interfaces de usuario. Entonces, ¿en qué tipo de proyectos debería participar después de seguir los tutoriales básicos y los recursos de aprendizaje para obtener una breve comprensión sobre la implementación de la programación funcional? ¿Y recomienda encarecidamente un idioma en específico, como por ejemplo clojure?
fuente
Respuestas:
Dices programación funcional del mundo real, creo Erlang.
http://www.erlang.org/
fuente
Hay una gran serie de conferencias sobre programación funcional de la Universidad de Stanford. Puede consultarlas en YouTube.
Te aconsejaría que busques en Scheme en lugar de LISP. Scheme es una versión modificada de Lisp con mejoras adicionales. El esquema se usa principalmente para fines académicos y de capacitación. Es un gran lenguaje si te gusta investigar en ciencia de la informática teórica.
Aplicaciones :
Google App Inventor para Android usa Scheme, donde Kawa se utiliza para compilar el código del Scheme en códigos de bytes para la máquina virtual Java que se ejecuta en dispositivos Android. Synopsys utiliza Elk Scheme como lenguaje de programación para sus herramientas de tecnología CAD (TCAD).
FYI: uso del esquema
fuente
Bryan O'Sullivan, fundador de mailrank.com (que fue adquirido por Facebook) construyó todo el lado del servidor de este software en Haskell. Se presenta en este lazo extraño en el 2011, de vídeo y diapositivas están disponibles en línea.
El mismo tipo escribió un libro llamado Real World Haskell . Varias personas mencionaron tutoriales de programación. Este puede ser bastante apropiado para sus intereses (también me gusta la sugerencia de Erlang).
fuente
Sé por amigos en finanzas que la empresa comercial cuantitativa Jane Street usa OCaml para implementar sus estrategias comerciales. Tienen una página donde hablan sobre por qué, junto con enlaces a charlas sobre el tema.
fuente
Aquí hay una lista de historias de éxito de Common Lisp:
http://wiki.alu.org/Industry%20Application
http://www.franz.com/success/
http://www.lispworks.com/success-stories/index.html
Aunque Common Lisp es solo parcialmente funcional (también es compatible con OOP y procedimientos, así como con cualquier cosa que desee implementar usted mismo o con una biblioteca), es un lenguaje muy pragmático y extremadamente poderoso en manos de un programador competente. De hecho, lo uso para escribir aplicaciones web con el excelente marco RESTAS .
Y el proyecto comercial de Python en el que estoy trabajando ahora eventualmente se complementará con servicios escritos en lisp (RESTAS como lo sugiere su nombre es excelente para servicios RESTful).
fuente
Sugeriría sumergirse en los compiladores (ya sea para lenguajes de propósito general o DSL): aquí es donde la programación funcional es óptima. Habrá muchas cosas interesantes y útiles para explorar, desde ADT y coincidencia de patrones en un lado de un espectro hasta las macros Lisp en el otro lado.
fuente
Es posible que desee echar un vistazo a Hume .
Desde la página del lenguaje de programación The Hume :
Desde la página de Hume wikipedia :
fuente