Chọn ngôn ngữ để xây dựng một ứng dụng dựa trên thị trường tuyển dụng so với hiệu suất và khả năng duy trì [đóng]


8

Tôi đang đối mặt với sự lựa chọn có nên bắt đầu xây dựng các thành phần Haskell cho một ứng dụng sản xuất nhất định được thực hiện trong Ruby hay không.

Tôi nghiêng về Haskell vì nhiều lý do, chủ yếu là tốc độ (Haskell được biên dịch nhanh hơn 4-8 lần), độ trong suốt cao hơn (thông qua hệ thống loại Haskell) và khả năng tái cấu trúc an toàn hơn (hệ thống loại). Tôi đã viết một vài chương trình sản xuất và nguồn mở ở Haskell và rất thích viết nó.

Tính khả thi không phải là một vấn đề. Tôi đã chơi xung quanh với các thư viện cơ sở dữ liệu và khung web Haskell Snap như PostgreQuery.Simple và hài lòng rằng việc viết lại ứng dụng Rails và các chương trình phụ trợ khác nhau với Haskell là khả thi.

Vấn đề thực sự là thuê các lập trình viên khi chúng ta cần mở rộng nhóm phát triển, hoặc cuối cùng là giao toàn bộ trách nhiệm lập trình. Tìm lập trình viên trong Ruby dễ dàng hơn nhiều so với ở Haskell. Mặt khác, cộng đồng Haskell dường như đang phát triển và không quá khó để đào tạo các lập trình viên sửa đổi các phần của chương trình Haskell nếu bạn tiếp cận nó như một DSL (giống như Ruby on Rails). Hệ thống loại Haskell dường như cũng hứa hẹn sự hợp tác an toàn hơn nhiều so với Ruby năng động.

Trong bài tiểu luận "Đánh bại mức trung bình" ( http://www.paulgraham.com/avg.html ), Paul Graham lập luận rằng sử dụng một ngôn ngữ ưu việt có thể là một lợi thế quyết định. Nhưng khi nào thì nên bỏ qua việc sử dụng một ngôn ngữ ưu việt để dễ dàng thêm các lập trình viên vào nhóm của bạn?


5
Bạn đang quên một điều: Mặc dù ít người biết Haskell, nhưng có lẽ nhiều người biết điều đó và muốn sử dụng nó trong công việc nhưng không được phép hơn là tạo ra một nơi mà nó được phép trong khi có thể khó tìm thấy Haskeller so với những người theo chủ nghĩa ruby, một số ít bạn tìm thấy sẽ là một người xuất sắc ở trên và có một động lực lớn để làm việc cho bạn (tôi thà làm việc ở Haskell hơn .NET ...)
Jimmy Hoffa

4
Chỉ cần một suy nghĩ: Scala đang trở nên phổ biến nhanh hơn nhiều so với Haskell, như bây giờ. Nhưng ai đó đã thành thạo các khái niệm cơ bản về Scala sẽ có thời gian tìm kiếm Haskell dễ dàng hơn nhiều. Vì vậy, thị trường tuyển dụng có thể không tệ như vẻ ngoài của nó.
9000

5
Phản ứng đầu tiên của tôi đối với câu hỏi là kiểm tra hồ sơ của bạn để xem công ty của bạn có ở gần nơi tôi sống không. Tôi chỉ nói.
psr

Câu trả lời:


11

Nếu tốc độ, tính minh bạch và lợi ích tái cấu trúc của Haskell quan trọng hơn đối với sự thành công của ứng dụng thì nguy cơ phải đào tạo các nhà phát triển thì bạn nên gắn bó với Haskell.

Một lập trình viên hợp lý thông minh với cố vấn sẽ có thể đóng góp cho sự phát triển của bạn mà không quá đau đớn.

Chỉ cần chắc chắn rằng bạn có thể đủ khả năng (về thời gian và chi phí) để làm điều đó.


5

Bạn sẽ tiết kiệm được bao nhiêu ngày khi sử dụng Haskell trái ngược với Ruby? Nó sẽ nhiều hơn hoặc ít hơn số ngày cần thiết để tìm lập trình viên Haskell hoặc đào tạo lập trình viên không phải Haskell? Bạn đã sẵn sàng dạy cho các lập trình viên không phải Haskell cách sử dụng Haskell? Bạn có sẵn sàng thuê các lập trình viên biết đầy đủ và rõ ràng rằng họ sẽ không thể chứng minh khả năng sử dụng Haskell của mình cho đến khi họ thuê ban đầu không?

Đây là những câu hỏi khó trả lời. Tôi nghĩ yếu tố quyết định ở đây nên là liệu bạn có định tiếp tục sử dụng Haskell trong tương lai hay không nếu điều này sẽ chỉ dành cho một dự án. Nếu bạn có kế hoạch tiếp tục sử dụng Haskell trong tương lai, thì trong khi chương trình sẽ mất nhiều thời gian hơn, nó cũng có thể được coi là một khoản đầu tư. Tuy nhiên theo quan điểm khiêm tốn của tôi, ngôn ngữ không quan trọng bằng kiến ​​trúc. Nếu bạn sử dụng đúng khung và cấu trúc chương trình phù hợp, bạn có thể dễ dàng vượt qua cùng một chương trình bằng ngôn ngữ "ưu việt" khác với khung sai hoặc cấu trúc chương trình sai.

Nói cách khác, nếu thời gian được đầu tư để thực hiện một chương trình đúng cách, tôi nghĩ lần này sẽ tốt hơn khi phân tích một cách tiếp cận trước khi viết dòng mã đầu tiên, đã được chứng minh là cắt giảm đáng kể thời gian lập trình nếu được thực hiện đúng.


3
Có, nhưng ai muốn viết mã COBOL, bất kể "khung đúng" hay "cấu trúc chương trình đúng"? : Bài tiểu luận của P Paul Graham cho rằng chính ngôn ngữ lập trình có vấn đề.
Andres F.

1
Đúng, tôi đã không nói nó sẽ rất vui. Tuy nhiên, nếu viết chương trình là tất cả về ngôn ngữ mà tôi muốn sử dụng, thì tôi đã ngừng sử dụng Java một thời gian trước đây. :)
Neil
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.