Olej писал(а):
Здесь мельком затронут такой вопрос, что Python может использоваться в очень разных качествах, в разных классах задач, например таких как:
- отдельные приложения (скрипты, командные файлы) выполняющиеся в консольном режиме или вообще без вывода на терминал ... утилиты операционной системы, которые могут быть заменой подобным скриптам на bash, perl, awk, ruby и т.д.
- самодостаточные крупные проекты ... примером может быть тот же Open Stack, полностью ведущиеся на Python
- плагины к крупным проектам (на C/C++) выполняющие задачи конфигурирования, настройки ... пример - проект VoIP телефонного коммутатора FreeSWITCH, использующего для быстрого написания рутинных процедур встроенные интерпретирующие языки JavaScript, Lua, Python (связь C-кода с Python).
- WEB-программирование с использованием Python
- создание для Python специализированных модулей C/C++ (тоже ещё раз связь C-кода с Python ... но уже "в другую сторону").
- создание приложений Python с графическим интерфейсом (GUI) ... интерфейсы к графическим фреймвёркам
Это настолько разные по используемым инструментарию и приёмам области, что разработчик в одной их них может просто не понимать разработчика в другой, например: WEB-разработка и создание модулей расширения к FreeSWITCH ... общим остаётся только синтаксис используемого языка.
Теперь в 2 слова о
функциональном программировании в Python. Конечно, функциональное программирование - это не "классах задач", оно не может стоять в ряду цитируемого перечисления, это - стиль, манера написания вашего программного кода, которые вы по желанию можете использовать или не использовать ... работая в любом из этих классов задач. Функциональное программирование на Python уже вскользь обсуждалось совсем в другой теме, вот с этого места примерно:
Python.
И там же дальше было так:
Виктория писал(а):А чем может помочь простому программисту-труженику функциональное программирование? Изучив эту очередную парадигму, а автоматизации своего труда может и не научишься...
Функциональное программирование может помочь "простому программисту-труженику" в том, чтобы писать программные фрагменты
без ошибок. В том и фокус, что при прочих равных, фрагмент кода, выписанный в функциональном стиле будет содержать
в разы меньше ошибок! Но только на C, C++, Java, PASCAL и т.д. в таком стиле не попишешь ... я уже не говорю о C#, Visual Basic и другой всякой дряни
.
Но здесь тоже есть крайности. О функциональном программировании в Python много (даже слишком много) рассуждений по Интернет. Но все они исходят, собственно, из 3-х - 4-х статей одного автора - Д.Мерц, этот материал есть и на IBM (но с чудовищной! разметкой листингов - или это никто не читает?) ... где кое-что переведено, а кое-что в оригинале:
http://www.ibm.com/developerworks/ru/library/l-prog/
http://www.ibm.com/developerworks/ru/library/l-prog2/
http://www.ibm.com/developerworks/linux ... index.html
http://www.ibm.com/developerworks/ru/library/l-pycon/
Всё это 2007г. или что-то около того. ... А дальше пошли, по преимуществу, пересказки
Но Python явно
не язык функционального программирования. язык функционального программирования[/b]. Язык функционального программирования - это Lisp, Planner, ... из свежих Scala, Haskell, ... На Python только
можно использовать приёмы функционального программирования в общем потоке императивного (командного) потока Python-кода. Т.е. "сворачивать" отдельные фрагменты кода (временами большие) в функциональные выражения.