Tôi muốn làm một số lập trình web bằng cách sử dụng lập trình chức năng. Những khung web tốt nào tồn tại cho các ngôn ngữ lập trình chức năng?
Tôi muốn làm một số lập trình web bằng cách sử dụng lập trình chức năng. Những khung web tốt nào tồn tại cho các ngôn ngữ lập trình chức năng?
Câu trả lời:
Thang máy là một khuôn khổ thú vị cho Scala. Ưu điểm thực tế của Scala là nó có thể sử dụng bất kỳ thư viện Java hiện có nào.
Còn nhiều điều nữa (thậm chí tôi đang phát triển một trong F #) nhưng tôi nghĩ những điều này (và Nâng, đã được đề cập) là hoàn chỉnh / phổ biến nhất / được ghi lại. Tôi không thể nhận xét về các khung Erlang.
Có một danh sách các khung web có sẵn cho Erlang. Tóm tắt danh sách đó ở đây:
Một trong hai thứ mà tôi quan tâm nhất là webmachine và nitơ . YMMV.
Noir rất đẹp, tiện dụng và đơn giản (theo nghĩa " Simple Made Easy " của Rich Hickey ):
(defpage "/welcome" []
"Welcome to Noir!")
(server/start 8080)
Tôi đặc biệt thích cách mà sau đó bạn có thể xây dựng toàn bộ ứng dụng web của mình chỉ bằng cách sử dụng thành phần chức năng, được hỗ trợ với một vài macro để kích hoạt DSL khai báo đẹp.
Compojure là một khung web nguồn mở cho ngôn ngữ lập trình Clojure.
Vì bạn đã bỏ bất kỳ ngôn ngữ nào ra khỏi câu hỏi, tôi đoán bạn chấp nhận nhiều ngôn ngữ ...
Vì vậy, đối với ngôn ngữ F # tồn tại FSharp.WebTools .
Công cụ web F # tăng cường phân phối F # với các công cụ để tạo ra các ứng dụng web máy khách / máy chủ / cơ sở dữ liệu đồng nhất trong một dự án được kiểm tra loại. Sự khác biệt về phương thức giữa máy khách và máy chủ được kiểm tra thông qua việc sử dụng quy trình công việc F # và LINQ có thể được sử dụng để truy cập cơ sở dữ liệu. Trong phiên bản đầu tiên, các phần của ứng dụng được cung cấp động dưới dạng JavaScript. Các tiện ích mở rộng có kế hoạch bao gồm phục vụ các phần phía máy khách dưới dạng mã Silverlight.
Tôi khuyên bạn nên nhìn vào Erlang và ngáp . Erlang là một ngôn ngữ lập trình chức năng nhẹ với một bộ tính năng tuyệt vời, thư viện tốt và một cộng đồng phát triển tích cực. Yaws là hiệu quả và trưởng thành tốt.
Snap là một khung web đẹp và thực sự nhanh cho Haskell.
một khung phát triển web đơn giản cho các hệ thống unix, được viết bằng ngôn ngữ lập trình Haskell. Snap có độ bao phủ thử nghiệm cao và được ghi chép đầy đủ. Các tính năng bao gồm:
- Thư viện máy chủ HTTP nhanh
- Một đơn vị hợp lý và sạch sẽ cho lập trình web
- Một hệ thống tạo khuôn mẫu dựa trên HTML để tạo các trang ...
Có một so sánh về các khung web Erlang trên Github:
https://github.com/evanmiller/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks
Tôi chưa chơi với tất cả các khung được liệt kê ở đó vì vậy tôi không muốn phán xét, nhưng tôi đã sử dụng Zotonic khá nhiều trong dự án hiện tại của mình và tôi hoàn toàn có thể giới thiệu nó. Theo như tôi biết thì đó là khung Erlang duy nhất không chỉ là khung mà còn là một CMS toàn diện. Vì vậy, bạn có thể bắt đầu dễ dàng chỉ với các tính năng CMS và sau đó mở rộng trang web bằng cách thêm chức năng tùy chỉnh bằng các mô-đun của riêng bạn. Trong trường hợp của tôi, tôi đang sử dụng nó hoàn toàn như một khung công tác vì tại thời điểm này, các tính năng CMS chỉ hoạt động với PostgreQuery và tôi không thể sử dụng một cơ sở dữ liệu riêng biệt. Nhưng ngay cả khi chỉ là một khung, nó cung cấp rất nhiều tính năng không phải lúc nào cũng được tìm thấy trong các khung khác.
Điều tuyệt vời là dự án đang được phát triển rất tích cực bởi vì những người đứng sau Zotonic thiết kế và triển khai các trang web và họ sử dụng nó làm CMS lựa chọn của họ.
Nếu tôi phải chọn thì có lẽ tôi sẽ cho Zotonic cơ hội đầu tiên, sau đó là ChicagoBoss, và sau đó là Nitrogen.