การเขียนโปรแกรมเชิงหน้าที่ในซอฟต์แวร์เชิงพาณิชย์


12

ฉันเพิ่งพูดคุยเกี่ยวกับการเขียนโปรแกรมการทำงานกับเพื่อนร่วมงาน ในขณะที่เราสองคนเห็นพ้องกันว่า FP มีประโยชน์ชัดเจน (รหัสง่ายขึ้นง่ายกว่าที่จะให้เหตุผลทางคณิตศาสตร์ ฯลฯ ) เราทั้งคู่ต่างก็สงสัยว่ามันจะเป็นหรือไม่เคยถูกใช้ในซอฟต์แวร์เชิงพาณิชย์

ฉันรู้ว่ามีโอเพนซอร์ซจำนวนมากและโครงการทางวิชาการที่เขียนขึ้นตามหน้าที่ (เช่นฉันเคยเห็นคำถามนี้เกี่ยวกับ Stack Overflow) แต่ฉันสงสัยว่าถ้ามีใครสามารถแสดงรายการซอฟต์แวร์เชิงพาณิชย์อื่น ๆ ที่เขียนอย่างน้อยส่วนหนึ่ง ในภาษาที่ใช้งานได้ (และภาษาใด)


3
ตีครั้งแรกบน Google: haskell.org/haskellwiki/Haskell_in_industry เกิดอะไรขึ้นกับหน้านี้ มีรายละเอียดไม่เพียงพอหรือ ไม่ชัดเจนเพียงพอหรือไม่ ไม่พอใช่ไหม
S.Lott

@ S.Lott - ไม่ได้อยู่ในเว็บไซต์แลกเปลี่ยนสแต็ค? - มีคำถามมากมายเกี่ยวกับไซต์แลกเปลี่ยนสแต็กที่อื่น แต่มีนโยบายที่ชัดเจนว่าคุณสามารถถามคำถามได้ที่นี่เช่นกัน ฉันสงสัย haskell.org จะหายไปในวันพรุ่งนี้ แต่เว็บไซต์กลับมาแล้ว ไม่ว่าในกรณีใดการเขียนโปรแกรมที่ใช้งานได้ไม่ได้หมายถึง Haskell เสมอไป
Steve314

@ Steve314: การวิจัยเล็กน้อยจะสร้างคำถามที่ดีกว่ามาก
S.Lott

@ S.Lott - อาจ - ไม่แน่ใจว่าคำตอบรายการสัญลักษณ์แสดงหัวข้อทั้งหมดเหล่านี้มีประโยชน์ สารไม่มาก - เพียงแค่ "โครงการเหล่านี้ทั้งหมดต้องไม่ผิด" แต่แล้วว่าเป็นสิ่งที่คำถามที่ถามหาเพื่อ ...
Steve314

งานนำเสนอนี้อาจทำให้กระจ่าง: scribd.com/doc/45049621/…
9000

คำตอบ:


8

เคยใช้โทรศัพท์มือถือหรือไม่? Erlang มีตลาดเฉพาะทางด้านการสื่อสารโทรคมนาคม แต่ Facebook ยังใช้ในการดำเนินการฟังก์ชั่นแชท ดูคำถามที่พบบ่อยนี้สำหรับ บริษัท ต่อไปนี้ที่ใช้ Erlang ในการผลิต:

  • Aptela (ผู้ให้บริการ VoIP)
  • Bluetail / Alteon / Nortel (กระจาย, ระบบอีเมลที่ยอมรับความผิด, ตัวเร่ง SSL)
  • Corelatus (การตรวจสอบ SS7)
  • CouchDB (ฐานข้อมูลเชิงเอกสารโดยใช้ MapReduce)
  • dqdp.net (เป็นภาษาลัตเวีย) (บริการบนเว็บ)
  • Ericsson (สวิตช์ AXD301 ATM)
  • Facebook (แบ็กเอนด์แชท Facebook)
  • สถาบันอุตุนิยมวิทยาฟินแลนด์ (การเก็บข้อมูลและการตรวจสอบตามเวลาจริง)
  • Goldman Sachs (โปรแกรมซื้อขายความถี่สูง)
  • Corp IDT (ระบบผู้เชี่ยวชาญสายงานการกำหนดเส้นทางน้อยที่สุดแบบเรียลไทม์)
  • IEISS (ซอฟต์แวร์แลกเปลี่ยนเครื่องมือทางการเงินทางอิเล็กทรอนิกส์)
  • Klarna (ระบบชำระเงินอิเล็กทรอนิกส์)
  • Lindenbaum (การประชุมด้วยเสียงขนาดใหญ่)
  • Mobilearts (บริการ GSM และ UMTS)
  • Netkit Solutions (ระบบตรวจสอบและสนับสนุนอุปกรณ์เครือข่าย)
  • กระบวนการหนึ่ง (Jabber Messaging)
  • Quviq (เครื่องมือทดสอบซอฟต์แวร์)
  • RabbitMQ (AMQP Enterprise Messaging)
  • Schlund + Partner (บริการส่งข้อความและตอบกลับด้วยเสียงแบบโต้ตอบ)
  • Smarkets (ตลาดการแลกเปลี่ยนการเดิมพันและการทำนาย)
  • T-Mobile (one2one ก่อนหน้านี้) (บริการควบคุมการโทรขั้นสูง)
  • Telia (ผู้ให้บริการโทรคมนาคม)
  • Textendo (บริการส่งข้อความที่เป็นนวัตกรรม)
  • ระบบ Vail (ระบบตอบกลับด้วยเสียงแบบโต้ตอบ)
  • Wavenet (แอปพลิเคชัน SS7 และ IVR)

