1. Smalltalk
Awalnya dirancang setidaknya sebagian sebagai cara bagi anak-anak untuk menggunakan komputer untuk belajar. Sintaksnya cukup sederhana untuk dijelaskan dalam paragraf. Ini, seperti LOGO, mencontohkan prinsip "penghalang rendah untuk masuk, langit-langit tinggi".
Smalltalk adalah bahasa OO murni dalam arti bahwa "semuanya adalah objek".
Ini juga mengajarkan banyak teknik fungsional, terutama dalam API Pengumpul: pesan rantai, fungsi tingkat tinggi, peta, pengurangan, dan sebagainya.
The Squeak komunitas bersemangat dan menyambut. Anda juga akan melihat banyak diskusi tentang teknik-teknik canggih: seperti komunitas lisp, ada banyak Smalltalker yang sangat berpengalaman di milis yang bersedia berbagi pengetahuan mereka. (Tidak ada salahnya bahwa komunitas mencicit memiliki sub-populasi besar pendidik profesional.) Ada juga daftar lain untuk pemula.
2. PROLOG
Sebuah logika pemrograman bahasa yang akan memberikan pandangan yang sangat berbeda dari perhitungan untuk hampir semua bahasa lainnya. Prolog juga sangat deklaratif (tetapi tidak sepenuhnya: !
operator memotong atau dapat memiliki efek semantik yang signifikan pada predikat).
3. Gangguan Umum
Skema Pengganti di sini jika Anda suka. Common Lisp mendukung banyak paradigma, terutama OO dan fungsional. Ini juga memiliki sejarah panjang (Lisp adalah bahasa tertua kedua yang masih banyak digunakan: hanya FORTRAN yang lebih tua).
4. Haskell
(Peringatan: Saya baru saja mulai mempelajarinya.) Mungkin bahasa fungsional paling murni di planet ini. Ini memiliki sistem tipe statis yang sangat canggih. Buku intro berguna ada.
5. C atau Delphi
Anda harus tahu cara kerja komputer. Anda perlu tahu bagaimana sebenarnya fungsi memori dan CPU. Keduanya secara tradisional "dekat dengan logam" dan memiliki komunitas yang mendorong pemikiran tentang bagaimana bahasa mereka dikompilasi untuk berkumpul.
Kenapa memesan ini?
Smalltalk sangat mudah dipelajari, sehingga Anda dapat dengan cepat mulai berkonsentrasi untuk menyelesaikan masalah daripada melawan kompiler ("penghalang masuk yang rendah"). Setelah Anda memulai pemrograman, tidak ada batasan buatan tentang apa yang dapat Anda lakukan - "langit-langit tinggi".
Setelah Anda memiliki gagasan yang adil tentang cara kerja OO (dan - dengan ketentuan bahwa ada banyak pengertian berbeda tentang apa arti "OO" - wajar saja untuk mengatakan bahwa OO mendominasi pasar), pindah ke Prolog memastikan bahwa Anda tidak memulai berpikir bahwa OO adalah satu-satunya cara. Prolog sangat berbeda dengan kebanyakan bahasa, dan akan meregangkan otot mental Anda sehingga Anda tidak mulai berpikir bahwa Anda tahu segalanya.
Lisp umum, pada gilirannya, adalah bahasa orang dewasa. Ini memiliki standar yang matang, telah memimpin desain bahasa selama beberapa dekade (bersama dengan Smalltalk) - semua fitur baru yang mewah yang baru saja diperoleh bahasa favorit Anda? Peluang adalah ide yang diinkubasi dalam Lisp atau Smalltalk. Lisp umum juga agak berkutil, dan Anda akan menemukan kutil ke mana pun Anda pergi.
Haskell keempat dalam daftar karena (saya diberitahu: Saya baru saja mulai mempelajarinya) kemurniannya berarti beberapa hal yang sangat umum (seperti I / O) lebih sulit dilakukan daripada dalam bahasa yang kurang murni fungsional. Orang-orang Haskell juga menggunakan beberapa terminologi yang cukup eksotis (kata-kata seperti "catamorphism", katakan), dan Anda mungkin akan lebih baik dengan beberapa pengalaman pemrograman di bawah ikat pinggang Anda sebelum menanganinya. (Tapi aku harus mengulanginya, aku baru saja mulai mempelajarinya! Ambil pendapat ini dengan sedikit garam!)
Dan mengapa C / Delphi bertahan? Karena kecuali Anda bekerja di sistem embedded, Anda benar-benar tidak perlu belajar pemrograman berpikir bahwa hanya ada manajemen memori manual. Pengumpulan sampah bekerja cukup baik untuk mesin level 1980-an. Anda telepon sekuat itu!
Akhirnya, saya tidak memasukkan Erlang di daftar di atas meskipun saya benar-benar harus.