>>2367
это ты себе такое обоснование придумал? молодец, садись, двойка.
чистые ленивые функциональные языки со статической типизацией и type inference (например Haskell, Miranda, Concurrent Clean) лучше, чем любые императивные в прикладных приложениях (по состоянию на 2009 год не включаем сюда игрушки типа кризиса и ядра распространённых ОС) тем, что:
- чистота не позволяет программисту плодить сайд-эффекты там, где это не нужно, что облегчает рефакторинг и декомпозицию. юнит тестирование вытесняется рандомизированным тестированием
- ленивость энфорсит частоту + позволяет кодерить более абстрактные алгоритмы (с бесконечными списками, iterative IO и проч.)
- функциональность позволяет абстрагироваться от стейта и писать код на более высоком уровне. map лучше, чем цикл. не говоря уж о том, что общие паттерны морфизмов выражаются через разные фолды, а этих паттернов дохуя в повседневных приложениях
- сильная статическая типизация позволяет избегать многих багов ещё в compile-time, избегая ненужного и ненадёжного тестирования, позволяя математически строго доказывать правильность алгоритм в большем количестве случаев, чем это возможно со слабой статической или динамической типизацией
из трёх названных языков самым популярным и развитым является Haskell и его имплементация GHC, которые разрабатываются в microsoft research, и вобрали в себя большое количество фич из авангарда computer science (приложения теорката, семейства типов, в следующих версиях — суперкомпиляция), при этом позволяя генерировать машинный код с минимальным количеством исходных строк кода и максимальной надёжностью. на этом языке уже написаны многие полезные приложения, он набирает обороты, используется в финансовых приложениях, веб-программировании, GUI, играх, системном программировании, а спрос на программистов, владеющих этим языком, всё возрастает
ваши возражения?