Programación Funcional en Software Comercial

12

Recientemente estuve discutiendo la programación funcional con un compañero de trabajo. Si bien los dos acordamos que FP tiene algunos beneficios obvios (código más simple, más fácil de razonar matemáticamente, etc.), ambos nos preguntamos si se usará o no en un software comercial.

Sé que hay una serie de proyectos de código abierto y académicos que están escritos funcionalmente (por ejemplo, he visto esta pregunta en Stack Overflow), pero me pregunto si alguien puede enumerar algún otro software comercial que esté escrito, al menos en parte, en un lenguaje funcional (y en qué idioma).

akobre01
fuente
3
Primer hit en Google: haskell.org/haskellwiki/Haskell_in_industry . ¿Qué le pasa a esta página? ¿No es lo suficientemente detallado? ¿No está lo suficientemente claro? ¿No es lo suficientemente reciente?
S.Lott
@ S.Lott - ¿No estás en un sitio de Stack Exchange? - se han hecho muchas preguntas sobre sitios de intercambio de pila en otros lugares, pero existe una política explícita de que está bien hacerlas aquí también. Dudo que haskell.org desaparezca mañana, pero los sitios web van y vienen. En cualquier caso, la programación funcional no siempre significa Haskell.
Steve314
@ Steve314: Un poco de investigación habría creado una pregunta mucho mejor.
S.Lott
@ S.Lott, probablemente, no estoy seguro de que todas estas respuestas de la lista de viñetas sean tan útiles. No mucha sustancia, solo muchos "todos estos proyectos no pueden estar equivocados". Pero entonces, eso es lo que la pregunta se refiere, así que ...
Steve314
Esta presentación también podría arrojar algo de luz: scribd.com/doc/45049621/…
9000

Respuestas:

8

¿Alguna vez usó un teléfono celular? Erlang tiene un nicho de mercado en telecomunicaciones, pero también lo usa Facebook para implementar su funcionalidad de chat. Consulte estas preguntas frecuentes para las siguientes empresas que usan Erlang en producción:

  • Aptela (proveedor de servicios de VoIP)
  • Bluetail / Alteon / Nortel (sistema de correo electrónico distribuido, tolerante a fallas, acelerador SSL)
  • Corelatus (monitoreo SS7).
  • CouchDB (base de datos orientada a documentos usando MapReduce)
  • dqdp.net (en letón) (servicios web).
  • Ericsson (conmutador ATM AXD301)
  • Facebook (backend de chat de Facebook)
  • Instituto Meteorológico de Finlandia (adquisición de datos y monitoreo en tiempo real)
  • Goldman Sachs (programas comerciales de alta frecuencia)
  • IDT corp. (Sistemas expertos de enrutamiento de menor costo en tiempo real)
  • IEISS. (Software de intercambio de instrumentos financieros electrónicos)
  • Klarna (sistemas de pago electrónico)
  • Lindenbaum (conferencia de voz a gran escala)
  • Mobilearts (servicios GSM y UMTS)
  • Soluciones Netkit (Sistemas de monitoreo de equipos de red y soporte de operaciones)
  • Proceso uno (Jabber Messaging)
  • Quviq (herramienta de prueba de software)
  • RabbitMQ (mensajería empresarial AMQP)
  • Schlund + Partner (Servicios de mensajería y respuesta de voz interactiva)
  • Smarkets (Intercambio de apuestas y mercado de predicción)
  • T-Mobile (anteriormente one2one) (servicios avanzados de control de llamadas)
  • Telia (un operador de telecomunicaciones)
  • Textendo (servicios innovadores de mensajes de texto)
  • Vail Systems (sistemas interactivos de respuesta de voz)
  • Wavenet (aplicaciones SS7 e IVR)
Julieta
fuente
4

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSquare y muchos otros hacen un uso extensivo de Scala.

missingfaktor
fuente
1
Sí, pero Scala no es FP, solo usa algunos conceptos de FP :)
sakisk
@faif, ¡qué basura! Su declaración indica que sabe poco sobre FP o Scala o ambos. He estado usando Scala por más de 2 años, y el código que escribo en Scala no se ve muy diferente de lo que escribiría en Haskell. Escribo mi código de una manera puramente funcional, excepto en los límites de IO, donde, dependiendo de la situación, puedo o no elegir usar IO monad.
missingfaktor
2
Mi comentario fue una broma, no seas grosero. El hecho de que esté utilizando solo las partes FP de Scala no lo convierte en un lenguaje FP. Está tratando de combinar 2 paradigmas de programación por una razón ...
sakisk
@faif, ¿cómo se supone que debo saber si estás bromeando o hablas en serio? Además, continúa diciendo que no es un FPL, lo que hace que su declaración anterior no tenga sentido y sea deshonesta. Si dice que no es un FPL porque combina los dos paradigmas, se ha perdido completamente el punto . Por favor, deja de perder mi tiempo si no tienes nada que decir.
missingfaktor
2
No tienes ningún sentido en absoluto.
missingfaktor
1

Ya hay varias discusiones sobre este tema en StackOverflow: ¿ves la producción de Clojure lista?

Ejemplos de mi entorno contiene:

  • Clojure
  • Scala
  • Chicken (un compilador de esquemas)

Ah, y no olvides leer Batir el promedio

Comunidad
fuente
Ya leerlo =) gran artículo sin embargo y sin duda me empujó para comenzar a aprender más sobre FP
akobre01
1
  • JaneStreet (un fondo de cobertura) utiliza OCaml.
  • Credit Suisse (un banco) usa F #.
  • Escuché que BarCap (un banco) quería usar Haskell para describir los pagos derivados. No sé hasta dónde llegó esto.
cuant_dev
fuente
RE: Barcap - todo el camino a la producción: lexifi.com/files/resources/frankau.pdf
Ed'ka
Del PDF: "La lección aquí, tal vez, es que no hay una bala de plata. Si bien un enfoque funcional simplificó enormemente nuestra tarea, no se pueden dejar a un lado los problemas comunes como la complejidad algorítmica. Además, estos problemas pueden surgir en formas uno no reconoce, por lo que el desarrollador debe volver a aprender experiencias anteriores ".
quant_dev