2012-04-09 43 views
8

Tôi đang học Haskell for great good.Lợi ích chính của việc sử dụng Haskell để phát triển web là gì?

Tôi thích OOP và các loại hệ thống khác nhau. Tôi đã sử dụng Java để phát triển các ứng dụng web (Java EE, spring, Hibernate, struts 1.x), bây giờ tôi đang sử dụng thường xuyên Python (giá treo, django, sqlalchemy, pymongo) và Javascript. Tôi đã có một cải tiến lớn về năng suất cá nhân của mình: cách tiếp cận nhẹ, gõ vịt, trình lặp tuyệt vời, chức năng như công dân hạng nhất, cú pháp và cấu hình đơn giản, các công cụ nhanh như pipdistribute (và nhiều hơn nữa) đã giúp tôi rất nhiều.

Nhưng lý do đầu tiên làm tăng năng suất của tôi là chính ngôn ngữ Python.

Lợi ích chính của việc sử dụng Haskell để phát triển web là gì? Ví dụ, suy luận kiểu của nó thực sự có thể cải thiện ứng dụng web của tôi như thế nào? Cho đến nay, tôi nhận thấy rằng khi bạn trang trí chức năng của mình với chữ ký kiểu , bạn sẽ thêm rất nhiều ngữ nghĩa vào chương trình của mình. Tôi hy vọng tất cả nỗ lực này để quay lại theo một cách nào đó, để tiết kiệm nhiều dòng mã và phát ra âm thanh. Tôi thực sự thích sự phân biệt rõ ràng giữa các loại và dữ liệu, tôi bắt đầu hiểu cách chúng hoạt động, nhưng tôi muốn một cái gì đó trở lại: P

Đừng hiểu sai, tôi vừa mới bắt đầu nghiên cứu Haskell để Maybe Tôi ' m thiếu một số awesomness nhưng tôi thực sự muốn hiểu mô hình của nó và khi nó có giá trị sử dụng nó.

+2

Bạn có thể sẽ không hiểu hai phần ba cách thức hoạt động (Tôi chắc chắn don 't), nhưng khung công tác web Yesod sử dụng các loại cho tốt. – delnan

+0

@delnan Yesod (và [đoạn này] (http://yannesposito.com/Scratch/en/blog/Yesod-tutorial-for-newbies/#bulletproof)) trông giống như một khởi đầu tốt, cảm ơn bạn. – vrde

+0

Có thể điều này không liên quan trực tiếp đến * cách * lợi ích có thể được gặt hái, nhưng đây là một ví dụ về lợi thế của việc sử dụng Haskell để phát triển ứng dụng web - http://jekor.com/article/is-haskell- a-good-choice-for-web-applications – Gangadhar

Trả lời

3

Hầu hết các ứng dụng web nhằm mục đích là statelesshandle concurrency well. Nó cũng khá quan trọng để mở rộng quy mô (Google SEO reasons, and user experience).

Haskell xử lý các vấn đề này khá tốt (mặc dù IMHO mang tính học thuật cao hơn và có lẽ ít trực quan hơn).

Điều đó được cho là do thiếu người làm ứng dụng web dev (so với node.js nói) và nhà phát triển ứng dụng web truyền thống đã tập trung hơn vào khung tâm trí OOP có thể khá khó khăn.

tôi đã có một số vấn đề cố gắng sử dụng nó như là bạn có thể thấy trong câu hỏi của tôi dưới đây:

How do I do automatic data serialization of data objects?

Handling incremental Data Modeling Changes in Functional Programming

+0

Bằng cách này tôi không có nghĩa là để đặt xuống Haskell. Tôi nghĩ đó là một ngôn ngữ khá mạnh mẽ. Tôi chỉ không thể quấn đầu của tôi xung quanh làm cho nó hiệu quả cho phát triển ứng dụng web đó là những gì tôi làm cho một cuộc sống. –

+1

Tôi nghĩ bạn sẽ thấy nó có nhiều trải nghiệm khác nhau vào cuối năm 2015. Giờ đây Haskell có một số khung công tác web cực kỳ mạnh mẽ cho cả kết thúc và giao diện người dùng (GHCJS biên dịch sang JavaScript). Nếu bạn đang tìm kiếm web-dev với loại an toàn, Haskell đang đạt được lực kéo. –

Các vấn đề liên quan