Pemrograman Fungsional dalam Perangkat Lunak Komersial


12

Saya baru-baru ini membahas pemrograman fungsional dengan rekan kerja. Sementara kami berdua sepakat bahwa FP memiliki beberapa manfaat yang jelas (kode lebih sederhana, lebih mudah untuk berpikir tentang matematika, dll.), Kami berdua bertanya-tanya apakah itu akan atau tidak akan pernah digunakan dalam perangkat lunak komersial.

Saya tahu ada sejumlah proyek open source dan akademik yang ditulis secara fungsional (misalnya, saya sudah melihat pertanyaan ini di Stack Overflow) tetapi saya bertanya-tanya apakah ada yang bisa mendaftar beberapa perangkat lunak komersial lain yang ditulis, setidaknya sebagian, dalam bahasa fungsional (dan bahasa apa).


3
Hit pertama di Google: haskell.org/haskellwiki/Haskell_in_industry . Apa yang salah dengan halaman ini? Tidak cukup detail? Tidak cukup jelas? Tidak cukup baru?
S.Lott

@ S.Lott - Tidak di situs Stack Exchange? - banyak pertanyaan di situs pertukaran tumpukan telah ditanyakan di tempat lain, tetapi ada kebijakan eksplisit bahwa tidak apa-apa untuk bertanya di sini juga. Saya ragu haskell.org akan menghilang besok, tetapi situs web datang dan pergi. Bagaimanapun, pemrograman fungsional tidak selalu berarti Haskell.
Steve314

@ Steve314: Sedikit riset akan menghasilkan pertanyaan yang jauh lebih baik.
S.Lott

@ S.Lott - mungkin - tidak yakin semua jawaban daftar peluru ini berguna. Tidak banyak substansi - hanya banyak "semua proyek ini tidak mungkin salah". Tapi kemudian, itulah yang ditanyakan, jadi ...
Steve314

Presentasi ini mungkin juga menjelaskan: scribd.com/doc/45049621/…
9000

Jawaban:


8

Pernah menggunakan ponsel? Erlang memiliki pasar khusus di bidang telekomunikasi, tetapi juga digunakan oleh Facebook untuk mengimplementasikan fungsi obrolannya. Lihat FAQ ini untuk perusahaan berikut yang menggunakan Erlang dalam produksi:

  • Aptela (Penyedia Layanan VoIP)
  • Bluetail / Alteon / Nortel (didistribusikan, sistem email toleran kesalahan, akselerator SSL)
  • Corelatus (pemantauan SS7).
  • CouchDB (database berorientasi dokumen menggunakan MapReduce)
  • dqdp.net (dalam Bahasa Latvia) (Layanan Web).
  • Ericsson (sakelar ATM AXD301)
  • Facebook (Facebook chat backend)
  • Finnish Meteorological Institute (Akuisisi data dan pemantauan real-time)
  • Goldman Sachs (program perdagangan frekuensi tinggi)
  • IDT corp. (Sistem pakar perutean dengan biaya terendah waktu nyata)
  • IEISS. (Perangkat lunak pertukaran instrumen keuangan elektronik)
  • Klarna (sistem pembayaran elektronik)
  • Lindenbaum (Konferensi suara skala besar)
  • Mobilearts (layanan GSM dan UMTS)
  • Solusi Netkit (Sistem Peralatan Pemantauan dan Dukungan Operasi)
  • Proses-satu (Pesan Jabber)
  • Quviq (Alat Uji Perangkat Lunak)
  • RabbitMQ (AMQP Enterprise Messaging)
  • Schlund + Mitra (Layanan Pesan dan Suara Interaktif)
  • Smarkets (Pertukaran taruhan dan pasar prediksi)
  • T-Mobile (sebelumnya one2one) (layanan kontrol panggilan lanjutan)
  • Telia (operator telekomunikasi)
  • Textendo (Layanan pesan teks inovatif)
  • Sistem Vail (sistem Respons Suara Interaktif)
  • Wavenet (aplikasi SS7 dan IVR)

4

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSquare, dan banyak lainnya menggunakan Scala secara ekstensif.


1
Ya, tetapi Scala bukan FP, hanya menggunakan beberapa konsep FP :)
sakisk

@faif, sampah apa! Pernyataan Anda menunjukkan Anda tahu sedikit tentang FP atau Scala atau keduanya. Saya telah menggunakan Scala selama 2+ tahun sekarang, dan kode yang saya tulis di Scala tidak terlihat jauh berbeda dari apa yang saya tulis di Haskell. Saya menulis kode saya dengan cara fungsional murni, kecuali pada batas-batas IO, di mana tergantung pada situasinya, saya mungkin atau mungkin tidak memilih untuk menggunakan IO monad.
missingfaktor

2
Komentar saya adalah lelucon, jangan kasar. Fakta bahwa Anda hanya menggunakan bagian FP dari Scala tidak menjadikannya bahasa FP. Itu mencoba untuk mencampur 2 paradigma pemrograman karena suatu alasan ...
sakisk

@faif, bagaimana saya bisa tahu jika Anda bercanda atau serius? Selanjutnya Anda melanjutkan dengan mengatakan itu bukan FPL, membuat pernyataan Anda sebelumnya tidak berarti dan tidak jujur. Jika Anda mengatakan itu bukan FPL karena memadukan dua paradigma, Anda telah sepenuhnya kehilangan intinya . Mohon berhenti membuang waktu saya jika Anda tidak memiliki nilai untuk dikatakan.
missingfaktor

2
Anda tidak masuk akal sama sekali.
missingfaktor

1

Sudah ada beberapa diskusi tentang topik ini di StackOverflow: lihat produksi Clojure siap?

Contoh dari sekitar saya mengandung:

  • Clojure
  • Scala
  • Ayam (Kompiler Skema)

Oh, dan jangan lupa membaca Beating the average


Sudah membacanya =) artikel yang bagus dan pasti mendorong saya untuk mulai belajar lebih banyak tentang FP
akobre01

1
  • JaneStreet (dana lindung nilai) menggunakan OCaml.
  • Credit Suisse (bank) menggunakan F #.
  • Saya pernah mendengar bahwa BarCap (bank) ingin menggunakan Haskell untuk menggambarkan pembayaran derivatif. Saya tidak tahu sejauh mana ini berjalan.

RE: Barcap - semua jalan menuju produksi: lexifi.com/files/resources/frankau.pdf
Ed'ka

Dari PDF: "Pelajaran di sini, mungkin, adalah bahwa tidak ada peluru perak. Sementara pendekatan fungsional sangat menyederhanakan tugas kita, masalah biasa seperti kerumitan algoritmik tidak dapat disingkirkan. Lebih lanjut, masalah ini dapat muncul dalam bentuk seseorang tidak mengenali, sehingga pengembang harus mempelajari kembali pengalaman sebelumnya. "
quant_dev
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.