Gần đây tôi đã đọc rất nhiều chủ đề về các ngôn ngữ lập trình chức năng (gần như trong năm vừa qua). Tôi thực sự muốn chọn một và tìm hiểu nó kỹ lưỡng.
Học kỳ [khóa học] vừa qua, tôi đã được giới thiệu về Đề án. Tôi yêu nó. Yêu thích sự đơn giản cực độ của cú pháp, nguyên tắc đồng âm , các macro ( hợp vệ sinh và không vệ sinh), n-arity của thủ tục, v.v.
Vấn đề với Scheme là ngôn ngữ học thuật. Tôi không nghĩ rằng nó thực sự được sử dụng trong môi trường sản xuất. Tôi không tin rằng nó đặc biệt tốt trong hồ sơ xin việc của chúng tôi. Vì vậy, tôi đã tìm kiếm xung quanh để thay thế. Có rất nhiều trong số họ và bằng cách nào đó tất cả họ dường như có một mức độ phổ biến tương tự.
Một số suy nghĩ về một số ngôn ngữ chức năng khác mà tôi đã xem xét:
- Clojure: Nghe có vẻ tuyệt vời vì nó có thể truy cập vào thế giới Java, nó được định hướng theo khả năng mở rộng và đồng thời, nhưng không phải là thế giới Java ngay từ đầu? Tôi đã biết Java khá rõ, nhưng sẽ tốt hơn nếu thêm nhiều năng lượng hơn tùy thuộc vào JVM?
- Haskell: Trông giống như một ngôn ngữ được đánh giá cao, nhưng từ những gì tôi đã đọc, nó cũng giống ngôn ngữ học thuật hơn.
- Lisp: Nó đã tồn tại mãi mãi. Nó dường như có hầu hết những gì tôi thích từ Scheme. Nó có một cộng đồng lớn. Đối với những gì tôi [nghĩ rằng tôi] biết, nó có lẽ là ngôn ngữ lập trình chức năng được sử dụng rộng rãi nhất trong công nghiệp (?).
- F #: Không thực sự xem xét nó. Tôi không phải là một fan hâm mộ lớn của MS. Tôi không có tiền để trả cho phần mềm của họ (tôi có thể có chúng miễn phí từ các liên minh đại học, nhưng tôi có xu hướng đi theo các giải pháp dựa vào cộng đồng). Mặc dù ... tôi đoán nó sẽ là sự lựa chọn định hướng nghề nghiệp tốt nhất.
Tối nay, tôi đang nghiêng về Lisp. Một tuần trước, đó là Haskell. Trước đó nó là Clojure. Trong năm vừa qua, tôi đã thực hiện một số Đề án cho vui, không thúc đẩy nó vì lý do bạn biết. Bây giờ tôi muốn nghiêm túc (về việc học một, về thực hiện các dự án thực sự với nó, về việc cuối cùng có thể làm việc chuyên nghiệp với nó). Vấn đề của tôi là tôi sẽ cần phải tìm hiểu sâu tất cả trước khi có thể chọn một.