1. Малийрозмова
Спочатку розроблений хоча б частково як спосіб використання дітьми комп'ютерів для навчання. Синтаксис досить простий для опису в абзаці. Він, як і LOGO, є прикладом принципу "низький бар'єр для входу, висока стеля".
Smalltalk є чистою мовою ОО в тому сенсі, що "все є об'єктом".
Він також викладає багато функціональних прийомів, зокрема, у своєму API API колекції: ланцюжок повідомлень, функції вищого порядку, карта, зменшення тощо.
Писк співтовариство живе і привітно. Ви також побачите багато дискусій про передові методики: як і у спільноти lisp, у списку розсилки є багато дуже досвідчених Smalltalker, які бажають поділитися своїми знаннями. (Не завадить, що в громаді Сквік є велика підгрупа професійних педагогів.) Існує ще один список для початківців.
2. ПРОЛОГ
Мова логічного програмування, яка дасть вам зовсім інший погляд на обчислення майже будь-якої іншої мови. Prolog також є дуже декларативним (але не зовсім так: !оператор або cut може мати значний семантичний вплив на присудок).
3. Лист звичайний
Замініть Схему тут, якщо хочете. Common Lisp підтримує декілька парадигм, особливо OO та функціональних. Він також має давню історію (Лісп - друга найдавніша досі широко використовувана мова: лише старша FORTRAN).
4. Хаскелл
(Caveat: Я лише почав її вивчати.) Мабуть, найчистіша функціональна мова на планеті. Він має дуже просунуту систему статичного типу. Існують зручні вступні книги .
5. C або Delphi
Потрібно знати, як працюють комп’ютери. Вам потрібно знати, як насправді функціонують пам'ять та процесор. Обидва вони традиційно «близькі до металу» і мають спільноти, які заохочують думати про те, як їх мова складається до складання.
Чому саме цей наказ?
Smalltalk дуже легкий у навчанні, тому ви можете швидко почати концентруватися на вирішенні проблем, а не на боротьбі з компілятором ("низький бар'єр для входу"). Після того, як ви розпочнете програмування, також немає штучного обмеження в тому, що ви можете зробити - "висока стеля".
Після того, як у вас є чітке уявлення про те, як працює OO (і - за умови, що існує багато різних розумінь того, що означає "OO" - справедливо сказати, що OO домінує на ринку), переміщення на Prolog гарантує, що ви не почнете думаючи, що ОО є єдиним способом. Пролог сильно відрізняється від більшості мов і розтягне ваші психічні м'язи, щоб ви не думали, що все знаєте.
Звичайний Лісп, у свою чергу, - мова дорослого. Він має зрілий стандарт, він лідирує в мовному дизайні десятиліттями (разом з Smalltalk) - усі ці фантазійні нові функції, які ваша улюблена мова щойно придбала? Швидше за все ідеї, інкубовані або в Lisp, або в Smalltalk. Звичайний Лісп теж трохи бородавчастий, і ви знайдете бородавкість де завгодно.
Четвертий у списку Хаскелл, оскільки (мені кажуть: я тільки почав це вивчати), його чистота означає, що деякі дуже поширені речі (наприклад, введення / виведення) зробити складніше, ніж на менш чисто функціональних мовах. Люди Хаскелла також використовують деякі досить екзотичні термінології (такі слова, як "катаморфізм", скажімо), і вам, мабуть, буде краще з деяким досвідом програмування під вашим поясом, перш ніж братися за нього. (Але я мушу повторно повторити, я лише почав це вивчати! Прийміть цю думку з дрібкою солі!)
І чому C / Delphi триває? Тому що, якщо ви не працюєте у вбудованих системах, вам дійсно не доведеться вчитися програмуванню, думаючи, що ручне управління пам'яттю все є. Збір сміття працював досить добре для машини рівня 1980-х. Ваш телефон такий потужний!
Нарешті, я не вклав Ерланг у вищевказаний список, хоча і справді мав би.