Раніше я рекомендував, що для вивчення функціонального програмування потрібно вивчити Haskell. Зараз я вважаю, що ця порада не така оптимальна. Причина, по якій Haskell важкий, полягає в масивній системі типів, а не в тому, що вона функціональна. Кращим варіантом для функціонального програмування були б похідні від lisp, такі як Racket або Clojure. Таким чином, ви зосереджуєтеся на рекурсії та функціональних шаблонах проектування, а не на системі типів. (Я все ще вважаю, що всі повинні в якийсь момент вивчити Haskell як для системи типів, так і для аспекту функціонального програмування). Враховуючи, що в майбутньому ШІ писатиме більшу частину коду, мені здається, що навичка програміста полягає в тому, щоб чітко вказати, яка поведінка очікується, а потім дозволити ШІ подбати про це. Haskell є однією з найкращих мов для суворих специфікацій. Також трохи цікавої історії про мене: одного разу я використовував Clojure у виробництві просто тому, що міг, і мені набридли спільні мови. Я в принципі не міг звільнитися, тому моєму босу довелося погодитися з цим, хоча він (справедливо) скептично ставився до використання мови, на яку неможливо найняти. Так, я був тим програмістом і раніше.
3,05K