Programação Funcional em Software Comercial


12

Eu estava discutindo recentemente a programação funcional com um colega de trabalho. Enquanto nós dois concordamos que o FP tem alguns benefícios óbvios (código mais simples, mais fácil de raciocinar matematicamente etc.), nós dois nos perguntamos se é ou não será ou nunca será usado em software comercial.

Eu sei que existem vários projetos de código aberto e acadêmicos que são escritos funcionalmente (por exemplo, eu vi essa pergunta no Stack Overflow), mas estou me perguntando se alguém pode listar algum outro software comercial que seja escrito, pelo menos em parte, em uma linguagem funcional (e qual linguagem).


3
Primeiro hit no Google: haskell.org/haskellwiki/Haskell_in_industry . O que há de errado com esta página? Não é detalhado o suficiente? Não está claro o suficiente? Não é recente o suficiente?
S.Lott 13/05

@ S.Lott - Não está em um site do Stack Exchange? - muitas perguntas em sites de troca de pilhas foram feitas em outros lugares, mas há uma política explícita que não há problema em perguntar também aqui. Duvido que o haskell.org desapareça amanhã, mas os sites vêm e vão. De qualquer forma, programação funcional nem sempre significa Haskell.
31311 Steve1314

@ Steve314: Um pouco de pesquisa teria criado uma pergunta muito melhor.
S.Lott 13/05

@ S.Lott - provavelmente - não tenho certeza de que todas essas respostas à lista de marcadores são úteis. Não há muita substância - apenas muitos "todos esses projetos não podem estar errados". Mas, em seguida, que é o que a pergunta pede, então ...
Steve314

Esta apresentação também pode lançar alguma luz: scribd.com/doc/45049621/…
9000

Respostas:


8

Já usou um telefone celular? Erlang possui um nicho de mercado em telecomunicações, mas também é usado pelo Facebook para implementar sua funcionalidade de bate-papo. Consulte este FAQ para as seguintes empresas que usam Erlang na produção:

  • Aptela (Provedor de serviços VoIP)
  • Bluetail / Alteon / Nortel (sistema de e-mail tolerante a falhas e distribuído, acelerador SSL)
  • Corelatus (monitoramento SS7).
  • CouchDB (banco de dados orientado a documentos usando o MapReduce)
  • dqdp.net (em letão) (serviços da Web).
  • Ericsson (switch ATM AXD301)
  • Facebook (back-end de bate-papo no Facebook)
  • Instituto Meteorológico Finlandês (aquisição de dados e monitoramento em tempo real)
  • Goldman Sachs (programas de negociação de alta frequência)
  • IDT corp. (Sistemas especialistas em roteamento de menor custo em tempo real)
  • IEISS. (Software de troca eletrônica de instrumentos financeiros)
  • Klarna (sistemas de pagamento eletrônico)
  • Lindenbaum (conferência de voz em larga escala)
  • Mobilearts (serviços GSM e UMTS)
  • Netkit Solutions (Sistemas de Monitoramento de Equipamentos de Rede e Sistemas de Suporte a Operações)
  • Processo um (Jabber Messaging)
  • Quviq (Ferramenta de Teste de Software)
  • RabbitMQ (AMQP Enterprise Messaging)
  • Schlund + Partner (serviços de mensagens e resposta interativa por voz)
  • Smarkets (mercado de câmbio e previsão de apostas)
  • T-Mobile (anteriormente one2one) (serviços avançados de controle de chamadas)
  • Telia (uma operadora de telecomunicações)
  • Textendo (serviços inovadores de mensagens de texto)
  • Vail Systems (sistemas interativos de resposta por voz)
  • Wavenet (aplicativos SS7 e URA)

4

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSquare e muitos outros fazem um uso extensivo do Scala.


1
Sim, mas Scala não é FP, ele só usa alguns conceitos FP :)
sakisk

@faif, que lixo! Sua declaração indica que você sabe pouco sobre FP, Scala ou ambos. Estou usando o Scala há mais de 2 anos e o código que escrevo no Scala não parece muito diferente do que eu escreveria em Haskell. Escrevo meu código de maneira totalmente funcional, exceto nos limites de E / S, onde, dependendo da situação, posso ou não optar por usar a mônada de E / S.
missingfaktor

2
Meu comentário foi uma piada, não seja rude. O fato de você estar usando apenas as partes FP do Scala não o torna uma linguagem FP. Ele está tentando misturar 2 paradigmas de programação por um motivo ...
sakisk

@ faif, como vou saber se você está brincando ou falando sério? Além disso, você continua dizendo que não é uma FPL, tornando sua declaração anterior sem sentido e desonesta. Se você diz que não é um FPL porque combina os dois paradigmas, você perdeu completamente o objetivo . Pare de desperdiçar meu tempo, se você não tem nada a dizer.
missingfaktor

2
Você não está fazendo nenhum sentido.
missingfaktor

1

Já existem várias discussões sobre esse tópico no StackOverflow: consulte Produção de Clojure pronta?

Exemplos do meu redor contém:

  • Clojure
  • Scala
  • Frango (um compilador de esquema)

Ah, e não se esqueça de ler Batendo a média


Já lê-lo =) o grande artigo embora e definitivamente me empurrou para começar a aprender mais sobre FP
akobre01

1
  • JaneStreet (um fundo de hedge) usa OCaml.
  • O Credit Suisse (um banco) usa F #.
  • Ouvi dizer que o BarCap (um banco) queria usar o Haskell para descrever pagamentos de derivativos. Não sei até onde isso foi.

RE: BarCap - todo o caminho para a produção: lexifi.com/files/resources/frankau.pdf
Ed'ka

Do PDF: "A lição aqui, talvez, é que não há uma bala de prata. Embora uma abordagem funcional tenha simplificado bastante nossa tarefa, problemas comuns como complexidade algorítmica não podem ser deixados de lado. Além disso, esses problemas podem surgir em formas não se reconhece, para que o desenvolvedor reaprenda experiências anteriores ".
Quant_dev 14/05
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.