Почему программисты используют Python?
Общие вопросы Библиотеки поддержки, Высокая скорость разработки, Интеграция компонентов, Качество программного обеспечения
Это самый типичный вопрос, который задают начинающие программисты, потому что на сегодняшний день существует масса других языков программирования. Учитывая, что число пользователей Python составляет порядка миллиона человек, достаточно сложно однозначно ответить на этот вопрос.
Выбор средств разработки иногда зависит от уникальных особенностей и личных предпочтений. Однако после обучения примерно 225 групп и более 3000 студентов за последние 12 лет у меня накопились некоторые общие мысли по этому поводу. Основные факторы, которые приводятся пользователями Python, примерно таковы:
Качество программного обеспечения
Для многих основное преимущество языка Python заключается в
удобочитаемости, ясности и более высоком качестве, отличающими его от других
инструментов в мире языков сценариев. Программный код на языке Python
читается легче, а значит, многократное его использование и
обслуживание выполняется гораздо проще, чем использование программного кода на
других языках сценариев. Единообразие оформления программного кода
на языке Python облегчает его понимание даже для тех, кто не участвовал
в его создании. Кроме того, Python поддерживает самые современные
механизмы многократного использования программного кода, каким является
объектно-ориентированное программирование (ООП).
Высокая скорость разработки
По сравнению с компилирующими или строго типизированными языками,такими как С, C++ и Java, Python во много раз повышает
производительность труда разработчика. Объем программного кода на языке Python
обычно составляет треть или даже пятую часть эквивалентного программного
кода на языке C++ или Java. Это означает меньший объем ввода с
клавиатуры, меньшее количество времени на отладку и меньший объем трудозатрат
на сопровождение. Кроме того, программы на языке Python запускаются
сразу же, минуя длительные этапы компиляции и связывания,
необходимые в некоторых других языках программирования, что еще больше
увеличивает производительность труда программиста.
Переносимость программ
Большая часть программ на языке Python выполняется без изменений навсех основных платформах. Перенос программного кода из операционной
системы Linux в Windows обычно заключается в простом копировании
файлов программ с одной машины на другую. Более того, Python предоставляет
массу возможностей по созданию переносимых графических интерфейсов,
программ доступа к базам данных, веб-приложений и многих других типов
программ. Даже интерфейсы операционных систем, включая способ
запуска программ и обработку каталогов, в языке Python реализованы
переносимым способом.
Библиотеки поддержки
В составе Python поставляется большое число собранных и переносимыхфункциональных возможностей, известных как стандартная
библиотека. Эта библиотека предоставляет массу возможностей, востребованных
в прикладных программах, начиная от поиска текста по шаблону и
заканчивая сетевыми функциями. Кроме того, Python допускает расширение как
за счет ваших собственных библиотек, так и за счет библиотек, созданных
сторонними разработчиками. Из числа сторонних разработок можно
назвать инструменты создания веб-сайтов, программирование
математических вычислений, доступ к последовательному порту, разработку игровых
программ и многое другое. Например, расширение NumPy
позиционируется как свободный и более мощный эквивалент системы программирования
математических вычислений Mathlab.
Интеграция компонентов
Сценарии Python легко могут взаимодействовать с другими частямиприложения благодаря различным механизмам интеграции. Эта интеграция
позволяет использовать Python для настройки и расширения
функциональных возможностей программных продуктов. На сегодняшний день
программный код на языке Python имеет возможность вызывать функции
из библиотек на языке C/C++, сам вызываться из программ, написанных
на языке C/C++, интегрироваться с программными компонентами на языке
Java, взаимодействовать с такими платформами, как СОМ и .NET, и
производить обмен данными через последовательный порт или по сети с помощью
таких протоколов, как SOAP, XML-RPC и CORBA. Python - не
обособленный инструмент.
Удовольствие
Благодаря непринужденности языка Python и наличию встроенныхинструментальных средств процесс программирования может приносить
удовольствие. На первый взгляд это трудно назвать преимуществом, тем не
менее, удовольствие, получаемое от работы, напрямую влияет на
производительность труда.
Из всех перечисленных факторов наиболее существенными для большинства
пользователей являются первые два (качество и производительность).
Качество программного обеспечения
По своей природе Python имеет простой, удобочитаемый синтаксис и яснуюмодель программирования. Согласно лозунгу, выдвинутому на недавней
конференции по языку Python, основное его преимущество состоит в том, что Python
«каждому по плечу» - характеристики языка взаимодействуют ограниченным
числом непротиворечивых способов и естественно вытекают из небольшого
круга базовых концепций. Это делает язык простым в освоении, понимании
и запоминании. На практике программистам, использующим язык Python,
почти не приходится прибегать к справочным руководствам - это
непротиворечивая система, на выходе которой, к удивлению многих, получается
профессиональный программный код.
Философия Python по сути диктует использование минималистского подхода.
Это означает, что даже при наличии нескольких вариантов решения задачи
в этом языке обычно существует всего один очевидный путь, небольшое
число менее очевидных альтернатив и несколько взаимосвязанных вариантов
организации взаимодействий. Более того, Python не принимает решения за вас,
когда порядок взаимодействий неочевиден - предпочтение отдается явному
описанию, а не «волшебству». В терминах Python явное лучше неявного, а
простое лучше сложного.1
Помимо философии Python обладает такими возможностями, как модульное
и объектно-ориентированное программирование, что естественно упрощает
возможность многократного использования программного кода. Поскольку
качество находится в центре внимания самого языка Python, оно также
находится в центре внимания программистов.
Высокая скорость разработки
Во время бума развития Интернета во второй половине 1990-х годов былосложно найти достаточное число программистов для реализации программных
проектов - от разработчиков требовалось писать программы со скоростью
развития Интернета. Теперь, в эпоху экономического спада, картина изменилась.
Сегодня от программистов требуется умение решать те же задачи меньшим
числом сотрудников.
В обоих этих случаях Python блистал как инструмент, позволяющий
программистам получать большую отдачу при меньших усилиях. Он изначально
оптимизирован для достижения высокой скорости разработки - простой
синтаксис, динамическая типизация, отсутствие этапа компиляции и встроенные
инструментальные средства позволяют программистам создавать программы
за меньшее время, чем при использовании некоторых других инструментов.
В результате Python увеличивает производительность труда разработчика во
много раз по сравнению с традиционными языками программирования. Это
значительное преимущество, которое с успехом может использоваться как во
время бума, так и во время спада, а также во время любого промежуточного
этапа развития индустрии программного обеспечения.
Дорогой автор, прошу указывать свое имя, так как иначе в дипломе нельзя сделать ссылку на вашу статью в списке литературы.