4

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSquare และอื่น ๆ อีกมากมายใช้ Scala อย่างกว้างขวาง


1
ใช่ แต่ Scala ไม่ FP ก็แค่ใช้แนวคิด FP บาง :)
sakisk

@faif ขยะอะไร! ข้อความของคุณบ่งบอกว่าคุณรู้เพียงเล็กน้อยเกี่ยวกับ FP หรือ Scala หรือทั้งสองอย่าง ฉันใช้ Scala มา 2 ปีแล้วและรหัสที่ฉันเขียนใน Scala ไม่ได้ดูแตกต่างจากที่ฉันเขียนใน Haskell มากนัก ฉันเขียนรหัสของฉันในลักษณะการทำงานที่บริสุทธิ์ยกเว้นที่ขอบเขต IO ซึ่งขึ้นอยู่กับสถานการณ์ฉันอาจหรืออาจไม่เลือกที่จะใช้ IO monad
missingfaktor

2
ความคิดเห็นของฉันเป็นเรื่องตลกอย่าหยาบคาย ความจริงที่ว่าคุณใช้เพียงส่วน FP ของ Scala ไม่ได้ทำให้มันเป็นภาษา FP มันพยายามที่จะผสมผสานกระบวนทัศน์การเขียนโปรแกรม 2 อันด้วยเหตุผล ...
sakisk

@faif ฉันจะรู้ได้อย่างไรว่าคุณล้อเล่นหรือจริงจัง? ยิ่งไปกว่านั้นคุณยังจะบอกว่ามันไม่ใช่ FPL ทำให้ข้อความก่อนหน้านี้ไม่มีความหมายและไม่ซื่อสัตย์ ถ้าคุณบอกว่ามันไม่ใช่ FPL เพราะมันเป็นการผสมผสานสองกระบวนทัศน์คุณได้พลาดประเด็นไปอย่างสิ้นเชิง โปรดหยุดการสูญเสียเวลาของฉันถ้าคุณไม่มีค่าที่จะพูด
missingfaktor

2
คุณไม่สมเหตุสมผลเลย
missingfaktor

1

มีการสนทนาหลายครั้งเกี่ยวกับหัวข้อนี้ใน StackOverflow: ดูการผลิต Clojure พร้อมหรือยัง

ตัวอย่างจากสภาพแวดล้อมของฉันประกอบด้วย:

  • Clojure
  • สกาล่า
  • ไก่ (คอมไพเลอร์แบบแผน)

โอ้และอย่าลืมอ่านการตีค่าเฉลี่ย


อ่านแล้ว =) เป็นบทความที่ดีและผลักดันให้ฉันเริ่มเรียนรู้เพิ่มเติมเกี่ยวกับ FP
akobre01

1
  • JaneStreet (กองทุนป้องกันความเสี่ยง) ใช้ OCaml
  • Credit Suisse (ธนาคาร) ใช้ F #
  • ฉันได้ยินมาว่า BarCap (ธนาคาร) ต้องการใช้ Haskell เพื่ออธิบายการจ่ายเงินอนุพันธ์ ฉันไม่รู้ว่ามันจะไปได้ไกลแค่ไหน

RE: Barcap - ไปจนถึงการผลิต: lexifi.com/files/resources/frankau.pdf
Ed'ka

จาก PDF: "บทเรียนที่นี่อาจจะเป็นว่าไม่มีกระสุนเงินในขณะที่วิธีการทำงานทำให้งานของเราง่ายขึ้นอย่างมากปัญหาทั่วไปเช่นความซับซ้อนของอัลกอริทึมไม่สามารถแยกออกได้นอกจากนี้ปัญหาเหล่านี้อาจปลูกในรูปแบบ อย่างใดอย่างหนึ่งไม่รู้จักดังนั้นนักพัฒนาต้องเรียนรู้ประสบการณ์ก่อนหน้านี้ "
quant_dev
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.