Lập trình chức năng trong phần mềm thương mại


12

Gần đây tôi đã thảo luận về lập trình chức năng với một đồng nghiệp. Mặc dù cả hai chúng tôi đều đồng ý rằng FP có một số lợi ích rõ ràng (mã đơn giản hơn, dễ lý luận hơn về mặt toán học, v.v.), cả hai chúng tôi đều tự hỏi liệu nó có được sử dụng trong phần mềm thương mại hay không.

Tôi biết có một số dự án nguồn mở và học thuật được viết theo chức năng (ví dụ: tôi đã thấy câu hỏi này trên Stack Overflow) nhưng tôi tự hỏi liệu có ai có thể liệt kê một số phần mềm thương mại khác được viết, ít nhất là một phần không, trong một ngôn ngữ chức năng (và ngôn ngữ gì).


3
Lần truy cập đầu tiên trên Google: haskell.org/haskellwiki/Haskell_in_industry . Có gì sai với trang này? Không đủ chi tiết? Không đủ rõ ràng? Không đủ gần đây?
S.Lott

@ S.Lott - Không phải trên trang web Stack Exchange? - nhiều câu hỏi trên các trang web trao đổi ngăn xếp đã được hỏi ở nơi khác, nhưng có một chính sách rõ ràng rằng bạn cũng nên hỏi họ ở đây. Tôi nghi ngờ haskell.org sẽ biến mất vào ngày mai, nhưng các trang web đến và đi. Trong mọi trường hợp, lập trình chức năng không phải lúc nào cũng có nghĩa là Haskell.
Steve314

@ Steve314: Một chút nghiên cứu sẽ tạo ra một câu hỏi hay hơn nhiều.
S.Lott

@ S.Lott - có lẽ - không chắc chắn tất cả các câu trả lời trong danh sách đạn này đều hữu ích. Không có nhiều chất - chỉ có rất nhiều "tất cả các dự án này không thể sai". Nhưng sau đó, đó là những gì câu hỏi yêu cầu, vì vậy ...
Steve314

Bài thuyết trình này cũng có thể làm sáng tỏ: scribd.com/doc/45049621/iêu
9000

Câu trả lời:


8

Bao giờ sử dụng điện thoại di động? Erlang có một thị trường thích hợp trong lĩnh vực viễn thông, nhưng nó cũng được Facebook sử dụng để thực hiện chức năng trò chuyện của mình. Xem Câu hỏi thường gặp này cho các công ty sau sử dụng Erlang trong sản xuất:

  • Aptela (Nhà cung cấp dịch vụ VoIP)
  • Bluetail / Alteon / Nortel (hệ thống email chịu lỗi phân tán, tăng tốc SSL)
  • Corelatus (giám sát SS7).
  • CouchDB (cơ sở dữ liệu hướng tài liệu bằng MapReduce)
  • dqdp.net (bằng tiếng Latvia) (Dịch vụ web).
  • Ericsson (công tắc ATM AXD301)
  • Facebook (phụ trợ trò chuyện trên Facebook)
  • Viện Khí tượng Phần Lan (Thu thập dữ liệu và theo dõi thời gian thực)
  • Goldman Sachs (chương trình giao dịch cao tần)
  • IDT corp. (Hệ thống chuyên gia định tuyến chi phí thấp nhất thời gian thực)
  • TRÒ CHƠI. (Phần mềm trao đổi công cụ tài chính điện tử)
  • Klarna (hệ thống thanh toán điện tử)
  • Lindenbaum (Hội thảo bằng giọng nói quy mô lớn)
  • Mobilearts (dịch vụ GSM và UMTS)
  • Giải pháp Netkit (Hệ thống hỗ trợ vận hành và giám sát thiết bị mạng)
  • Quá trình một (Nhắn tin Jabber)
  • Quviq (Công cụ kiểm tra phần mềm)
  • RabbitMQ (Tin nhắn doanh nghiệp AMQP)
  • Đối tác của Schlund + (Dịch vụ nhắn tin và tương tác bằng giọng nói)
  • Siêu thị (Trao đổi cá cược và thị trường dự đoán)
  • T-Mobile (trước đây là one2one) (dịch vụ kiểm soát cuộc gọi nâng cao)
  • Telia (một nhà điều hành viễn thông)
  • Textendo (Dịch vụ nhắn tin văn bản sáng tạo)
  • Vail Systems (Hệ thống trả lời bằng giọng nói tương tác)
  • Wavenet (ứng dụng SS7 và IVR)

4

LinkedIn, Twitter, eBay, Sony Animation Studio, Gaurdian, FourSapes và nhiều người khác sử dụng Scala rộng rãi.


1
Đúng, nhưng Scala không phải là FP, nó chỉ sử dụng một số khái niệm FP :)
sakisk

@faif, rác rưởi! Tuyên bố của bạn cho thấy bạn biết rất ít về FP hoặc Scala hoặc cả hai. Tôi đã sử dụng Scala hơn 2 năm nay và mã tôi viết bằng Scala trông không khác mấy so với những gì tôi viết trong Haskell. Tôi viết mã của mình theo cách thức chức năng thuần túy, ngoại trừ tại các ranh giới IO, trong trường hợp tùy thuộc vào tình huống, tôi có thể hoặc không thể chọn sử dụng IO monad.
missingfaktor

2
Nhận xét của tôi là một trò đùa, đừng thô lỗ. Thực tế là bạn chỉ sử dụng các phần FP của Scala không biến nó thành ngôn ngữ FP. Đó là cố gắng pha trộn 2 mô hình lập trình vì một lý do ...
sakisk

@faif, làm thế nào để tôi biết bạn đang đùa hay nghiêm túc? Hơn nữa, bạn lại tiếp tục nói rằng đó không phải là FPL, khiến cho tuyên bố trước đây của bạn trở nên vô nghĩa và không trung thực. Nếu bạn nói đó không phải là FPL bởi vì nó pha trộn hai mô hình, bạn đã hoàn toàn bỏ lỡ điểm . Vui lòng ngừng lãng phí thời gian của tôi nếu bạn không có gì để nói.
missingfaktor

2
Bạn đang làm cho không có ý nghĩa gì cả.
missingfaktor


1
  • JaneStreet (một quỹ phòng hộ) sử dụng OCaml.
  • Credit Suisse (một ngân hàng) sử dụng F #.
  • Tôi đã nghe nói rằng BarCap (một ngân hàng) muốn sử dụng Haskell để mô tả các khoản thanh toán phái sinh. Tôi không biết điều này đã đi bao xa.

RE: Barcap - tất cả các cách để sản xuất: lexifi.com/files/resource/frankau.pdf
Ed'ka

Từ PDF: "Bài học ở đây, có lẽ là không có viên đạn bạc. Mặc dù cách tiếp cận chức năng đã đơn giản hóa rất nhiều nhiệm vụ của chúng tôi, nhưng các vấn đề phổ biến như tính toán thuật toán có thể được đặt sang một bên. Ngoài ra, những vấn đề này có thể xuất hiện ở dạng người ta không nhận ra, để nhà phát triển phải học lại những kinh nghiệm trước đó. "
quant_dev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.