Тема: Нетехнологичность функционального синтаксиса (Хаскеля?) для API?
Одной из объявленных целей разработки Кантора является популяризация функционального программирования и вынос его на системный уровень, чтобы в итоге родилось новое направление — функциональное системное программирование.
В связи с этим есть предположение, что одним из факторов, препятствующих внедрению ФП в массовом производстве, является нетехнологичность синтаксиса типичного функционального языка (Хаскель?) с точки зрения простоты API, затрудняющего, в свою очередь, повторное использования кода. Особенно критично оно для системного программирования.
В промышленном программировании важны прототипы функций, являющиеся неотъемлемой частью интерфейсов библиотек, вместе с типами и констатами образующих модули — отлаженные куски кода для решения типовых задач. Для реальной разработки важно, что в случаях, когда модуль или библиотека не имеют документированного API, то глядя на ее интерфейс (заголовочный файл в Си), легко понять, какие функции в ней содержатся, какие параметры им нужно передавать при вызове, а также типы параметров. Это и есть технологичность. Популярные API служат явным или неявным стандартом решения задач, сокращают время на разработку за счет переиспользования кода.
Переход на ООП не сильно меняет картину или даже упрощает ее, поскольку объявления классов или интерфейсов образуют API естественным образом, а наследование даже добавляет ему выразительности по сравнению с процедурными API. Наверное, поэтому ООП не встретило никаких препятствий при внедрении в массовое программирование.
Синтаксис же функциональных языков часто (?) построен таким образом, что поверхностным взглядом порой трудно понять, какие функции объявлены и доступны вызывающей стороне, какие параметры им передавать. Это затрудняет как повторное использование кода без документации, так и использование кода в качестве самодокументирующегося, тем самым снижая технологичность функциональных языков. Есть предположение, что преодоление этого недостатка сделает функциональное программирование популярней.
Я могу ошибаться, придумав проблему там, где ее нет (типа, Хаскель не подходит для системного программирования, и точка), для выяснения чего и создал тему.
Это спорная тема, модерирование в ней будет жестче, чем в обычных.
Для продолжения дискуссии нужен типичный пример объявления функции на Хаскеле или другом функциональном языке, чтобы показать, присутствует в нем проблема («проблема»?) или нет.