Останнім часом я помітив, що функціональні мови програмування набирають популярності . Нещодавно я бачив, як індекс Tiobe демонструє зростання їх популярності порівняно з минулим роком, хоча більшість із них навіть не досягають топ-50 найпопулярніших мов за цим показником.
І це вже досить давно. Функціональне програмування просто не набуло такої популярності, як інші моделі (тобто об'єктно-орієнтоване програмування).
Однак я бачив перероджений інтерес до сили функціонального програмування, і тепер, коли багатоядерні технології стають все більш популярними, розробники почали проявляти інтерес до інших моделей одночасності, які вже вивчалися в минулому такими мовами, як Haskell і Erlang.
Я з великим інтересом бачу той факт, що, незважаючи на відсутність значного сприйняття громадою, все більше і більше мов такого роду продовжують з'являтися. Clojure (2007), Scala (2003), F # (2002) - лише три приклади останнього останнього десятиліття.
Я сам був, вкладаючи певний час, вивчаючи Хаскелл і Скалу. І я знаходжу великий потенціал у парадигмі, яка для мене була новою, незважаючи на те, що я існував так довго.
І звичайно, моє найбільше питання, якщо будь-яке з них стане досить популярним, щоб розглянути можливість прикласти до них будь-які зусилля, але це питання, на яке навіть Мандраке не міг би відповісти, незважаючи на всю метушню, яку люди роблять щодо них.
Я хочу запитати:
- У яких сценаріях я повинен вважати функціональну мову програмування, більш підходящу для виконання заданого завдання? Окрім недавно популярної багатоядерної проблеми паралельного програмування.
- Якби я вирішив перейти на функціональну мову програмування, яку б ви вважали найбільшою підводною камені, з якою я зіткнувся б? (Окрім зміни парадигми та труднощів з оцінкою ефективності через ледачу оцінку).
- Якщо у вас є стільки функціональних мов програмування, як би ви обрали ту, яка краще відповідає вашим потребам?
Будь-які рекомендації щодо подальших досліджень будуть більш ніж вітаються.
Я шукав в Інтернеті думки, і, схоже, вся ця поновлена популярність походить від ідеї, що тепер ми збираємося вдарити стіну Закону Мура, а функціональні мови програмування прийдуть і героїчно врятують нас. Але якщо це так, я б сказав, що є більше ймовірностей існуючих популярних мов, що адаптуються до парадигми.
Деякі з вас, маючи більший досвід роботи кожного дня з цими мовами, можливо, можуть запропонувати більше розуміння цього питання. Всі ваші думки будуть краще оцінені та уважно розглянуті.
Спасибі заздалегідь!