tgoop.com/cpplastic/369
Last Update:
Добре, а тепер головне питання: нащо писати різними мовами? Який в цьому сенс?
Перше, що я відповім: не варто писати будь-якими різними мовами, бо більшість з них дійсно майже однакові. Ну що зміниться від того, який там синтаксис у цикла for
, м?
Так-то я вважаю, що синтаксис — це важливо. Синтаксис — це фактично UX вашої мови як інструмента. Але важливим це стає на іншому етапі: коли мову ви вже опанували, чудово розумієте, що й коли в коді відбувається, і тепер вам треба їбошити. От тоді весь той синтаксичний цукор реально стає в пригоді.
А ось коли ви тільки-но обираєте мову, то в 100500 разів важливіші концепції, які за нею стоять.
Колись давно я, вже маючи певний досвід у QBasic, Turbo Pascal і Turbo C, вирішив розібратися з C++. І почав читати славнозвісну «C++ за 21 день» Джесса Ліберті. Попри тисячі жартів з цього приводу нині, книга доволі непогана, хоча я витратив на неї 3 місяці замість 3 тижнів. І чомусь навчився — принаймні для старту цього було абсолютно достатньо.
От тільки ООП мені якось складнувато пішло. Наче й зрозуміло, але й не дуже. Тому я озирнувся навколо й дізнався, що ось в Java-то — все базується на ООП. Тож я пішов і прочитав книжку на 1000+ сторінок про Java. Чи писав я нею згодом? Майже ні. Зате ООП втямив добряче тоді, завдяки чому на C++ писати стало легше й приємніше.
Щось схоже в мене було й з PHP. З 800-сторінкової книжки про неї я виніс знання про те, як влаштований інтернет і як на сервері динамічно створюється HTML. Колись навіть на C++ писав веб-застосунок.
Згодом в універі я дізнався про Haskell і відразу кинувся його вчити. Отримував максимальне задоволення в процесі. Відчуття нагадувало мені мої перші кроки в програмуванні з QBasic, коли я теж був у захваті. Але зараз ретроспективно розумію, що це не було задоволення від написання цією мовою — це було задоволення від навчання новим концепціям. And, oh boy, в гаскелі їх вдосталь! Коли надрочився крутити рекурсії в усі боки, мапи, фолди, композиція функцій, повернення функцій з інших функцій тощо (зауважте, що я навіть не згадав монади), то світ програмування починає сприйматися інакше. Наче до цього задіяна була тільки одна півкуля мозку. І після цього я раптово почав краще розуміти STL. До того кілька книжок прочитав по нього, та все якось воно було дивне мені й незрозуміле. А після Haskell наче все встало на власні місця.
Я розумію, що Haskell і сам увібрав у себе купу попередніх ідей з інших мов, але доволі вдала комбінація врешті вийшла. Тож якщо хтось би мене спитав: «От я знаю одну мову. Яку ще мені вивчити?» — я навіть не вагатимуся, що саме відповісти. Haskell it is! (Але писати в продакшн нею не треба гг).
Підсумок наступний: коли ви плануєте вивчити нову мову програмування, то завжди треба розуміти, з якою саме метою. Згаяти час тупо на інший синтаксис? Чи ви хочете розширити власні горизонти пізнання? Чи, може, просто шукаєте собі зручну робочу конячку? Чи радше хочете пірнути в купу сміття, щоб потім бігати й умовляти інших зробити так само, а все навколо переписати?
Вибирайте мудро