Какова доминирующая причина популярности Python как язык прикладного программирования и системы?

При происхождении из среды корпоративных систем (думают Java и Windows) - я удивлен популярностью Python как язык разработки прототипа и пытаюсь указать на точную причину этого. В качестве примера можно привести то, чтобы быть перечисленным как одно из этих четырех использования Google языков. Возможные причины включают:

  • включает быстрое использование разработки прототипа системного приложения библиотек C++ с помощью оберток большого глотка
  • созданный к четко определенной спецификации языка
  • инновационные функции на высоком уровне включения уровня синтаксиса выразительности
  • очень гибкие веб-платформы создаются задолго до других языков (django)

Вопросы - то, что делает его настолько популярным/высоко оцененным, но дать некоторый баланс я собираюсь привести некоторые причины, это не могло бы быть популярно:

  • меньше поддержки инструмента
  • меньше поддержки предприятия (т.е. справочная служба поставщика)
  • более низкая производительность
  • BDFL, не заботящийся об обратной совместимости в обновлениях версии

Или это было просто лучшим в конкретном моменте времени (приблизительно 8 лет назад) и другие языки, и платформы с тех пор нагнали?

5
задан Ned Batchelder 12 July 2010 в 11:04
поделиться

5 ответов

  1. Высоковыразительный язык. Люди часто говорят: "Python работает так, как работает мой мозг".
  2. Динамическая типизация означает, что вы не тратите время на ублажение компилятора.
  3. Большая стандартная библиотека означает, что инструменты, которые вам нужны, часто находятся у вас под рукой.
  4. Еще большее количество сторонних пакетов (PIL, Numpy, NLTK, Django) означает, что большие проблемные области часто хорошо поддерживаются.
  5. Реализация с открытым исходным кодом означает, что вам не нужно унижаться перед службой поддержки поставщика, вы можете найти ответы самостоятельно и получить решения от большого сообщества пользователей.
19
ответ дан 18 December 2019 в 05:39
поделиться
  • позволяет быстро создавать прототипы системных приложений с использованием библиотек C ++ с использованием swig-оболочек

... Что?

Большинство людей, занимающихся программированием на Python, не занимаются программированием на C ++, они занимаются программированием на Python. И они делают это быстро, потому что им не нужно беспокоиться о таких вещах, как управление памятью, или шаблоны, или ... что-то вроде поддержки пространства имен, которую использует C ++.

6
ответ дан 18 December 2019 в 05:39
поделиться

Двенадцать лет назад я начал заменять свои сценарии Perl - и новые были короче и более читабельны. Итак, удобочитаемость и легкое обучение были основной причиной его использования.

После версии 2 язык становился все более и более гибким, а вместе с ним и мои потребности в программировании, и я привык делать метапрограммирование, даже не замечая.Чтобы понять, что я имею в виду, взгляните на примеры в документации SQLAlchemy.

Вы указываете на отсутствие инструментов - но в последний раз я видел генератор кода ... Думаю, 10 лет назад, и это было плохой идеей даже в то время, потому что вы просто не нужно это.

Команда разработчиков очень заботится о совместимости - они годами размышляют, прежде чем ввести новый синтаксис. В стандартную библиотеку входят только зрелые модули, а python 3 обсуждается уже давно. Помимо возможностей по портированию, теперь действует мораторий - никаких новых функций в языке не будет в течение как минимум двух лет.

Что касается производительности - поскольку мне не нужно думать о том, какие методы генерируют какое исключение или имеют явные интерфейсы для всего, и у меня гораздо больше шаблонов проектирования, встроенных в язык ... ну, я могу поэкспериментировать с архитектуру и оптимизируйте там, где это имеет смысл. В большинстве случаев для меня это сеть или БД.

4
ответ дан 18 December 2019 в 05:39
поделиться

По моему опыту, я не заметил уменьшения поддержки инструментов настолько, насколько мне не нужны были большие и тяжелые инструменты, чтобы получить то, что мне нужно, от Python.

Что касается корпоративной поддержки, существуют такие дистрибутивы, как ActiveState и Enthought в зависимости от ваших потребностей. Мы используем AIX в моей повседневной работе, и хотя в какой-то момент мы действительно использовали AS Python, стандартный дистрибутив нам очень подходит. Нам просто не нужна была поддержка поставщиков.

И я согласен с Недом, я не могу сказать вам, сколько раз вместо просмотра документации я просто пробовал что-то, и это просто сработало. Я не говорю обязательно о знакомой библиотеке, я просто говорю о том, что думает Python. Это также означает, что когда я возвращаюсь и смотрю на старый код, мне кажется, что я нащупываю его намного быстрее.

И главная причина, по которой я предпочитаю Python другим языкам, которые я регулярно использую? Это весело, и мне нравится проводить в нем время.

2
ответ дан 18 December 2019 в 05:39
поделиться

Я считаю, что гибкость и простота использования (читаемый код, множество библиотек / пакетов) - это большие преимущества.

Что касается

  • , обеспечивает быстрое прототипирование системных приложений с использованием библиотек c ++ с использованием swig-оболочек

Я фактически работаю над продуктом Python для математического и статистического анализа (PyIMSL Studio), разработанным специально для решения этой проблемы, хотя вместо этого мы используем ctypes глотка. По разным причинам многие компании используют C / C ++ в своих корпоративных приложениях. Если они хотят добавить некоторую аналитическую функциональность, прототипирование его на Python может быть намного быстрее, чем на C. Наши библиотеки Python обертывают наши числовые библиотеки C 1: 1, поэтому после завершения прототипирования производственная разработка может происходить с уверенностью, что те же алгоритмы доступны, и будут достигнуты те же результаты. Преодоление пробелов между прототипом и производством может быть сложнее при переходе с языка, специфичного для предметной области, такого как R или MATLAB, на C, чем с языком очень общего назначения, таким как Python.

Что касается

  • , созданного в соответствии с четко определенной спецификацией языка

, вам следует ознакомиться с общедоступными комментариями с предложением Комиссии по безопасности и обмену сделать Python языком, используемым в новых ассемблерах. подкрепленное регулированием безопасности. Некоторые люди утверждают, что Python должен не быть языком именно потому, что у него нет четко определенной спецификации языка, кроме (нескольких) эталонных реализаций. Мне нравится этот язык, но я бы не стал рассматривать аспект спецификации языка как причину.

Наконец, я думаю, что есть много питонистов, которые хотели бы, чтобы их организация разрешала использование Python или использовала его в большей степени. Из того, что я видел, Python сначала проникает в общие проекты, связанные с ИТ, а затем начинает использоваться множеством других способов.

0
ответ дан 18 December 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: