1. Smalltalk
Được thiết kế ban đầu ít nhất là một phần cho trẻ em sử dụng máy tính để học. Cú pháp đủ đơn giản để mô tả trong một đoạn văn. Nó, giống như LOGO, minh họa cho nguyên tắc "rào cản thấp để vào, trần cao".
Smalltalk là ngôn ngữ OO thuần túy theo nghĩa "mọi thứ đều là đối tượng".
Nó cũng dạy nhiều kỹ thuật chức năng, đặc biệt là trong API bộ sưu tập của nó: thông điệp chuỗi, chức năng bậc cao hơn, bản đồ, thu nhỏ, v.v.
Các Squeak cộng đồng sôi động và chào đón. Bạn cũng sẽ thấy nhiều cuộc thảo luận về các kỹ thuật tiên tiến: giống như cộng đồng lisp, có rất nhiều Smalltalker có kinh nghiệm trong danh sách gửi thư sẵn sàng chia sẻ kiến thức của họ. (Không có gì đau đớn khi cộng đồng Squeak có một nhóm lớn các nhà giáo dục chuyên nghiệp.) Ngoài ra còn có một danh sách khác cho người mới bắt đầu.
2. TƯ DUY
Một ngôn ngữ lập trình logic sẽ cung cấp cho bạn một cái nhìn rất khác về tính toán với bất kỳ ngôn ngữ nào khác. Prolog cũng có tính khai báo cao (nhưng không hoàn toàn như vậy: !
toán tử cắt hoặc có thể có ảnh hưởng ngữ nghĩa quan trọng đến một vị ngữ).
3. Lisp thường gặp
Đề án thay thế ở đây nếu bạn muốn. Lisp thông thường hỗ trợ nhiều mô hình, đặc biệt là OO và chức năng. Nó cũng có một lịch sử lâu dài (Lisp là ngôn ngữ lâu đời nhất vẫn được sử dụng rộng rãi thứ hai: chỉ FORTRAN cũ hơn).
4. Haskell
(Hãy cẩn thận: Tôi chỉ mới bắt đầu học nó.) Có lẽ là ngôn ngữ chức năng thuần túy nhất trên hành tinh. Nó có một hệ thống loại tĩnh rất tiên tiến. Sách giới thiệu tiện dụng tồn tại.
5. C hoặc Delphi
Bạn cần biết máy tính hoạt động như thế nào. Bạn cần biết bộ nhớ và CPU thực sự hoạt động như thế nào. Cả hai đều theo truyền thống "gần với kim loại" và có các cộng đồng khuyến khích suy nghĩ về cách ngôn ngữ của họ biên dịch để lắp ráp.
Tại sao lại đặt hàng này?
Smalltalk rất dễ học, vì vậy bạn có thể nhanh chóng bắt đầu tập trung vào giải quyết vấn đề thay vì chống lại trình biên dịch ("rào cản thấp để vào"). Khi bạn bắt đầu lập trình, cũng không có giới hạn nhân tạo về những gì bạn có thể làm - "trần cao".
Khi bạn có ý tưởng hợp lý về cách OO hoạt động (và - với điều kiện là có NHIỀU cách hiểu khác nhau về "OO" nghĩa là gì - thật công bằng khi nói rằng OO thống trị thị trường), chuyển sang Prolog đảm bảo rằng bạn không bắt đầu nghĩ rằng OO là cách duy nhất. Prolog rất khác với hầu hết các ngôn ngữ và sẽ kéo dài cơ bắp tinh thần của bạn để bạn không bắt đầu nghĩ rằng bạn biết tất cả mọi thứ.
Nói chung, Lisp là ngôn ngữ của người trưởng thành. Nó có một tiêu chuẩn trưởng thành, nó đã được thiết kế ngôn ngữ hàng đầu trong nhiều thập kỷ (cùng với Smalltalk) - tất cả những tính năng mới lạ mắt mà ngôn ngữ yêu thích của bạn vừa có được? Rất có thể là những ý tưởng được ủ trong Lisp hoặc Smalltalk. Lisp thông thường cũng có một chút chiến tranh, và bạn sẽ thấy chiến tranh ở mọi nơi bạn đến.
Thứ tư của Haskell trong danh sách bởi vì (tôi đã nói: Tôi chỉ mới bắt đầu học nó) độ tinh khiết của nó có nghĩa là một số điều rất phổ biến (như I / O) khó thực hiện hơn so với các ngôn ngữ ít chức năng thuần túy. Những người Haskell cũng sử dụng một số thuật ngữ khá kỳ lạ (những từ như "dị hình", nói), và có lẽ bạn sẽ tốt hơn với một số kinh nghiệm lập trình dưới vành đai của mình trước khi giải quyết nó. (Nhưng tôi phải lặp lại, tôi chỉ mới bắt đầu học nó! Hãy lấy ý kiến này bằng một nhúm muối!)
Và tại sao C / Delphi kéo dài? Bởi vì trừ khi bạn làm việc trong các hệ thống nhúng, bạn thực sự không cần phải học lập trình với suy nghĩ rằng tất cả đều có. Bộ sưu tập rác hoạt động đủ tốt cho một máy cấp độ những năm 1980. Điện thoại của bạn thật mạnh mẽ!
Cuối cùng, tôi đã không đưa Erlang vào danh sách trên mặc dù tôi thực sự nên làm vậy.