При происхождении из среды корпоративных систем (думают Java и Windows) - я удивлен популярностью Python как язык разработки прототипа и пытаюсь указать на точную причину этого. В качестве примера можно привести то, чтобы быть перечисленным как одно из этих четырех использования Google языков. Возможные причины включают:
Вопросы - то, что делает его настолько популярным/высоко оцененным, но дать некоторый баланс я собираюсь привести некоторые причины, это не могло бы быть популярно:
Или это было просто лучшим в конкретном моменте времени (приблизительно 8 лет назад) и другие языки, и платформы с тех пор нагнали?
- позволяет быстро создавать прототипы системных приложений с использованием библиотек C ++ с использованием swig-оболочек
... Что?
Большинство людей, занимающихся программированием на Python, не занимаются программированием на C ++, они занимаются программированием на Python. И они делают это быстро, потому что им не нужно беспокоиться о таких вещах, как управление памятью, или шаблоны, или ... что-то вроде поддержки пространства имен, которую использует C ++.
Двенадцать лет назад я начал заменять свои сценарии Perl - и новые были короче и более читабельны. Итак, удобочитаемость и легкое обучение были основной причиной его использования.
После версии 2 язык становился все более и более гибким, а вместе с ним и мои потребности в программировании, и я привык делать метапрограммирование, даже не замечая.Чтобы понять, что я имею в виду, взгляните на примеры в документации SQLAlchemy.
Вы указываете на отсутствие инструментов - но в последний раз я видел генератор кода ... Думаю, 10 лет назад, и это было плохой идеей даже в то время, потому что вы просто не нужно это.
Команда разработчиков очень заботится о совместимости - они годами размышляют, прежде чем ввести новый синтаксис. В стандартную библиотеку входят только зрелые модули, а python 3 обсуждается уже давно. Помимо возможностей по портированию, теперь действует мораторий - никаких новых функций в языке не будет в течение как минимум двух лет.
Что касается производительности - поскольку мне не нужно думать о том, какие методы генерируют какое исключение или имеют явные интерфейсы для всего, и у меня гораздо больше шаблонов проектирования, встроенных в язык ... ну, я могу поэкспериментировать с архитектуру и оптимизируйте там, где это имеет смысл. В большинстве случаев для меня это сеть или БД.
По моему опыту, я не заметил уменьшения поддержки инструментов настолько, насколько мне не нужны были большие и тяжелые инструменты, чтобы получить то, что мне нужно, от Python.
Что касается корпоративной поддержки, существуют такие дистрибутивы, как ActiveState и Enthought в зависимости от ваших потребностей. Мы используем AIX в моей повседневной работе, и хотя в какой-то момент мы действительно использовали AS Python, стандартный дистрибутив нам очень подходит. Нам просто не нужна была поддержка поставщиков.
И я согласен с Недом, я не могу сказать вам, сколько раз вместо просмотра документации я просто пробовал что-то, и это просто сработало. Я не говорю обязательно о знакомой библиотеке, я просто говорю о том, что думает Python. Это также означает, что когда я возвращаюсь и смотрю на старый код, мне кажется, что я нащупываю его намного быстрее.
И главная причина, по которой я предпочитаю Python другим языкам, которые я регулярно использую? Это весело, и мне нравится проводить в нем время.
Я считаю, что гибкость и простота использования (читаемый код, множество библиотек / пакетов) - это большие преимущества.
Что касается
- , обеспечивает быстрое прототипирование системных приложений с использованием библиотек c ++ с использованием swig-оболочек
Я фактически работаю над продуктом Python для математического и статистического анализа (PyIMSL Studio), разработанным специально для решения этой проблемы, хотя вместо этого мы используем ctypes глотка. По разным причинам многие компании используют C / C ++ в своих корпоративных приложениях. Если они хотят добавить некоторую аналитическую функциональность, прототипирование его на Python может быть намного быстрее, чем на C. Наши библиотеки Python обертывают наши числовые библиотеки C 1: 1, поэтому после завершения прототипирования производственная разработка может происходить с уверенностью, что те же алгоритмы доступны, и будут достигнуты те же результаты. Преодоление пробелов между прототипом и производством может быть сложнее при переходе с языка, специфичного для предметной области, такого как R или MATLAB, на C, чем с языком очень общего назначения, таким как Python.
Что касается
- , созданного в соответствии с четко определенной спецификацией языка
, вам следует ознакомиться с общедоступными комментариями с предложением Комиссии по безопасности и обмену сделать Python языком, используемым в новых ассемблерах. подкрепленное регулированием безопасности. Некоторые люди утверждают, что Python должен не быть языком именно потому, что у него нет четко определенной спецификации языка, кроме (нескольких) эталонных реализаций. Мне нравится этот язык, но я бы не стал рассматривать аспект спецификации языка как причину.
Наконец, я думаю, что есть много питонистов, которые хотели бы, чтобы их организация разрешала использование Python или использовала его в большей степени. Из того, что я видел, Python сначала проникает в общие проекты, связанные с ИТ, а затем начинает использоваться множеством других способов.