В прошлой статье мы уже обсудили с вами причины, по которой Python нельзя назвать идеальным языком для новичков, хотя на том же Хабре бытует мнение, что Python – это выбор номер один и вообще топчик.

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

Что ты можешь сделать на Питоне


Хотя питон является языком общего назначения, и как говорится, все двери перед тобой открыты, на самом деле использование языка сильно ограничивается теми инструментами и технологиями, которые были в нем разработаны в ходе эволюционной борьбы с другими технологиями. Поэтому приступаем к обзору.

Микроконтроллеры (весьма сомнительно)


Хотя Андрей Власовских на прошедшем PYCON Russia 2017 в своей фирменной манере с энтузиазмом рассказывал о том, как программировать микроконтроллеры на таком инструменте, как MicroPython, а Кирилл Борисов даже предлагал изучить некоторую зарубежную литературу, ситуация в общем никакая.

Список микроконтроллеров, которые поддерживаются Python, стремится к нулю, коммерческая эффективность и наличие предложений по работе практическая нулевая. С учетом того, что есть более традиционные способы инструменты программирования, пока какая-то большая компания не вложится в этом направление, тут делать нечего.

Девопс (адекватно)


Анализ рынка показывает, что примерно треть всех вакансий, где упоминается Python, относятся к сфере DevOpsa. Однако Python идет не основным инструментом, а той технологией, которую знать желательно. Это связано с тем, что Python практичности полностью сместил Perl для Linux, и неплохо так подвинул Bash в области написания крупных скрипов и более крупных серверных компонентов. Также к этому добавляется то, что интерфейс многих тулзов принимает Python в качестве языка сценариев.

Если вы хотите развиваться в сфере Девопса, то знание Питон вам будет большим плюсом, все остальные проходят эту сферу стороной.

Что касается коммерческой перспективы (стартапа) данного направления, то сложно представить человека, который бы смог написать и монетизировать какой-то инструмент, не имея опыта 5+ лет в области девопса.

Тестирование (адекватно)


Хотя главным инструментом автоматизации тестирования является кровавая Java, которая имеет огромный набор фреймворков и готовых решений, порой небольшие компании используют Python для полноценного тестирования, либо написания сценариев для тулзов, типа Яндекс.Танк с его BFG.

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

Вакансий под тестирование примерно также треть от общей массы, часто в вакансиях указывают знание и Python и Java одновременно.

Desktop development (сомнительно)


В настоящий момент язык Python имеет 5 кросc-платформенных инструментов, которые позволяют писать «полноценные» приложения под Windows/Linux/Mac

  • Tkinter
  • PyQt
  • PyGTK
  • WxPython
  • Kivy (Условно)

Однако практика показывает, что ни один из инструментов не делает 100% кросс-платформенное приложение, которое бы нативно выглядело на каждой из платформ. То там, то там появляются различные косяки, нестыковки, битые контроллеры и прочая грязь.

Поэтому можно с уверенностью сказать, что писать коммерческий Desktop на питон – это весьма сомнительная затея, и компании этим редко занимаются (либо переписывают при первой же возможности, как это сделал DropBox).

Что касается внутренних инструментов, то использование небольших GUI-приложений применяется, но искать целенаправленно Desktop Python разработчиков не будут.

Кто же хочется заняться этой сферой более полно, прошу к Игорю Новикову, который нашел неплохой способ сшить Франкенштейна с помощью абстракционного слоя – ссылка

Mobile Development (весьма сомнительно)


Все плохо, в качестве pet проектов можно использовать Kivy, для реальной разработки весьма сомнительно, вакансий на Kivy нет.

Т.е. как, я лично разговаривал с рядом людей, которые имели свой веб-проект на Python и для захвата большой аудитории писали приложения на Kivy, и у них его даже использовали, но это имеет вид «Программист пишет то, на чем хочет».

Машинное обучение и Data science (адекватно и перспективно)


Это одна из самых хайповы областей современного IT-мира, где используется Python в качестве инструмента апробации. Python имеет ряд удобных библиотек машинного обучения и научных расчетов: Pandas, NumPy, SciPy, Scikit-Learn, которые позволяют достаточно быстро построить рабочие модели. И они на самом деле неплохо работают.

Что касается использования, то Python используется в качестве инструмента апробации, либо на небольших задачах. Если проект большой, то обычно модель пишут на Java/Scala/C++, а специалист по обучению уже выступает в качестве консультанта/аналитика.

Сложность этого направления заключается в том, что у вас должны быть высокие знания в области математики и статистики, практически всегда будет спрашиваться высшее технические, математическое образование.

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

Тем, кто хочет быстренько пощупать данное направление, советую прочитать книгу: «Vvedenie_v_mashinnoe_obuchenie_s_pomoschyu_Python_-_A_Myuller_S_Gvido_2017» — есть на торрентах, читается быстро, представление дает хорошее.

Веб-скрапинг (возможно, но сомнительно)


Питон имеет три вещи, которые делают его весьма эффективными в области веб-скраппинга, бибиотеку Requests, beautifulsoup и АПИ для Selenium. Если сюда подключиться библиотеки для компьютерного зрения и Машинное обучение, то получаются весьма эффективные инструменты.

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

Область интересная, но денег в ней мало.

Компьютерное зрение (сомнительно)


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

GameDev (сомнительно)


Практически в каждом обсуждении разработки игры на Python приводят в качестве примера eve online и WarGaming. Однако в первом случае используется stateless python, а во втором случае все ограничивается языком написания сценариев.

Что же касается реального использования, то у вас появляется три движка Kivy, PyGame, Panda3D, если первые два больше подходят для пет-проектов, то третий реально использовался на боевых проектах неплохого качества, правда эти проекты были 2004 года. Что как бы намекает, что использование проверенных движков на других языках типа Unity или Game Maker выглядит более убедительно.

Однако незаметно сюда крадется движок Ren’Py, который внезапно стал лучшим движков для написания визуальных романов (страдальческих историй для девочек), которые неплохо окупаются даже в рамках РФ. Серия «7 демонологов Петра Великого», тому доказательство.

Вакансий в GameDev для питона естественно нет, но деньги на «стартапе» поднять можно при должной сноровке. Но надежней взять другой язык и проверенные движки.

Веб-разработка (адекватно и перспективно)


Питон входит в тройку языков (Python, PHP, Ruby), которые обладают развитыми экосистемами быстрой разработки веб-проектов адекватного качества. Ключевыми платформами тут являются:
  • Django (монолитный синхронный фреймворк)
  • Flask (микро синхронный фреймворк)
  • Tornado (монолитный асинхронный фреймворк)
  • Twisted (монолитный асинхронный фреймворк)
  • Aiohttp (микро асинхронных фреймворк)

В настоящий момент большую часть рынка занимает фреймворк Django, но с приходом идей микросервисов постепенно обороты стал набирать Flask. Что касается асинхронности, то тут все сложно, так как Tornado и Twisted признаны устаревшими (хотя на них работают многие компании, тот же Тиньков), а aiohttp весьма сырой, и его использование ставится под большим вопросом.

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

Отдельно хочется отметить написание ГИС сервисов на Python, которые хотя и имеют вполне адекватный инструментарий для работы с геоданными, но все же использование Java для этих целей выглядит перспективней.

Выводы об использовании питона


1) Что касается сферы девопса и тестирования, то Питон является ключевым инструментом профессии, который обязателен для каждого адекватного специалиста. Питон в данном случае не учат, к нему приходят по необходимости.

2) Наиболее перспективными выглядят сферы веб-разработки и машинного обучения (аналитики), которые явно выделяют питон на фоне его конкурентов в виде PHP и Ruby. И если вы хотите изучить питон, то вам желательно сосредоточится именно на этих сферах и не тратить свое время на что-то другое. Под это есть вакансии, на этом можно построить стартап.

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

Комментарии (249)


  1. lxsmkv
    25.10.2017 02:33

    Однако в первом случае используется stateless python
    имеется ввиду Stackless Python


  1. saboteur_kiev
    25.10.2017 03:03

    Без воды, четко, достаточно. Спасибо.


    1. Stochkas
      25.10.2017 17:49

      присоединяюсь.


  1. zooks
    25.10.2017 03:59

    Статья в целом подтвердила мои мысли. Спасибо за большой охват разобранных технологий.


  1. MaximIs
    25.10.2017 04:48

    Спасибо, достаточно интересно и познавательно, хотелось бы и про другие языки почитать в подобном формате. Может серию статей по популярным языкам?


  1. Den_K
    25.10.2017 06:36

    Ребята, посоветуйте книгу для веб разработки по Python, с полного нуля изучение языка.


    1. Stillgray
      25.10.2017 08:21

      Могу предложить подборку книг на канале в телеграмме: t.me/python_textbooks
      Вообще толковая вещь — документация по Django (в абсолютном большинстве случаев при разработке веб приложений будет использоваться фраймворк).


      1. Den_K
        26.10.2017 06:38

        Записал, посмотрю, Благодарю!


    1. oldbay
      25.10.2017 13:05

      Учился по книге Марк Лутц «Изучаем Python».


      1. Den_K
        26.10.2017 06:37

        Пролистал книгу, я так понял это база языка? Проштудирую обязательно, а если ли уклон по веб разработке?


        1. oldbay
          26.10.2017 11:17

          Совершенно верно — это база. К сожалению по веб разработке мало могу подсказать, а вот по ГИС технологиям сколько угодно :).


        1. fireSparrow
          26.10.2017 13:25

          После того, как освоена база языка и есть общее понимание того, что такое вообще веб, http и html, следующим этапом является изучение конкретного фреймворка.
          Сейчас самым популярным веб-фреймворком для веба считается Джанго:
          djbook.ru/rel1.9


    1. domix32
      25.10.2017 17:04

      Для изучения непосредственно самого языка "Dive into Python". Русская версия недопереведена правда.


    1. coalesce
      25.10.2017 17:45

      Мой опыт такой:
      Прошёл бесплатный курс на codecademy. Базового английского достаточно.
      Далее уже по Django на русском неплохой плейлист на YouTube


      1. Den_K
        26.10.2017 06:36

        Спасибо!!! Уже приступил, хороший курс!


    1. kvothe
      25.10.2017 19:03

      Я бы предложил начать с "A bit of python"/"A Whirlwind Tour of Python" эти книги дадут достаточно для погружения в язык. Дальше посоветовал бы прочитать первую половину справочника(вторая половина — в основном, перевод документации и читается по необходимости) по питону от Дэвида Бизли. Для погружения на следующий уровень питона — "Effective Python" и "Fluent Python".


      1. Den_K
        26.10.2017 06:39

        Первую часть понял, что фундамент, а вторая часть в какое направление языка идет?


        1. kvothe
          26.10.2017 11:38

          Теперь я не очень понял :) Если вы о справочнике Бизли — то вторая часть там, по сути, документация по встроенным библиотекам, изредка раскрывающая чуть больше официальной.


  1. Myxach
    25.10.2017 06:36

    Все познаётся в сравнение. Python для игр это сомнительно, ну кто-то пытался использовать JS для игр? Вот-вот. А вообще, Python всегда и считали для веба. Поэтому ждём продолжение, если оно будет, для других языков


    1. SirEdvin
      25.10.2017 09:24

      ну кто-то пытался использовать JS для игр?

      А на чем вы предлагаете писать html5 игры?


      1. Myxach
        25.10.2017 10:15

        Я бы лучше на Python'e их писал, ну не знаю возможно ли. Ну если да, то приятнее код будет, чем в JS, ну JS же используют в играх, чем питон хуже для индюшатины?


        1. SirEdvin
          25.10.2017 12:04

          Проблема в том, что если вы пишите их на python, то итоге они все равно будут или транслироваться в js, или выполнятся на js. Так что смысла нет(


          JS в основном используют как скриптовый язык из-за его простоты и популярности, так как найти программиста, который вот совсем не знал бы js довольно сложно.


          1. Myxach
            25.10.2017 12:07

            Так я и говорю, JS как по мне менее простой, чем python и количество программистов на JS — обусловлено только популярностью и работой из коробки. Если говорить про игры, конечно


            1. chemtech
              25.10.2017 13:29

              Предположим что человек захотел учить JavaScript и делать игру.
              Вот что получилось описано в статье:
              Каково оно учить JavaScript в 2016


              1. Myxach
                25.10.2017 13:42

                Такое состояние возникает на любом языке, когда он переходит из разряда «для саморазвитие» в разряд «для работы», ну потом все понимается, да и без этого в JS хватает проблем


      1. kozzztik
        25.10.2017 15:45

        Я видел реализацию на C++ для мобильников, которую потом компилили на JS. По мне так это какая-то адовая извращенная магия, но работало на удивление неплохо.


        1. domix32
          25.10.2017 17:09

          В смысле компилятор C++ на JS для генерации кода для мобильников? Или вы про транспайлинг языков вроде C++, Rust и прочих в JS через LLVM+emscripten?


          1. kozzztik
            25.10.2017 18:30

            Приложение для мобильников на С++ «компилировали» в JS для получения веб приложения, тут за что взял, за то продаю. Видел со стороны, но в процессе не участвовал, и что конкретно использовалось не помню. Тема совсем не моя. Но была игрушка для мобильника которую делали год, и за неделю оно начало собиратся не только под андроид и иос, но и под веб, из одного исходного кода.


            1. domix32
              25.10.2017 20:51

              Тогда да, да, ems.


      1. filazopovich
        26.10.2017 01:07

        На С++, например. С помощью Emscripten, который позволяет скомпилировать уже готовый код в asm.js или в WebAssembly.


    1. FeNUMe
      25.10.2017 15:38

      В Unity, самом популярном игровом движке, игры пишутся на С# и/или JS, а в случае вебигр то тут у JS в конкурентах только Flash(ActionScript) теряющий актуальность.

      Что же касается геймдева на питоне, то к сожалению популярности он не набрал. Хотя тот же Blender Game Engine(BGE) вполне неплох, но рынок уже захвачен движками с большой экосистемой и магазинами ассетов.


  1. vchslv13
    25.10.2017 07:21

    Серьёзно? Вы пытаетесь оценить, насколько Питон пригоден к веб-скрейпингу, и при этом забываете упомянуть о Scrapy и АПИ для Splash (если уж Вы упоминаете об АПИ)?
    Думаю, стоит добавить их в раздел и сменить статус на «адекватно».


    1. hatman Автор
      25.10.2017 07:32

      Со скраппу или без него, само направление выглядит сомнительно. Т.е. есть сервисы, где это все делается на профессиональном уровне, где реально требуются хорошие профессионалы, но их можно пересчитать по пальцам. Все остальное мусор.

      Как я написал в статье, у Питона есть инструменты под эту сферу, но сама сфера не выглядит перспективно.


      1. vchslv13
        25.10.2017 07:48

        В принципе, согласен. Хотя, я бы тогда разделил в заголовках мух с котлетами более явно (а-ля, «инструмент адекватный, сфера сомнительная). Но статья, конечно, Ваша и вы решаете, как её писать :)
        Тем не менее, сама фраза „три вещи, которые делают его весьма эффективными в области веб-скраппинга, бибиотеку Requests, beautifulsoup и АПИ для Selenium“ — на мой взгляд, ложная. Ни requests, ни тем более BeautifulSoup не являются эффектвными инструментами, да и Selenium, в отличие от Splash не для веб-скрейпинга создавался.

        Да, кстати, спасибо за указание книги по машинному обучению — как раз собирался почитать что-то по этой теме.


      1. DaneSoul
        25.10.2017 14:06

        Для офисной работы может и нет, а вот на Upwork фрилансерских заказов на парсинг уйма, и почти в каждом именно Scrapy указан.


    1. kgbplus
      25.10.2017 10:19

      Тоже бросилось в глаза. Автор похоже совсем не в теме (и по поводу сомнительности направления). Точно так же, автор совсем пропустил область IoT с огромным спросом на разработчиков и большим числом интересных проектов. Видимо просто не сталкивался.


      1. vchslv13
        25.10.2017 10:27

        >Автор похоже совсем не в теме (и по поводу сомнительности направления)
        Да, судя по всему, так и есть. Хотя по поводу сомнительности направления я тоже уже не в теме, похоже. Работаю больше года с одним заказчиком и не смотрел, что там предлагают на рынке труда.


  1. potan
    25.10.2017 07:51

    В задачах, связанных с микроконтроллерами, часто требуется повышенная надежность. Из динамически типизируемых языков для этого подойдет пожалуй только Erlang и Elixir.


    1. poznawatel
      25.10.2017 10:15

      Во-первых, Микропитон работает надёжно, если не перегружать проц, во-вторых, если нужна сверхвысокая надёжность, берите плату Micropython+FPGA. А в третьих — в 90% случаев цена разработки важнее надёжности, а тут Python со своей универсальностью — один язык для всех платформ — вообще вне конкуренции.


      1. potan
        25.10.2017 11:57

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


        1. Bringoff
          25.10.2017 13:05
          +1

          допускает значение null
          иммутабельность наоборот не поощеряет
          А C, царствующий на микроконтроллерах, прямо-таки молодец в этих сферах :)
          И на микроконтроллерах, где часто важен каждый килобайт, с иммутабельностью не сильно разгуляешься. Или нет?


          1. potan
            25.10.2017 13:25

            C не сильно лучше. C++ чуть лучше, но что бы этим воспользоваться требуется очень высокая квалификация разработчиков. Если уж пошло сравнение с C/C++, то лучше всего Rust.
            Там, где экономят байтики, python, несмотря на мутабельность, тоже не совсем уместен. К тому же иммутабельность удобна компилятору для оптимизации, и функциональный код часто оказывается эффективнее.


            1. foldr
              26.10.2017 17:38

              Вы просмотрели тег sarcasm в комментарии выше :)


  1. lumini
    25.10.2017 09:57

    > Питон входит в тройку языков (Python, PHP, Ruby), которые обладают развитыми экосистемами быстрой разработки веб-проектов адекватного качества.
    Тут мне стало обидно как минимум за asp.net и node.js.


    1. hatman Автор
      25.10.2017 10:09

      Ну раз так пошло, то Java уделывает и asp.net и node.js вместе взятыми в рамках развития экосистемы, но я брал в учет языки, которые имеют схожий подход к разработке веб-проектов. Все же делать сайт на python и asp.net — это совсем разные занятия.


  1. vobo
    25.10.2017 09:59

    помимо машинного обучения, еще есть просто аналитика: ETL разные. python вполне годится. Можно и со Spark'ок


    1. vobo
      25.10.2017 10:07

      то, что называют Data Engineering


  1. Kroid
    25.10.2017 10:11
    +1

    Питон для веба общего назначения все же проигрывает php (более дешевые разработчики за счет их количества) и ruby (более удобные инструменты и более быстрая разработка).

    По мне, так питон только для машинного обучения, анализа данных и подобных штук нужен. И в этом он лидирует. Всё остальное — крохи с барского стола. А для девопса, несмотря на то, что инструменты написаны на питоне, сам питон на уровне знания синтаксиса нужен.

    Однако незаметно сюда крадется движок Ren’Py, который внезапно стал лучшим движков для написания визуальных романов (страдальческих историй для девочек) [...]
    Вот сейчас обидно было.


    1. ncuxomozg
      26.10.2017 01:07

      Не то чтобы я защищал питон, но в случае с php мы платим качеством кода, за счет низкой квалификации бОльшего числа разработчиков, а в случае с ruby — стоимостью серверов, за счет плохой архитектуры самого языка (жрать память у него заложено фундаментально). Питон тут смотрится неплохим компромиссом.


      1. Kroid
        26.10.2017 10:26

        У любого проекта могут быть две стадии развития:

        1. Прототипирование и запуск, малая нагрузка
        2. Популярность, большая нагрузка

        Судя по моим наблюдениям, до второй стадии из сотни идей доживает меньше десятка. Поэтому есть смысл делать очень быстрый прототип, так же быстро дописывать и изменять его. ИМХО, это легче и быстрей всего делать на ruby с его рельсами, грейпом и др фреймворками. Через некоторое время, когда идея десять раз изменилась и прототип столько же раз переписали, когда наконец осознали, что именно надо делать и увидели, что это действительно пользуется спросом — прототип свою задачу выполнил, его можно выбросить и переписать начисто на каком-нибудь go, подготавливаясь к хайлоаду. С другой стороны — сервера дешевле времени разрабов. И если проект постоянно изменяется, лучше докупить железа, но сохранить скорость релизов.

        Но это всё холивар. У каждого первого имеется свое мнение на тему того, какой яп/фреймворк быстрее/удобнее и почему всё остальное — отстой.


  1. dom1n1k
    25.10.2017 11:35
    -1

    Первую статью и триста комментов холивара, к сожалению, пропустил.

    Я с Питоном никогда особо дел не имел, но вот недавно пришлось. Расчеты в исследовательских целях, необходимые инструменты основаны на Numpy/Scipy.
    И как бы так поделикатнее сказать… Мне порой кажется, что этот язык был спроектирован с единственной целью — бесить :) Меня в нём бесит буквально всё: отступы, синтаксис, код-стайл, миллион подчеркиваний, экосистема, глючный pip, фреймворки, невнятные сообщения об ошибках… Ну просто вообще всё. А постоянное жужжание вокруг «питон самый простой, питон самый понятный» вызывает когнитивный диссонанс.
    Что интересно: когда читаешь новичковские туториалы со стерильными примерами hello world — вроде нормально и можно даже сказать симпатично. Но когда переходишь к реальной практике — см. выше.

    Причем, мне трудно сформулировать какие-то конкретные, глобальные претензии. Просто по сумме тысячи мелочей полное отторжение. Те же JS и PHP (традиционные объекты обвинений в плохом дизайне) мне кажутся на порядок прозрачнее и приятнее. Да, я понимаю, что мои знания в Питоне слабы, и я в нём не разобрался, не познал. Но фишка в том, что не хочется разбираться, как не хочется узнавать ближе неприятного тебе человека. Или вот ещё знаете это чувство, когда видишь чужой ужасно запутанный код и думаешь — блин, да мне проще с нуля это переписать!

    Можете списать всё на индивидуальные психологические особенности.


    1. Myxach
      25.10.2017 12:09

      Пытался я две одинаковые аркады делать на пютоне и на JS… бесился от JS, так что бы я сказал это из за способа мышление, психологии и прочего, чем от разницы между языками


    1. SirEdvin
      25.10.2017 12:10

      JavaScript для вас понятнее, чем python? Это очень странно, обычно наоборот.


      1. dom1n1k
        25.10.2017 12:18

        Ну вот я слышал подобные фразы уже много-много раз. Но в чем причина, почему обычно наоборот, чем именно он должен был меня покорить? Я правда не понимаю.


        1. SirEdvin
          25.10.2017 12:24

          Нет, я не говорю, что python должен вам понравится, все-так, люди, разные. Если вас раздражает его code style, ну все, вы не сошлись.
          Но суть в том, что обычно python старается вести себя довольно предсказуемо, так как в отличии от js у него строгая типизация и там нельзя, скажем, отнять от строки число, и в то же время, при желании он позволяет делать что угодно. Но стандартная библиотека предоставляет отличную возможность не связываться с этим, пока не возникнет необходимости.


      1. Myxach
        25.10.2017 12:33

        Вполне вероятно, у вас никогда не было в школе или институте — предмет или тема, которая была трудно, ну для вас легкой, хотя остальные вы ели-ели сдавали? Вот, тут также


    1. lega
      25.10.2017 12:25

      Проблема не в языке, вы сравниваете из разных весовых категорий типа «Молотком забивать гвозди проще чем отремонтировать танк отверткой, поэтому молоток всегда лучше отвертки.» Вы сравните аналогичные задачи на разных языках, и python тут будет ближе к подбеде (не считая сфер для которых python не предназначен).


      1. dom1n1k
        25.10.2017 12:33

        В моём случае — проблема именно в языке. Мне пришлось его «выбрать», потому что нём оказались нужные библиотеки, а в других нет. То есть как бы да, для моей задачи он подходит лучше всех, просто потому что наличие инструмента всегда лучше его полного отсутствия. Но между мной и нужным инструментом встает посредник в лице языка. И вот с ним мы характерами не сошлись.


        1. lega
          25.10.2017 12:42

          И вот с ним мы характерами не сошлись.
          Когда я впервый раз потрогал python (после с++), я тоже негативно к нему относился, особенно к отступам, но спустя небольшое время я проникся, и сейчас синтаксис, это просто дело привычки, а «отступы» имеют свое преимущество.


          1. dom1n1k
            25.10.2017 13:10

            Отступы мне не нравятся однозначно. Я говорю это вполне уверенно, потому что проходил эту ломку уже трижды — SASS, Jade, Python. Во всех трёх случаях были одинаковые ощущения — отступы смотрятся чистенько на маленьких стерильных примерах, но для объемного реального кода из реальной жизни операторные скобки нагляднее и надёжнее.


            1. Myxach
              25.10.2017 13:17

              Ну, как бы отступы и по любому code-style есть и в других языках


            1. foldr
              26.10.2017 17:47

              Если код не 10 строчек, то все равно, для читаемости, форматируешь отступами. Что со скобками, что без. В итоге, скобки оказываются визуальным мусором


              1. dom1n1k
                26.10.2017 18:59

                Скобки это не мусор, а полезные маркеры начала и конца. Плюс, любой нормальный редактор умеет подсвечивать парные.

                вообще борцов с мусором в последнее время как-то много развелось кто-то пишет js без точек с запятой яркий пример спичечной экономии некоторые умудряются в stylus не только точки с запятой убрать и скобки но даже и двоеточия лично для меня такой код выглядит вот примерно как этот самый абзац текста всё понятно же значит мусор лишний


                1. foldr
                  26.10.2017 19:04

                  Скобки это не мусор, а полезные маркеры начала и конца. Плюс, любой нормальный редактор умеет подсвечивать парные.

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


                  1. olegl84
                    27.10.2017 14:43

                    А у меня глаз цепляется за скобки, как то приятнее.Может привычка, но мне лично удобнее со скобками.


          1. potan
            25.10.2017 13:46

            Отступы обычно делают код легче читаемым. Но они не удобны в REPL (Jupyter пока все таки тяжеовесное решение). Кроме того могут возникнуть ошибки из-за неверного количества отступов не замечаемые компилятором — например, нехватка пробелов перед else: может связать его с другим if или for. В C/C++, если следовать дисциплине ставить скобки всегда, даже для одного оператора (как в Rust), такой проблемы не будет.
            Лично мне нравится подход Haskell — можно использовать как отступы, так и скобки для REPL, и нет конструкций с опциональными блоками — неправильные отступы не могут привести к компилируемому коду.


        1. potan
          25.10.2017 13:29

          В Julia доступны вполне приличные математические библиотеки. В R тоже, но там именование функций очень непривычное.


    1. Barafu
      25.10.2017 12:34

      Слова " код-стайл, миллион подчеркиваний" наводят на мысль, что проблема у вас не с языком, а с библиотекой с которой вы работаете — похоже просто на кривой непроработанный API. Я сейчас вообще Питоном управляю текстовым редактором — так, по-моему, ассемблер был бы проще — но это не в Питоне проблема.


    1. FeNUMe
      25.10.2017 15:50

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


    1. Arseny_Info
      25.10.2017 15:53

      numpy/scipy сильно отличаются от «обычного» питона по стилю кода и API.
      Чтобы нормально работать с numpy, нужно уложить в голове идею векторизации, и тогда все становится хорошо.


      1. iroln
        26.10.2017 01:10

        numpy/scipy сильно отличаются от «обычного» питона по стилю кода и API

        Это чем же? Там всё достаточно pythonic в API, а в Python+numpy часто приходят из Matlab, поэтому укладывать в голову "вектоизацию" и что "не надо писать циклы" уже не нужно.


  1. IliaSafonov
    25.10.2017 11:38

    Компьютерное зрение (сомнительно)

    Я бы здесь разделил стадии исследований для создания алгоритма-прототипа и разработки непосредственно продукта. Для прототипирования (в качестве бесплатной альтернативы Matlab) есть масса неплохих библиотек для Python (skimage, mahotas, etc) и обертка над OpenCV, так что Python очень не плох. Но для продукта прототип, как правило, лучше переписать, например, на С++, иначе проблемы с производительностью.
    Компьютерное зрение… вакансий практически нет.

    Мне кажется, что сейчас в представлении работодателя «компьютерное зрение» тождественно равно «машинное обучение». Поэтому в вакансиях пишут TensorFlow, PyTorch, etc.


  1. ibragim_pascal
    25.10.2017 12:16

    Python еще начал использоваться в игровом движке Godot Engine.


  1. bugsfinder
    25.10.2017 12:21

    Как-то не хватает цифр статистики по числу вакансий хотя бы, чтобы это не выглядело, как размахивание руками. Каков критерий «вакансий нет» и «вакансий много»? Поскольку по числу проектов в той или иной сфере на Python, вероятно, трудно привести какие-то цифры для оценки «перспективности» направления.


    1. hatman Автор
      25.10.2017 12:22

      Не вижу смысла собирать статистику по тому, что гуглится за 2-3 минуты через ключевики на том же HH.


    1. potan
      25.10.2017 13:48

      Количество вакансий надо поделить на количество резюме. С популярными технологиями на рынке труда конкуренция высокая, что плохо сказывается на зарплате.


      1. bugsfinder
        25.10.2017 13:57

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


  1. thornni
    25.10.2017 12:45

    К блоку про использование в DataScience-области. Язык очень много нужен в разных исследовательских задачах во множестве на первый взгляд не относящихся к IT-областей. Вроде того же исследования климата. Очень хорош для задач биоинформатики. Так что требования знания python можно не только в вакансиях на IT-специалиста встретить.


    1. potan
      25.10.2017 13:51

      Ничего специфичного для биоинформатики там нет. Даже библиотек для R в этой области больше. Все его используют только потому, что больше ни чего не знают — система с положительной обратной связью.


      1. DaneSoul
        25.10.2017 14:17

        Я пробовал изучать R — по сравнению с Python это был просто ад какой-то, намного хуже структурирован язык, больше похож не на язык, а просто на набор функций каждая со своими заморочками.


        1. potan
          25.10.2017 14:33

          Там очень специфическое именование функций, вызванное требованием совместимости с древним проприетарным языком S. Привыкнуть не просто, но можно.


        1. OlegUV
          26.10.2017 16:55

          я переходил с Питона на Р, аналогичное первое впечатление, но через несколько месяцев оказалось, что Р удобнее на порядок минимум. Да, там много заморочек, но у них есть своя внутренняя логика, которую со временем понимаешь, плюс какая-то «теплая ламповость», что вызывает симпатию.


      1. thornni
        27.10.2017 09:21

        а разве я написала, что он «уникален и не имеет аналогов, юзайте только его для биоинформатики»?:) Сказала только то, что встретить потребность в специалисте со знанием python можно и не в вакансиях раздела IT.


  1. prostofilya
    25.10.2017 15:48

    Начал изучать питон в универе, рисуя графики с помощью matplotlib. До этого понемногу изучал сишарп, после использования питона чувства были непередаваемые, работая с данными — я реально работал с данными, для написания не сильно ёмких алгоритмов не нужно было предварительно создавать кучу своих классов, думать над типами, какой же лучше подойдёт и тд, когда почти на всё хватало скобочек (словарей, списков, кортежей). А писать алгоритмы — одно удовольствие, порой почти просто переписываешь псевдокод, парой строк считываешь данные с файлов и ещё парой рисуешь крутые графики, я понял, почему питон так высоко оценён в научной среде. Но удовольствие на этом не закончилось, когда я узнал, что на питоне можно легко и непринуждённо писать веб-приложения и даже десктопные программки, казалось, куда ни ступи, везде можно писать на питоне.
    Я понимаю, что есть множество задач, в которых другие языки подходят куда лучше питона, но, имхо, для домашних небольших проектов питон просто шикарен, создать на нём можно что угодно и при этом не затеряться во времени, а реально сделать что-то полезное и приятное для себя, как минимум.


  1. kozzztik
    25.10.2017 15:52

    Мы с большим удовольствием использовали питон для геймдева. Да он не фонтан, если тебе нужно запилить стандартную поделку на готовом движке. Но если надо разработать что-то уникальное — то тут уже совсем другие потребности. И питон тут, имхо, отлично подходит для бекенда, особенно после выхода asyncio.


  1. Arseny_Info
    25.10.2017 15:59

    Не согласен в двух пунктах:
    — даже в относительно больших и нагруженных ML проектах вполне можно использовать python, т.к. обычно ядро библиотеки написано на c/c++, а python — это только обвязка;
    — для компьютерного зрения тоже все есть — и openCV, и все нейросетевое барахло.


    1. kozzztik
      25.10.2017 16:02

      Кстати весьма популярная нынче тема в нейросетях и машинном обучении. Ядро на С++ с обвязкой на питоне.


  1. olegl84
    25.10.2017 16:38

    Только не минисуйте сильно, просто скажу о моем опыте.
    Мой бэкграунд: Мне нравиться PHP, многолетний опыт C#, первые серезные вещи делал на Delphi. То есть можно сказать уже, что я из «старай школы» — компонентно ориентированое мышление.
    Решил попробовать Python для Вэб, категорически не понравилось! Не знаю как руби, но PHP превосходит Питон с точки зрения бизнес преминения (это мое субъективное мнение).
    И вот почему,
    1. это питон 2 и 3 версий. Это не просто сегментация сообщества и кода, это потеря доверия, прежде всего со стороны бизнеса.
    2. слабые возжможности для анализаторов кода. Питон крутой язык для людей, но не для машин. Я считаю что IDE это важный инструмент продуктивности, а Python сложнее анализировать машинному коду и давать подсказки, сложнее делать подсветку по сравнению с PHP, не говоря уже о компилируемых языках.
    3. По моим ощущениям Django это прошлый век. Да, кода там море, крутого кода. Но он не отвечает современным требованиям разработки. Но например там нету поддержки Ajax из коробки, сложности с визуальными компонентами. Скажем мне нравиться Yii, и установть туда какой-нибуль крутой визуальный виджет это минутное дело. В Django это в принципе сложно ввиду архитектектуры.
    4. Если сравнивать с PHP, то на PHP море фреймворков, CMS, компонентов, скриптов для ВЭБ.
    5. Лично мне не понравилась ООП в Python, когда я пишу на нем, то чувствую что меня держат за дурака. Да все просто и классно, но мне не надо просто. Я привык к той модели ООП что используют другие языки (Java/Php/C#) с которыми я работаю, и мне не нравиться та обрезаная версия, что есть в питон.


    1. anjensan
      25.10.2017 18:20

      1. Есть такое дело. Хотя «бизнес» обычно про 3 не особо в курсе :(
      2. Я сам emacs использую, умный автокомплит и навигация по проекту, хватает… Даже, как бы сложно в это не было поверить, есть подсветка. Но неужели PyCharm прямо таки хуже PhpStorm? Пробовали оба, сравнивали?
      3. Именно!
      4. Качество != количество.
      5. А вот тут любопытно, что это за модель такая Java/Php/C# и чем же отн отличается от Python. Можете привести примеры?


      1. olegl84
        25.10.2017 19:26

        2. Есть купленный PyCharm. Не скажу что плохо, но phpstorm лучше разбирает код, особенно если надо делать рефакторинг. Ну например по написанию кода я не могу понять, создаю я класс или вызываю функцию. Вызываю статический метод или метод объекта. В .net и java все еще лучше.
        3. Отсутствие в django указания типов аргументов методов например очень не нравится.
        4. На php это качественные продукты: prestashop, laravel, symfony и т.д.
        5. отсутствие модификаторов доступа, отсутствие формальных интерфейсов например (Я знаю про AbsttactBase класс). Безусловное это синтаксический сахар, но ведь питон любят в том числе за наличие классных офис языка.

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


        1. lega
          25.10.2017 20:19

          Python проигрывает всем в количестве инсталляций но всю серверах интернета
          Смотря как посчитать, все (большинство) ведущие дистрибутивы имеют python на борту изначально.


        1. kozzztik
          25.10.2017 20:44
          +1

          2. А вам какая разница, вызываете вы статический метод или метод объекта? Они, эти методы, для того и существуют что бы скрывать реализацию. Это дело самого объекта, как он их имплементирует. Если вам очень надо это знать, в питоне есть инспекция. PyCharm и синтаксические анализаторы в нее умеют, если код не перемудрен.
          3. Так указывайте, кто вам мешает. В питоне есть аннотации, начиная с 3.5.
          4. django, flask, tornado. Тот же Bitbucket или Instagram на джанге написаны если что.
          5. Модификаторы доступа в питоне есть, если что. префикс в виде одинарного или двойного подчеркивания. Просто они носят рекомендательный а не запретительный характер. А формальные интерфейсы в языке с утиной типизацией… Это просто извращение. Но если очень хочется есть Mixin.

          Откуда взялось утверждение про количество установок, вообще загадка. Есть какие то пруфы? Я бы посмотрел, учитывая что тот же дебиан без питона вообще не поставить.


          1. olegl84
            25.10.2017 21:56

            Вообще я нигде не говорил что Python плох, просто для меня с экономической точки зрения PHP выгоднее в данных момент.
            Это же писал и автор в предыдущей статье. Он просто не нашел вакансий на python. Скажем один из моих клиентов заказывает сайты на стороне, когда я сильно загружен. Их всегда делают на PHP. И не важно плох PHP или хорошо, так же как не важно плох ли английский, просто все его используют.
            Но я лично за то, что бы программисты все время остаивали новые языки и технологии.
            На счет распространения PHP. Речь идет о веб серверах, писал с телефона тот комент, и на слове вэб что-то случилось.Я видел статью, гды ссылались на статистику гугла, не помню проверял ли ссылку. Вот после 5 минут поисков: w3techs.com/technologies/overview/programming_language/all
            Конечно это в своей массе Wordpress, но он написан на PHP. Возможно отчасти причина популярности Wordpressa в удобстве deploy, кинул файлы на ftp и работает.


            1. SirEdvin
              25.10.2017 22:45

              Возможно отчасти причина популярности Wordpressa в удобстве deploy, кинул файлы на ftp и работает.

              Один маленький грязный секрет — это так не работает. Вам еще нужно правильно настроить apache, если вы из каменного века, или, скажем, php-fpm. А потом еще вам надо настроить бд и кеш.


              Опять же таки, у PHP куча недостатков, например, та же проблема с "burn-to-die" из-за которой надо говорить костыли из "запусти этот php скрипт через cron"


            1. kozzztik
              25.10.2017 23:48

              Автор не нашел вакансий по веб-скраппингу. Это не веб разработка, по ней другой отдел. И никаких проблем с вакансиями по веб разработке нет. А логика «я программист на PHP и у меня все проекты на PHP» — это что? какой из этого можно сделать вывод? Я вот разработчик на питоне, и у моего заказчика, удивительно, все проекты на питоне. Более того, у меня есть заказчик, который с PHP съезжает на питон. Из этого надо делать какие то выводы?
              Что бы найти ссылку на единственную статью в которой даже год исследования не указан, у вас ушло пять минут?
              Вот вам за 15 секунд:
              www.cleverism.com/programming-languages-web-development
              en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites
              По веб серверам у php действительно может быть преимущество, за счет того что на нем дофига CMS, но это к веб разработке на PHP отношения не имеет. Это не программирование, а устрановка, настройка и верстка.
              И удобство вордпресса не установке. Устанавливается он отстойно. Посмотрите как разворачивается Jira на Java. Вот это удобно. Вордпресс удобен в использовании, конфигурировать его может любой школьник и к нему есть 100500 готовых плагинов. И как я уже говорил, для этого не нужно быть программистом.


              1. olegl84
                26.10.2017 14:28

                Я видел исследование гугла, там говорилось что 2/3 сайтов на PHP. Понятно что это вордпресс в основном, но не важно, что это администрирование или настрйока. Я сразу написал, с точки зрения бизнеса. У меня клиентам мало и маленькие сайты, и большые.
                Я сам делал анализ вакансий. В Швеции Питон — 90% тестирование и dev ops.
                Программирование — 1. .NET,2. Java,3. PHP


                1. kozzztik
                  26.10.2017 14:40

                  Вы специально подсовываете какие-то безумные факты? «В Швеции питон 90% тестирование». Кому какое дело до Швеции? При чем тут она?
                  И как не важно относится это к разработке или к администрированию? Администрирование, это не программирование. Вы же не говорите, ну база данных то на плюсах, то и сайт я буду клиенту на плюсах продавать, зачем зоопарк разводить?


                  1. olegl84
                    26.10.2017 15:12

                    Живу в швеции, сказал по швеции. Факт в том, что python не пользуется большим спросом на реальном рынке труда. Автор в своей прошлой статье говорил о россии, я дополнил по швеции.


                    1. fireSparrow
                      26.10.2017 15:21
                      +4

                      У меня двоюродный дядя живёт в деревне Нижние Хмыри. Так он говорит, что у них там ни питон, ни пхп не востребованы, и на «реальном рынке труда» гораздо востребованнее навык вождения трактора.


                      1. olegl84
                        27.10.2017 14:45

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


                    1. kozzztik
                      26.10.2017 15:21
                      +1

                      Еще раз — автор говорил о недостатке вакансий в веб скраббинге. Не в веб разработке. В веб разработке проблем с вакансиями на питоне нет. В статье указано, что веб занимает около трети от всех питон вакансий. А Швеция… ну известный лидер веб разработки.
                      Можно пруф на то, что питон не пользуется большим спросом на рынке труда? А то в почти любой крупной компании (начиная с google и Microsoft) что-то да написано на питоне (а вот на пхп не факт), а спросом он не пользуется.


                      1. olegl84
                        26.10.2017 16:04

                        Посмотрел ещё раз, про скраппинг ничего не увидел. Автор просто искал вакансии по Питону.
                        Посмотрел monster.com, вакансии в New York. На первой странице 2 из 10 вэб, и везде надо знать ещё языки, типо C++ и опыт большой иметь.
                        Php все чисто вэб.
                        Все в точности как описал автор. С точки зрения работы, Питон как первый язык не годиться.


                        1. kozzztik
                          26.10.2017 16:45

                          Ну так я вам покажу, если вы найти не можете. Раздел:

                          Веб-разработка (адекватно и перспективно)

                          Фраза:
                          Данное направление занимает оставшуюся треть всех вакансий.

                          То у вас Швеция центр мира. Теперь Нью-Йорк. К вашему сведению, компании занимающиеся разработкой в NY, нанимают людей где угодно, только не там. Работал в нескольких таких, и ни разу не был в США.
                          По поводу «первый язык не годится», TIOBE с вами категорически не согласен.
                          www.tiobe.com/tiobe-index


                          1. olegl84
                            26.10.2017 21:28

                            Ну вообще-то Нью Йорк это реально один из центров мира, по крайней мере финансовый. Просмотрел первую страницу Web Delevoper, 1 вакансия из 10 на Python если не пропустил, PHP минимум 4.
                            TIOBE индекс упоминания, PHPшники не задают вопросов, потому что им не надо компилить ничего под виндовс, они делают работу. Сделал анализ сделав на Питон пару проектов, и сделал выбор в пользу PHP, как языка для веб для собственных проектов. Например что бы забекапить проект, мне надо просто заархивировать папку, и не надо думать, а что если пакет будет не доступен через 5-10 лет.


                            1. kozzztik
                              26.10.2017 21:49

                              TIOBE индекс упоминания

                              Нет.
                              Ну вообще-то Нью Йорк это реально один из центров мира, по крайней мере финансовый

                              Круто. Спрос на разработчиков в криминальной столице, сельскохозяйственной наверное тоже очень важен.


                              1. olegl84
                                27.10.2017 13:21

                                TIOBE — The index is calculated from the number of search engine results for queries containing the name of the language.
                                Индекс упоминания в поиске, то есть по какому языку больше ищут. Просто по Python задают больше вопросов.

                                У нас есть инфа по россии, швеции, Нью-Йорку. Сделайте по Москве или Питеру со ссылками. И посмотрим, может там Python в топе.


                                1. kozzztik
                                  27.10.2017 13:26

                                  TIOBE — The index is calculated from the number of search engine results for queries containing the name of the language.
                                  Индекс упоминания в поиске, то есть по какому языку больше ищут. Просто по Python задают больше вопросов.

                                  Это только начало определения. Оно на этом не заканчивается.
                                  У нас есть инфа по россии, швеции, Нью-Йорку. Сделайте по Москве или Питеру со ссылками. И посмотрим, может там Python в топе.

                                  Зачем? Я никогда не утверждал что питон в топе. Утверждали вы. Вам и пруфы предъявлять.


                                  1. olegl84
                                    27.10.2017 13:30

                                    Ок, мне реально интересно чам оно продолжаеться без сарказма. Если есть время, поясните.

                                    Я утверждаю, что с автором статьи случилась не единичная ситуация, а закономерная. В вэб питон проигравыет php по распространению и наличием рабочих мест.


                                    1. kozzztik
                                      27.10.2017 13:45

                                      Ну если вас в гугле забанили:

                                      The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

                                      The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system.

                                      Python — 5 место, PHP — с ощутимым отрывом седьмое. Над всем этим реет недосягаемая Java.
                                      Я утверждаю, что с автором статьи случилась не единичная ситуация, а закономерная. В вэб питон проигравыет php по распространению и наличием рабочих мест.

                                      А можно пруф, что случилось с автором? У него вроде все ок. Последняя фраза по крайней мере частично опровергнута цитатой выше.


                                      1. olegl84
                                        27.10.2017 13:54

                                        Спасибо.

                                        Мое утверждение заключалось, что лично для меня PHP экономически выгоднее. Его я написал, потому как десятки раз видел восхваление Python, особенно как первого языка. Но это не так. Python вторичен в целом по отношению к java, java более «классический язык». От нее наследуют C# и PHP. Плюс она значительно шире распространена. Если надо как можно скорее зарабатывать деньги, то это PHP. на нем делаеться масса малобюджетных вещей, и это не есть плохо.

                                        А с автором случилось то, что он учил Python. Но работы по нему не нашел. Пришлось выучить ещё и Java. habrahabr.ru/post/322332


                                        1. kozzztik
                                          27.10.2017 14:33

                                          О, так это тот же автор. Так там в комментах вполне детально все это разобрали, и конкретно к питону ситуация не имеет особого отношения.


                              1. 0xd34df00d
                                27.10.2017 19:13

                                Спрос на разработчиков в криминальной столице, сельскохозяйственной наверное тоже очень важен.

                                А вам тогда только Нью-Дели интересно?


                                1. kozzztik
                                  27.10.2017 19:40

                                  Очевидно, это был сарказм.


                            1. SirEdvin
                              26.10.2017 22:03

                              Например что бы забекапить проект, мне надо просто заархивировать папку, и не надо думать, а что если пакет будет не доступен через 5-10 лет.

                              Что бы забекапить проект, надо использовать git. Ну и вот тут написано, что, например, symfony надо качать и ставить в систему. Такая же проблема, как и в случае с python пакетами.


                              1. olegl84
                                27.10.2017 13:27

                                бэкап можно так же делать tar'ом.
                                В python это в принципе не возможно с такой же легкостью, потому что зависимости храняться глобально или в virtualenv.

                                одно дело инсталировать новую систему, а другое возиться с легаси.


                      1. olegl84
                        26.10.2017 16:11

                        Просмотрел пару страниц вакансий по питон, часто это LAMP (PHP), Python как один из доп. языков.


              1. olegl84
                27.10.2017 16:06

                Нашел случайно инфу от гугла:
                youtu.be/Qt1_atU_Qsg?t=134
                Нету времени слушать, где они говорят о цифрах, но по ссылке инженер google говорит, что php самый популярный вэб язык.


                1. kozzztik
                  27.10.2017 16:15

                  т.е. плюс одно частное мнение. Против TIOBE не катит.


    1. kozzztik
      25.10.2017 18:25
      +1

      1. А в чем проблема то с 2 и 3? вышла новая версия языка, больше и веселее. Язык активно развивается. Чем это «подрывает» доверие бизнеса?
      2. Прекрасно IDE все подсвечивает. Если у нее возникают сложности, используешь аннотации. Да, конечно если делать всякие стремные фокусы, то тут IDE начинает офигивать. Ну так не надо их делать без острой нужды. А ежели она есть, то тут спасибо языку что это все таки можно сделать.
      3. В джанге нет аякса, и не особо круто добавляются виджеты по одной простой причине — это фреймворк для бекенд, а не фронтенд разработки. То что там есть виджеты, это просто вишенка на торте, а не торт. И с каких пор в джанго «код не отвечает современным требованиям разработки»? это вообще что такое?
      4. В питоне нет обилия CMS, потому что нафиг они там сдались. На питоне не клепают интернет-магазины за 100 рублей. Для этого есть PHP. А фреймворков ровно столько, сколько нужно, на любой случай есть подходящий. Что такое «скрипты для вэб» это я вообще не понял. Стандартная библиотека питона сама по себе на половину «скрипт для вэб».
      5. Это вообще что? Сначала вы говорите что там больше чем нужно, а потом что это обрезаная версия. Что это за поток сознания?


      1. olegl84
        25.10.2017 20:00
        -1

        1. Если я предприниматель и хочу вложить миллион евро в новый продукт, то хочу что бы платформа оставалась актуально хотя бы 10 лет.
        2. Я сравниваю с PHP, Java, C#. Да, PyCharm подсвечиват, но все это рабоает не так хорошо, как в других языках. Особенно рефакторинг. Если я сделал рефакторинг в IDE, я не могу быть уверенным что ничего не поломалось.
        3. Бэкенд работает вместе с фронтендом и поддержка фич для нужд фронта быть должна. В этом и отсуствие современности на мой взгляд, фокус смещается на фронтэнд. Если мы делаем SPA, то нам нужен дополнительно RestFramework. Там конечно ничего сложного, но сам факт то, что Django не поддерживает такие элементарные вещи указывает на то, что это фундаментальная проблема. Джанго нас скольк оя понимаю родилась тогда, когда ajax'a ещё небыло как технологии.
        4. Заходим на например на codecanyon.net, PHP раздел есть, Python нету. То есть написать скрипт на PHP и продать лего мы можем, на Python нет.
        «На питоне не клепают интернет-магазины за 100 рублей. Для этого есть PHP. „
        Вот именно, скажем у меня есть клиент, ему иногда нужны небольшые сайтики, скажем на 10 страниц, раз в месяц( Работает по всему миру, новая страна, новый сайт). Кроме этого у него есть большая система, которая реализует бизнес-логику. Зачем мне зоопарк технологий, если Python примерно в целом на уровне PHP, я беру и все делаю на PHP.
        5. Я не говорил, что в Python больше, чем нужно. Но я не люблю технологии, что бы “все было просто», я хочу что если мне надо будет сложно, то можно сделать сложно. Конечно PHP тут так себе, но в Java и C# я могу поизвращаться и сделать Enterprise. Или например сделать плагин для PhpStorm, который мне будет помогать писать на PHP, но Python этого не может.


        1. kozzztik
          25.10.2017 20:32

          1. Ну хотеть не вредно. В ИТ вообще очень мало чего, что сохраняет свою актуальность 10 лет. На минуточку:
          Python 1.0 — январь 1994 года
          Python 2.0 — 16 октября 2000 года
          Python 3.0 — 3 декабря 2008 года
          питону второй версии на данный момент, на минуточку, 17 лет. А он по прежнему в использовании и поддерживается (последний релиз Python 2.7.14 2017-09-16). Куда уж больше?
          2. «я не уверен что ничего не поломалось», или «у меня постоянно что то ломается»? Я вот вполне уверен. А для всего остального есть тесты.
          3. Это кто вам сказал что должна? Бекенд ничего про виджеты не знает. Когда вы на бекенде всандаливаете виджеты, то это уже бекенд и фронтенд в одном флаконе. Кто вам сказал что джанго не умеет в REST я вообще не знаю. Все там есть. И при чем тут django и аякс вообще? Еще раз, джанго это фреймворк для бекенда. Ему глубоко фиолетово как на фронте идут запросы отправляются, синхронно или нет.
          4. На CodeConyon нет скриптов на питоне по той же причине, почему PHP скриптов нет в PyPy. Это площадка для продажи PHP скриптов, что там делать питону? Да и на какой фиг продавать «скрипты»? В мире питона такой фигней не страдают. Скрипты шарят на гитхабе и pypy. Там их больше чем дофига.
          Причем тут зоопарк технологий? Если вы продаете сайт на 10 страниц на вордпрессе, к разработке сайтов это не имеет вообще никакого отношения. Это настройка и администрирование, а не разработка. Разработчики этим вообще не занимаются, этим занимаются администраторы.
          6. Так, кхм. А что надо сложно то? У каждого инструмента свое применение. Писать сложный, но вполне обычный веб сайт на гибернейт, ну это прямо скажем, стрем. Как и писать большой энтерпраз на питоне или пхп. Можно конечно, но зачем? Это, впрочем, не мешает в большом интерпрайзе писать на питоне отдельные компоненты.
          И что не может питон, я не понял? писать плагины для PHPStorm, что бы помогать писать на PHP? Серьезно? На питоне можно писать практически что угодно, включая полноценные десктоп приложения. Было бы только зачем, это не его область применения. Но некоторые даже это делают и вполне успешно.


          1. olegl84
            25.10.2017 21:24
            -1

            1. Второй версии — 17 лет, значит время жизни более 10 лет.
            2. IDE не может в питоне сделать 100% правильный рефаторинг, Python слишком динамичный
            3. В моем workflow это так, и это нормальная практика. Бэкенд должен уметь эффективно генерировать HTML/JS и взимодействовать с ним. Скажем хочу на форме атоматическую JS валидацию, на Yii ее получаю.
            4. Я не говорил про вордпрес ничего, на php я могу открыть блокнот и в течении часа создать вэбсайт, если верстка уже готова, и без проблем закинуть их на сервак. А если у меня есть 20 страниц на PHP, зачем мне ещё работать в экосистеме Python. CodeConyon я привел в пример, потому что Envato очень крутая компания, которая понимает реальный спрос.
            5. в том и дело, для вэба у меня есть PHP, см. пункт 4. Для других вещей Java, C#, С для продвинутых вещей. Лично мне Python не нужен. На мой взгляд сфера применимости Python, это различные, скажем так, системные, скрипты. То есть скрипты управлющие системой или вычислениями — администрирование, тестирование, вычисления, например статистические или AI.
            И я полагаю что в мире существует масса людей с такой же систуцией.
            Хотя конечно же Python вполне хорошый инструмент. Но лично для меня, PHP более экономически выгоден.


          1. lega
            25.10.2017 22:11

            Как и писать большой энтерпраз на питоне или пхп. Можно конечно, но зачем? Это, впрочем, не мешает в большом интерпрайзе писать на питоне отдельные компоненты.
            Не бывает, что в большом «энтерпраз» используют только один инструмент, всегда зоопарк, если вам кто-то скажет обратное — значит там «энтерпраз» не такой и большой.

            Можно конечно, но зачем?
            Чтобы поиметь плюсы питона? (быстрая разработка), многие вашего же мнения, но я так не разу и не видел дельных аргументов, имхо это маркетинг оракла и java разработчиков.


            1. 0xd34df00d
              26.10.2017 00:48

              Чтобы поиметь плюсы питона? (быстрая разработка)

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

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


              1. danfe
                26.10.2017 15:02

                Про преимущества функциональных, строго типизированных языков всё верно (пример истории успеха).


                1. 0xd34df00d
                  27.10.2017 19:42

                  Это какая-то ужасная история успеха, на самом деле. По крайней мере, само тестирование. Начиналось ещё относительно за здравие, кончилось за упокой.

                  Тестировать безопасность языка через деланье stdout read-only? Серьёзно?

                  Тестировать очевидно библиотечную функцию для получения переменной окружения и тоже из этого делать выводы о безопасности языка?

                  Про зависимые типы — я не знаю ATS, но в том же Idris, например, зависимые типы приводят к тому, что у любой, даже самой мелкой функции надо явно писать тип, даже если это локальная функция внутри where-блока. Ну а что, при наличии зависимых типов type inference становится undecidable, как известно. Что интересно, кстати, в хаскель постепенно завтипы тоже завозят (обещают к ghc 8.8-8.10 окончательно завести), и при этом стараются сохранить вывод типов для большей части кода.

                  Что до линейных типов — в хаскеле тоже будет да, это вещь полезная, но вот здесь чувак неправ:

                  Note that all languages allow you to define a function that opens the file, calls the function with the new handle, and then closes the handle, which works well in many cases. However, this doesn’t prevent the function from saving a reference to the file handle and trying to reuse it later, and doesn’t allow storing handles in other objects, etc.

                  Тегирование типа хендла и rank-2 polymorphism вполне позволяют убедиться, что хендл не утекает наружу, подобно тому, как делает, например, ST со своим параметром s либо монада Par из пакета lvish для контроля детерминизма и неутекания данных из параллельных вычислений.

                  С математической точки зрения это даже изящнее, чем афинные типы, так как позволяет построить вашу систему типов на меньшем числе аксиом. При афинных типах компилятору, впрочем, проще рассуждать о вашей программе и генерировать более производительный код.

                  Everything is always immutable, which has benefits but can be very annoying and inefficient when you need mutability.

                  Рассказали бы чуваку про ST, опять же, было бы хорошо.


            1. kozzztik
              26.10.2017 00:53

              Ну про зоопарк — что правда, то правда. Потому я и написал, что на питоне можно написать отдельные компоненты. Но основа почти всегда Java/C#. И дело вовсе не в языке, а в наличии готовых решений. У питона для ынтерпрайза особо нет ничего, и это убивает скорость разработки на корню. Также там иногда возникает реальная потребность в натуральной многопоточности со сложной синхронизацией, и что бы все это при том шустро работало под нагрузкой. Тут питон не особо подходит. По отдельности эти требования без проблем, а вот вместе не особо.


              1. olegl84
                26.10.2017 14:31

                Вот наконец адекватный на мой взгляд комментарий, наверно самый адекватный из тех что видел за все время.


              1. SirEdvin
                26.10.2017 15:15

                Одна небольшая проблема — вы не совсем правы. В большинстве случаев это решается через db + cache + worker pool, как в целом, и в других языках. Потому что пилить свою синхронку нет никакого смысла.


                1. kozzztik
                  26.10.2017 15:30

                  ну иногда бывает нужна именно своя синхронка, с этим ничего не поделаешь. Вот например та же Jira — там встроенные внутренние кеши нескольких уровней, сложные воркфлоу тасок, с плагинами, синхронизациями, паралельными потоками. Целый ад, который через db+cache+worker pool будет очень круто скрипеть на поворотах. Очень далеко не все можно через базу нормально разрулить. Хорошо если у вас просто большой навороченный веб сайт с интеграциями(тут питон отлично), но когда начинается 100500 возможных логик в одной коробке, и это должно работать как часы под нагрузкой, то нормально это можно решить только на уровне приложения. А это еще относительно «простой» и «маленький» интерпрайз.


                1. olegl84
                  26.10.2017 16:31

                  Если это GUI или нужна высокая скорость, то не решаеться таким образом.


        1. Myxach
          25.10.2017 20:55

          1) Максимальный срок действия стандарта любого языка — 5-6лет, откуда 10 взялось?
          5) Это что за извращение? Сложности ради сложности, зачем?


          1. olegl84
            25.10.2017 21:33

            1. «C» существует и здравствует десятки лет. C++ c Java тоже не молоды. Python, PHP в районе 15-20, смотря от какой версии отталкиваемся. Да, мой любимый Delphi умер, но .NET Winforms по сути его продолжение, .NET создал тот же человек что и делфи.
            5. Я имел ввиду возможности платформы. На Python рисковано писать сложное GUI, или использовать в проекте с командой 100 человек. Компилируемый язык здесь подойдет значительно лучше.


            1. Myxach
              25.10.2017 22:06

              1.Так, то ты говоришь о актуальности в плане стандартов(Python2,Python3), то в плане существование языка. C++ — раз в 3 года обновляется, java тоже часто, Php — я молчу, если говорить о стандартах.
              5.Соглашусь


              1. olegl84
                26.10.2017 11:50

                1. Точно не знаю про C++, но Java и PHP не ломает внезапно обратную совместимость. Скажем я поддерживаю легаси систему, которой более 10 лет. И она работает на PHP5.6. Отчасти от сюда и исходит уродство PHP, и ненависть разработчиков, и с другой стороны удобство для бизнеса. Вот скажем заказчику с этой легаси системой все равно, что внутри она страшная и устаревшая, она работает, решает их задачи, и заниматься переписыванием они не хотят.


                1. Myxach
                  26.10.2017 12:32

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


                  1. 0xd34df00d
                    27.10.2017 19:45

                    C++ что-то там удаляли

                    auto как storage class specifier и auto_ptr (задепрекейченный в С++11 и удалённый в С++17, аж через 6 лет), который изначально был кривым, просто в языке не было возможностей написать некривой.

                    Ну и ещё мелочевки.


                    1. Myxach
                      27.10.2017 21:04

                      Так, насколько я знаю это стандартная процедура удаление фич: Помечают как удаленное и в следующем стандарте удаляют и минимум это процедура займет 4года(минимум срок стандарта 2года), а максимум 10лет(максимум 5лет), ну удаление все же происходит


                      1. 0xd34df00d
                        28.10.2017 00:08

                        Это я к тому, что ломание в С++ обратной совместимости стремится к нулю.


        1. niya3
          25.10.2017 21:35

          1. это питон 2 и 3 версий. Это не просто сегментация сообщества и кода, это потеря доверия, прежде всего со стороны бизнеса.
          2. Если я предприниматель и хочу вложить миллион евро в новый продукт, то хочу что бы платформа оставалась актуально хотя бы 10 лет.

          Версия 2.0 вышла в 2000 году, 2.7 — в 2010 году, поддержка 2.7 закончится в 2020.


          1. olegl84
            25.10.2017 22:02

            Поддержка заканчиватся, а софт бизнес не будет переписывать. Выпуск 3 версии был большой ошибкой, это даже разработчики сами говорят.
            Факт в том, что фреймфорки и CMS на PHP множатся как грибы, то есть есть огромное комунити.


            1. lega
              25.10.2017 22:17
              +1

              Выпуск 3 версии был большой ошибкой
              С чего это? python 3 лучше по всем* фронтам, а Гвидо говорит что это самый лучший питон за всю историю.


              1. olegl84
                26.10.2017 11:46

                Это слова одного инженера из Microsoft, который является по совместительству core разработчиком Питона.


              1. acmnu
                26.10.2017 14:54

                python 3 лучше по всем* фронтам

                По каким всем? В нем почти ничего нового не добавилось: слегка переставили мебель, убили депрекейтед фишки, изменили некоторые типы. Такая ситуация разработчиков мягко говоря не обрадовала, ведь ожидания от третьего релиза были высокие (их частично оправдал Go).


                Поэтому все так со скрипом идет уже десять лет и похоже будет идти ещё долго.


                1. SirEdvin
                  26.10.2017 15:20
                  +1

                  Это вы именно про третий, который тогда зарелизился, или про 3.6, со всеми его плюшками, type hints, настоящими kwargs, f-строками и прочим?


                  1. acmnu
                    26.10.2017 15:34

                    Сложный вопрос. Даже безусловно хорошие изменения в 3.4-3.6, не соответствуют тем ожиданиям которые были у разработчиков году примерно в 2007.


                    Автор статьи очень в тему вспомнил Tornado и иже с ним. В те годы запрос на зеленые потоки и параллельность был очень большой от сообщества. И было некое ожидание, что ситуация изменится в лучшую сторону с выходом Python 3, появятся какие-то примитивы в языке или может, чем черт не шутит, GIL отменят. Но этого не произошло. Да внедрили asyncio, который был и до этого, но сторонний. Но этого оказалось мало. И та аудитория просто отпала, ушла на другие платформы, а существующая кодовая база застыла на второй версии.


                    Будет ли Python 3.6 хорошим поводом перейти с Python 2? Не знаю, но тут же проблема в том, что раз все равно переписывать, то может сразу на Go/Java?


                    1. kozzztik
                      26.10.2017 15:38

                      Питон — язык опенсорсный. Если был спрос со стороны сообщества — то должно быть и предложение, оно так работает. Не слышал что бы кто-то предлагал что-то ценное добавить, что все ждали, а это не приняли.


                      1. acmnu
                        26.10.2017 15:48

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


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


                        1. kozzztik
                          26.10.2017 15:59
                          +1

                          Если вы знаете тусовку изнутри, то вы должны знать что Гвидо говорил про GIL несколько не так. Заявлялось, что GIL уберут сразу же, как только будет предложена достойная альтернатива. На PyCon пару лет назад даже выступал товарищ с таким проектом, он выпилил GIL. Проблема в том что производительность при этом падает от двух до двадцати раз, и ничего с этим не сделать.
                          Ну а почему переписали dropbox это вообще вопрос, не факт что причины лежат в запросах к языку. Возможно, к примеру, они просто прошли этап прототипирования и переписали например на С++. С этим ничего особо сделать нельзя — это просто не для питона.


                          1. acmnu
                            26.10.2017 16:02

                            Я не знаю


                    1. SirEdvin
                      26.10.2017 15:53

                      Я не очень понимаю, а в чем проблема с зелеными потоками в python2.7? Единственное что есть, это немного странный синтаксис, но оно работает и вроде вполне успешно.


                      Не знаю, но тут же проблема в том, что раз все равно переписывать, то может сразу на Go/Java?

                      Не знаю, как кто, но я очень цену python за его гибкость, которой не пахнет ни в Java, не тем более в очень куцем Go. Ну и стоимость переписывания значительно ниже, учитывая, что можно переписывать постепенно, при помощи того же six.


                      1. acmnu
                        26.10.2017 16:01

                        Я не очень понимаю, а в чем проблема с зелеными потоками в python2.7?

                        Да в определенной области они успешные, но некоторые задачи, например некоторые вычислительные им не под силу из-за GIL. А без поддержки со стороны экосистемы дебажить проблемы в Tornado не очень удобно.


                        Ну и стоимость переписывания значительно ниже, учитывая, что можно переписывать постепенно, при помощи того же six.

                        Тут очень много факторов. Когда переписываешь существующую кодовую базу, надо во-первых, понять зачем, получить бюджет на это дело. И естественно никто не будет заморачивать просто для того чтобы переписать. Вот рефакторинг системы, коренная переделка по внешним причинам, это да — очень хороший повод перейти с Python 2.


                        И тут возникает вопрос, если мы все равно рефакторимся и переделываем, то может посмотрим на другие решения, разобьем монолит на микросервисы, например, ну и так далее. Одно цепляется за другое и вот вы уже пилите микросервисы на Go и node.js (я думаю именно это и происходит в Dropbox).


                        1. SirEdvin
                          26.10.2017 16:07

                          Да в определенной области они успешные, но некоторые задачи, например некоторые вычислительные им не под силу из-за GIL

                          И потому тот же numpy или numba снимают GIL, когда считают нужными. Вроде это у них успешно получается.


                          И тут возникает вопрос, если мы все равно рефакторимся и переделываем, то может посмотрим на другие решения, разобьем монолит на микросервисы, например, ну и так далее. Одно цепляется за другое и вот вы уже пилите микросервисы на Go и node.js (я думаю именно это и происходит в Dropbox).

                          Dropbox просто не устроила скорость python в определенных местах и они переписывают важные в этом плане сервисы на go, потому что он лучше, чем тот же C для этого. Как я понимаю. Причем скорость тут не очень зависела от того, зеленые потоки или нет, а просто от того, что это python.


            1. SirEdvin
              25.10.2017 22:51

              Факт в том, что фреймфорки и CMS на PHP множатся как грибы, то есть есть огромное комунити.

              Миллионны мух не могут ошибаться. Они то и множутся, потому что множится больше нечему. Если на python каждый месяц выходит новая либа для машинного обучения или какая-то интересная тулза, то на PHP можно чисто клепать CMS и фреймворки.


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

              Какой бизнес не будет переписывать софт? RedHat зачесались, Odoo зачесалось. В куче дистрибутиво Linux уже по умолчанию python3. Кто там еще остался?


              1. kozzztik
                26.10.2017 00:43

                Тут кстати вопрос, является ли вообще 100500 фреймворков плюсом, когда тебе принесут на поддержку очередной проект!


                1. olegl84
                  26.10.2017 11:43

                  Вот скажем недавно принесли, полет наормальный.
                  Дело не в 100500 фреймфорках, а в том что язык развивается и он популярен.


                  1. kozzztik
                    26.10.2017 14:01

                    Я просто скажу одно слово — Битрикс.


              1. olegl84
                26.10.2017 11:44

                Ну я говорил про вэб, наверно не очень отчетливо. Конечно для административных задч и вычислений Питон подходит отлично. Поэтому там и плодятся либы для вычислений.


                1. SirEdvin
                  26.10.2017 11:49

                  Потому что web — это все, что может php. Вы не правильно оцениваете комьюнити для python, потому что там web это лишь одно из направлений. И сравниваете с php, на котором каждый считает своим долгом написать cms, хотя смысла с этом 0.


                  1. olegl84
                    26.10.2017 12:12

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


                    1. SirEdvin
                      26.10.2017 12:17

                      Но почему-то erp систем на python написано большое, чем на php: https://en.wikipedia.org/wiki/List_of_ERP_software_packages.


                      Гигантская проблема php состоит в том, что он не способен работать без клиента, сам по себе. А если и способен, это почему-то никто не использует.


                      Поэтому и приходится использовать разные странные костыли в духе "web запрос иногда запускает фоновые cron задачи", как это сделано в NextCloud. Как можно с таким подходом писать серьезные системы, которые будут обмениваться данными — вообще не понятно.


                      Реально можно писать только фронтовый бекенд, который будет работать непосредственно с клиентом, а все остальное на других уже языках. Получается, так.


                      1. olegl84
                        26.10.2017 12:25

                        Да, согласен.
                        Смысл в том, что Python боготворят. Хотя это просто ещё одна технология, у которой есть плюсы и минусы.
                        Если бы я делал ERP, то сам выбрал бы либо Python, либо Go.


        1. Butylkus
          26.10.2017 06:27

          Хотя бы десять лет? Вторая ветка питона без синтаксических изменений до последних релизов проживёт до 2020, а релизнулась в 2000. Двадцать лет вообще мало языков без изменений проживает. И у тем более бизнесу оно должно быть приятно — код, написанный в начале века, работает до сих пор. И будет работать дальше, никто не мешает брать интерпретатор 2.7 хоть в 2100-м году.


          1. olegl84
            26.10.2017 12:22

            Я не говорил язык, я говорил Python, PHP, подразумевая тезнологию, платформу. Первая обратно-несовместимая версия Python 3.0 была выпущена 3 декабря 2008, прошло почти 10 лет, а 2.7 ещё используется. Почему? да потому что бизнесу пофиг что там внутри софта, никто не будет переписывать его, что бы сделать более «правильно». И это большая ошибка разработчиков Питона, и я считаю отчасти это причина того, что Питон хоть и популярен, но не первый, хотя мог бы.


            1. kozzztik
              26.10.2017 14:04

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


            1. acmnu
              26.10.2017 15:00
              +1

              Ну вообще-то PHP 4 был не совместим с PHP 5. И 5.0 с 7.0 тоже. Т.е. если взять PHP 17 лет назад и сейчас, то их вообще сложно признать одной и той же платформой: глобальные переменные, стандартная либа mysql, ссылочная логика — это все не полный список того, что было либо удалено либо изменено кординально.


              Хорошая обратная совместимость это либо C, либо Java, хотя и с нюансами.


              1. Butylkus
                26.10.2017 17:44

                Всё-таки сравнивать питон с похапе это слишком уж некорректно. Питон умеет всё, от веба до мощной науки, от микроконтроллера до нейросети. И во всём этом он хорош. Не идеален, а именно хорош. Похапе же в первую и предпоследнюю очередь заточен на работу в вебе, он для того и создан.
                Но вот чем питон лучше похапе, так это возможностью внутри одной платформы и языка создать и десктопное приложение для работы с некой матчастью (скажем, аналог 1С-предприятие), влёгкую интегрировать это с интернет-магазином, который даже не потребует установки апача/энджиникса/етц, и здесь же отрисовывать в веб результаты обработки сложнейших математических расчётов.
                Вот в чём фишка. Да, для всего описанного есть свои инструменты, вполне логично превосходящие такого умельца на все руки в некоторых аспектах, но с учётом того, что это единый инструмент… Короче, это можно долго спорить впустую. Это свободный мир, в конце концов.
                Ах да, почему питон не шибко популярен в корпоративном сегменте — для него нет надёжного инструмента закрытия исходного кода, в отличие от того же похапе, который может быть, скажем так, зазенден. Поэтому мало кто заморачивается разработкой коммерческих продуктов.
                Если зенд научился работать с питоном — поправьте меня.


                1. olegl84
                  27.10.2017 10:05

                  «Но вот чем питон лучше похапе, так это возможностью внутри одной платформы и языка создать и десктопное приложение для работы с некой матчастью „
                  Не соглашушь, для этого .NET подойдет лучше, и там есть все матбиблиотеки. Если надо кроссплатфом, то Java. и Python и проигрывает очень сильно в ввиду медленного исполнения кода.
                  “ Короче, это можно долго спорить впустую. Это свободный мир, в конце концов.»
                  Я тоже так считаю, я изучал и работал на десятках языков за 20 лет моего программирования, включая питон, и всегда молчал когда такая дисскусия начиналась, так как реальному программисту индиферентно на каком языке работать. Но предущий пост автора показал что это неверная позиция, зелень в индустрии парит мозги новичкам.


                  1. SirEdvin
                    27.10.2017 10:14

                    Не соглашушь, для этого .NET подойдет лучше, и там есть все матбиблиотеки.

                    Нет, вот тут вы не правы. Альтернативы не всегда есть, а даже если есть, ввиду более строгого синтаксиса писать становится совершенно не удобно.


                    так как реальному программисту индиферентно на каком языке работать

                    Что бы показать всю неправоту этого утверждения, предлагаю вам попробовать написать интернет магазин, скажем, на Prolog.


                    Но предущий пост пост автора показал что это неверная позиция, зелень в индустрии парит мозги новичкам.

                    Что такое зелень в индустрии? Деньги?


                    1. olegl84
                      27.10.2017 11:02

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

                      Я писал на пролог, и насколько мне известно сделать на нем магазин в принципе не возможно. По крайней мере на той древнуй версии, которую я учил в универе. Но на прологе я писал сходу с первого раза, в то время когда другие не понимали вообще, что это такое, поэтому могу предположиьь что я его «понимаю».

                      Зелень — до 3 лет рабочего опыта.


                      1. SirEdvin
                        27.10.2017 11:08

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

                        Вы не поверите, но в python теперь можно просто указать типы для функций и вуаля — у вас есть еще проверка по типам.


                        Про "явное указание типов лучше" уже писали, это довольно мизерное количество багов. Если у вас проблемы с синтаксическими ошибками — pylint вам в руки. Никакого другого "тестирования" в компилируемых языках нет.


                        Я писал на пролог, и насколько мне известно сделать на нем магазин в принципе не возможно. По крайней мере на той древнуй версии, которую я учил в универе. Но на прологе я писал сходу с первого раза, в то время когда другие не понимали вообще, что это такое, поэтому могу предположиьь что я его «понимаю».

                        Web framework есть, коннект к бд есть, тюринг полный — значит написать можно. Но что-то вам стало не все равно, на чем писать, да?


                        Зелень — до 3 лет рабочего опыта.

                        Забавно, вы явно не зелень, а все еще пишете код в духе старой школы php. Хотя казалось бы. Ну и да, обычно языки вроде опытные люди разрабатывают, а за ними обычно еще и компании какие-то стоят. Что-то не очень похоже на зелень.


                        1. olegl84
                          27.10.2017 11:45

                          «Вы не поверите, но в python теперь можно просто указать типы для функций и вуаля — у вас есть еще проверка по типам.»

                          Вот только в Django этого нет.
                          Дело не в багах, а в скорости понимания способов взаимодействия с кодом. Скажем в Java я могу вообще не знать о реализации, и благодоря жесткой системе типов взаимодействовать с кодом. Я знаю что за клас принимает арзумент, и передаю туда этот класс. Но если мы кодим на Django, то там этого нету, все методы без указания типов аргументов.

                          Ну если есть Web framework, то возможно попробую когда выучу более популярные языки.

                          Моя цель этой дискусии сказать, что выражение «Python рулит, PHP ерунда» в корне не верно. То есть есть крутые языки я не спорю. Но на мой взгляд Go и Rust интереснее питона с точки зрения программиста. Но с точки зрения применимости лично для меня Python лучше, а ещё лучше PHP.


                        1. 0xd34df00d
                          27.10.2017 19:55

                          Вы не поверите, но в python теперь можно просто указать типы для функций и вуаля — у вас есть еще проверка по типам. Про «явное указание типов лучше» уже писали, это довольно мизерное количество багов. Если у вас проблемы с синтаксическими ошибками — pylint вам в руки. Никакого другого «тестирования» в компилируемых языках нет.

                          Вопрос в мощности системы типов и, в случае опциональной типизации, в том, какое количество библиотек эту самую опциональную типизацию подхватят.


                  1. Butylkus
                    27.10.2017 20:59

                    Дотнет НЕ лучше хотя бы потому, что его нет на серверах. Разумеется, речь о *nix. Да, есть Моно, но это скорее костыль. А питон одинаково везде отработает как надо. Да, не столько быстро, как компилируемая программа, но в качестве «калькулятора» он таки быстрее — пока программа пишется, компилируется, отлаживается, питон уже выдаёт результат.


                    1. 0xd34df00d
                      28.10.2017 00:09

                      Программы на питоне не надо писать и отлаживать?


                1. 0xd34df00d
                  27.10.2017 19:54

                  Питон умеет всё, от веба до мощной науки, от микроконтроллера до нейросети. И во всём этом он хорош.

                  Касательно науки и нейросеток — питон хорош в качестве клея между разными либами. Какой-нибудь там TensorFlow всё равно написан на плюсах, а в питон у него FFI торчит.


  1. Jenyay
    25.10.2017 17:10

    Занимаюсь не маленьким проектом на Python + wxPython и не согласен, что Python не подходит для настольных приложений.


    1. Barafu
      25.10.2017 23:48

      Три, что ли, года назад Гитхаб сказал, что в Линуксе Питон — язык №1 по популярности для разработки прикладного десктопного софта.


      1. hatman Автор
        26.10.2017 01:13

        На линуксе PyGTK — действительно работает нативно, и можно считать его лучшим вариантом для линукса. Но коммерческая перспектива такого направления выглядит сомнительно, а писать на PyGTK под другие платформы… это очень прямые руки надо иметь.


      1. Butylkus
        26.10.2017 17:59

        MintUpdate, PlayOnLinux, Crossover, GIMP. Это то, что я запускаю часто.
        WorldOfTanks — это вам не LUA. Туда же Battlefield. Да, внезапно, на питоне. Civilization.
        Яндекс.Диск, опаньки! GoogleDrive, какая неожиданность. И даже, о ужас, Ютубчек! Кстати, логичненько — именно на питоне я впервые в жизни начал работать с веб-камерой напрямую (ну почти) и мне понравилось. Не удивительно, что мощный инструментарий питона для целей обработки видео используется корпорацией добра.
        DropBox. Вообще весь. Ну дык а чо, сам создатель языка, ничего странного.
        А вообще много реально мощных примеров легко (ну или через транслятор гугла) читается тут.


    1. danfe
      26.10.2017 15:40

      Я тоже еще недавно писал различные консольные утилиты и приложения на Python+Qt для Windows/*nix и считал эту связку не только подходящей, но едва ли не лучшей (сейчас я так уже не считаю). Проблемы, на мой взгляд, у питона следующие (в произвольном порядке):

      • Зависимости. Нужно внимательно следить за используемыми модулями, есть ли они в репозиториях популярных дистрибутивов, каких версий и т.п. Если нет, то приходится обходиться без них или бандлить, а это всегда лишняя головная боль и вообще плохо.
      • Не всегда простой и тривиальный деплоймент. Пользователи часто просят, типа, «дайте нам тупо экзешник.» Питоновские фризеры проблему отчасти решают, но это лишний геморрой не без своих собственных ограничений. (Хотя есть примеры хорошо упакованных питоньих программ, типа той же youtube-dl, которую ты качаешь одним файлом для любой системы, и он всегда работает; ну и с тех пор появились вещи типа нуитки.)
      • Фейл с Python 3 Наличие в более-менее активном пользовании двух разных веток питона, причем в разных дистрибутивах дефолтной (на сегодня) может быть одна, а в другой — другая. В общем, это еще один источник несовместимостей, ограничений на используемые API, модули и т.д.
      • Интерпретируемость и динамическая типизация. Нужно как можно больше работы выносить из рантайма и перекладывать на компилятор; отлавливать ошибки как можно раньше. Грубо говоря, шутка про то, что «если программа на хаскелле/расте/ML компилируется, то она работает» часто оказывается правдой, а про программу на питоне, пока её не запустишь, мало что можно сказать.


      1. Myxach
        26.10.2017 15:50

        Фейл с Pytohn 3 — выбора не было, по другому бы они и становились в зависимость перед старым старым python'ом или сломали весь старый софт. За это их бы кто-то, да повешал. А 4ое фисят же уже, с помощью аннотаций


      1. SirEdvin
        26.10.2017 16:36

        Кстати, подскажите, а вы уже пробывали нуитку. Как она в целом, работает?


        1. danfe
          26.10.2017 16:50

          Да, в целом, работает, даже довольно крупные многомодульные программы переваривает (вроде бы там какие-то мелочи меня немного расстраивали, но деталей я уже сейчас не вспомню, к тому же, она активно развивается). Но в продакшене её использовать так и не довелось: я решил «соскочить» с петона, а старый код фризится у нас по-старому и майнтейнится сейчас не мной в основном.


          1. SirEdvin
            26.10.2017 22:57

            А на что соскочили с python? Я вот не представляю, на что можно после него переходить. Разве что какие-то nim или crystal.


            1. danfe
              27.10.2017 14:47

              Пока этот вопрос открыт. :-) К счастью, у нас питон не основной язык, нужен от случая к случаю. Так что есть время осмотреться, но, думаю, это будет что-то компилируемое (с нормальной системой модулей и действительно раздельной компиляцией), сильно статически типизированное, с compile-time проверками как можно более всего, и при этом удобное для применения в продакшене (возможность быстро «въехать» в язык новому программисту, удобный FFI, простота отладки). Что-то типа ATS, ML (OCaml?), Rust, возможно, кстати, что и Nim или даже вообще Ada.


      1. lega
        26.10.2017 17:02

        «если программа на хаскелле/расте/ML компилируется, то она работает» часто оказывается правдой
        Не так, «если программа на хаскелле/расте/ML компилируется, то она запускается», если программа компилируется и запускается — не значит что она правильно работает, откройте любой популярный проект на github и увидите большой bug-list.

        Проблемы «компилляции»/типов — это очень незначительная часть багов (в питоне), поэтому статическая типизация в этом плане от багов не спасет.


        1. 0xd34df00d
          27.10.2017 20:00

          Зависит. Если я в хаскеле делаю относительно механический рефакторинг (меняю тип данных, ввожу или удаляю уровни абстракции, рефакторю функции, но не меняю алгоритм), то после компиляции тесты зеленые в 99.9% случаев.

          А type-driven development вместе с изоморфизмом Карри-Говарда вообще чудеса творит.


  1. RomeoGolf
    25.10.2017 19:10
    +1

    Как-то не нашел в статье двух областей, исключительно ради которых использую питон. Три раза перечитал — нет, не нашел.
    Это математическое моделирование, решение численных задач, обработка данных, в общем, бесплатная замена матлабу.
    Это скриптописание, как замена bash и cmd — обработка файлов, всякого рода задачи администрирования на своем ПК.


  1. YuriM1983
    26.10.2017 00:03

    Забыли упомянуть Odoo (OpenERP).
    Но денег там тоже мало.


    1. YuriM1983
      26.10.2017 02:22

      PS: насчет кросс-платформенности PyQt / PySide.
      Если использовать QWebView + интерфейс на HTML/CSS/JS + собственные шрифты, то приложение будет выглядеть идентично (не считая заголовка и сглаживания шрифтов).


  1. BearMef
    26.10.2017 00:41

    НЛО Святой Ассемблер, да пребудет мнемокод твой вечно в почёте! Почему это на главной?


    1. hatman Автор
      26.10.2017 01:28
      +1

      Все очень просто.

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

      И я пришел к выводу, что Питон хороший язык (я его не критикую), но у него много ограничений, и зачастую изучение другого языка, например, того же PHP/Java/.net могут быть более выгодным решением по вложению своих сил и времени для молодых специалистов. И это правда.

      И своими статьями я преследую цель — показать действительность, что работу найти под питон сложно (если ты не из ряда центральных городов), да и платят на нем за вполне определенные области. Поэтому нужно здраво оценивать перспективы.


      1. olegl84
        26.10.2017 11:41

        Полностью согласен. Я понимаю хайп вокруг питона, но мне не нравится что, нету людей, которые скажут прямо: «Питон это всего лишь ещё одна технология, и не самая популярная.»


        1. Myxach
          26.10.2017 11:45

          о очевидном не принято говорить, а по поводу хайпа… если он есть, то он начался совсем недавно


          1. olegl84
            26.10.2017 12:00

            Ну да, возможно года 3-4 назад, но я думаю причина не в очевидности. А в том что крикуны кричат громче. А «крикуны» обычно новички в отрасли, человек который в отрасли более 10 лет, видел взлеты и падения технологий, не будет кричать что какая-то технология рулит, остальные сосут.
            Моя точка зрения на счет языка первого, в данный момент лучше всего учить Java. Большой спрос, хорошые зарплаты, а главное классическая модель построения кода.


        1. Butylkus
          26.10.2017 18:04

          Я вот воткнулся сейчас в умный дом. Сами мозги только на питоне, вся логика, управление. Но для фронтенда (помимо физических кнопок, конечно) я всё равно использовал PHP+JS+CSS3+HTML5.
          Не только потому, что не умею пока Flask/Jinja/Django, но большей частью из-за того, что для этих задач уже есть миллионы велосипедов, которые переизобретать нет смысла. Конечно, идея сделать всё полностью на питоне и избавить сервер как минимум от апача и похапе очень прельстива, но… Зачем? Слишком уж сложно будет другому эникейщику взять и написать свой шаблон для фронтенда под Jinja. Зато это куда легче сделать под стандартную связку HTML-PHP, используя готовый API умного дома. Просто реквайри и вызывай, или сам пиши вообще, делов-то. А вот на питоне пришлось бы плясать очень долго.


          1. SirEdvin
            26.10.2017 23:18

            Если у вас есть api, то можно вообще выкинуть php и просто хостить js сайт.


            1. Butylkus
              27.10.2017 06:15

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


            1. olegl84
              27.10.2017 09:47
              -1

              На PHP быстрее и легче писать фронтэнд, чем на js, особенно большой. Особенно если надо иметь возможно дописать стороннему человеку. Сделать читабельный серьезный код фронэнда на js на мой взляд это исскуство.


              1. SirEdvin
                27.10.2017 10:07
                +2

                Вы не можете на php писать фронтенд. Вы можете только использовать фреймворки, которые в свою очередь скрывают от вас js код, который они генерируют.
                А фреймворки, которые рендерят няшный код и на js есть.


                И вот про читабельный код это довольно смешно. Особенно есть мы говорим про php


                1. olegl84
                  27.10.2017 10:42

                  Позвольте не согласиться.
                  Когда я делаю связку HTML+JS+PHP, то я генерю HTML и JS в PHP. То есть в зависимостри от разных условий посылаю разный JS, а значит код который запускается в браузере есть отражение моего кода в PHP.

                  В после небольшого времени в несколько месяцов глаз автоматом начинает парсить синтексис любого, даже самого сумашешедшего языка. Скажем без проблем в увидите цикли его параметры но экране ассеблера.
                  Но что вызывает реальную проблему, это структура: структура кода, архетектура приложения. И здесь вызодит на сцену асинронная структура языка, которая оприори просто другой уровень сложности для монимания целовеком. Но для справедливости надо заметить, что скажем в ExtJs или Angular структура более четкая.


                  1. SirEdvin
                    27.10.2017 10:45

                    В после небольшого времени в несколько месяцов глаз автоматом начинает парсить синтексис любого, даже самого сумашешедшего языка. Скажем без проблем в увидите цикли его параметры но экране ассеблера.

                    А вы пробовали? На самом деле, очень зависит от того, как запутано писать.


                    Когда я делаю связку HTML+JS+PHP, то я генерю HTML и JS в PHP. То есть в зависимостри от разных условий посылаю разный JS, а значит код который запускается в браузере есть отражение моего кода в PHP.

                    То есть вы пишите в том стиле, за который все ненавидят PHP — это php код с вкраплениями html и js?


                    1. olegl84
                      27.10.2017 12:56

                      конечно зависит.

                      нет, это JS и HTML с маленькими вкраплениеми PHP. То есть например вставляется значение аргумента функции.


                  1. anjensan
                    27.10.2017 11:47

                    В после небольшого времени в несколько месяцов глаз автоматом начинает парсить синтексис любого, даже самого сумашешедшего языка. Скажем без проблем в увидите цикли его параметры но экране ассеблера.
                    Так вы и на PHP, и на ассеблере пишете? Может еще назовете примеры сумашешедших языков, в которых ваш глаз автоматом парсит синтексис?


                    1. olegl84
                      27.10.2017 11:55

                      На ассемлере не пишу, так как для Win32 там очень все сложно, да и не нужно. Сейчас делают только вставки на ассеблере в языки высокогоуровня.
                      А реверс инжениринг делать очень интересно, правда времени не много и я не профи. Но просто привел пример в отрыве от мой личности, что глаз привыкает к любому языку.

                      Ещё сумашедший язык кроме ассеблера и PHP? ну Python например :D


                      1. anjensan
                        27.10.2017 12:19

                        Но просто привел пример в отрыве от мой личности, что глаз привыкает к любому языку.
                        Простите, но если это в отрыве от вашей личности… То откуда такие далекоидущие наблюдения?

                        Ещё сумашедший язык кроме ассеблера и PHP? ну Python например :D
                        Т.е. говорите, что и ассемблер (интересно какой), и PHP, и Python — все они для вас входят в категорию «один из самых сумашешедшего языков». Ну ок :[
                        Интересно, а что же не входит?


                        1. olegl84
                          27.10.2017 12:31

                          Я имел ввиду, что обсуждаем мы не меня, а Python.

                          ну x86 конечно же, какой ещё. Вообще-то это был сарказм. на мой взгляд самый сумашедший, это пролог. Из тех на который которые встречаю в работе, это bash.


          1. olegl84
            27.10.2017 09:49

            Apache очень кушает ресурсы, особенно если у вас много статических файлов.
            Nginx сейчас по интереснее будет, и PHP там отличино работает, и конфигурирование проще на мой взгляд.


          1. olegl84
            27.10.2017 09:54

            Вот и моя идея в том, что на PHP тупо быстрее делать вэб штуки. Особенно если делать классический фронтэнд запрос-ответ. Не говоря уже если у меня поток клиентов, и то магаз надо, то CRM, то ещё какую-то типовую систему. Все без проблем ставиться на один сервер копированием файлов, допиливается за часы.


            1. SirEdvin
              27.10.2017 10:21
              +2

              То, о чем вы говорите, называется "на php быстрее наговнокодить". Если это вы записываете в плюсы языка, то с php в самом деле все печально.


              Начнем просто с того, что сервер надо настроить. Установить там nginx + php-fpm, установить для php нужные модули, установить git, если у вас нет какой-то ci системы, настроить там базу данных и прочее.


              В случае с python вы заменяете php-fpm и нужные модули для php на установку python-pip и установку зависимостей. Вообще ничего сложного.


              Если вы пишите на чистом php без какого либо фреймворка и прочего, то это ваше решение, но платить за такое я бы, на месте заказчика, бы не стал.


              1. olegl84
                27.10.2017 10:50

                Делать быстро и говнокодить не равноценные понятия. На PHP делаеться в целом быстрее. Хотя код писать на Python процентов на 15% быстрее чем на PHP, но если мне надо понять как работают кишки, и открываю код фреймвока, и в течении 5-15 минут понимаю что, к чему. В Django мне было сложнее, хотя возможно из-за меньшего опыта, но в большей степени из-за динамичной структуры языка.

                В PHP сервер настраивается 1 раз. В Python для каждого приложения, причем каждое приложение висит в памяти. А в PHP я могу сгенерировать сотню сайтов например без проблем (реальная задача в том проекта, который я делал на Python).

                На счет фреймовка, заказчику надо решение безнес проблем за минимальную цену. Я это ему даю. Со всему клиентами я работаю годами, и проблемы возникат как раз с перемудреннуми там, где не надо вещами. PHP и есть сам по себе фрейвок.


                1. Crandel
                  27.10.2017 10:59

                  Что за чушь вы несете? Я например перешел с похапе на Питон 2 года назад. Так вот в Джанго разобрался без проблем и Фласк тоже имеет похожую структуру. А вот в пхп такой ужасный зоопарк всего, Лаварел, симфония, юии, не говоря уже про ужасы типа вордпресов с друпалами, и в каждом свои велосипеды. Питон имеет нормальную стандартную библиотеку, в которой продуманное апи, а не тысячи несвязанных функций, непонятно что делающих с сокращенными именами.


                  1. olegl84
                    27.10.2017 11:23

                    В том и фишка, что у PHP есть Wordpress, Drupal, Joomla, PrestaShop, OpenCart и куча других, готовых решений с которыми я не работал.
                    Да, питон имеет хороший апи, и для разработчика он более приятятен. Но если скажем сам веду бизнес, то мне надо иметь возможность иногда поставить Wordpress, иногда Joomlu. Я много раз указывал в этом треде, что как для предпринимателя, PHP более экономически выгоден, прежде всего по причине широкой распространнености и наличия готовых решений для любо ситуации в вэб разработке. Разумеется PHP страшен, но с точки зерния бизнеса, PHP более экономичсески выгоден по моим разчетам. Конечно у меян есть право на ошибку, как право на аольтернативную точку зрения.


                    1. Crandel
                      27.10.2017 11:56

                      В Python есть Django, DjangoCMS, Django Rest Framework(Для апишек к мобильным клиентам) и куча других готовых решений для Фласка тоже. Причем они все интегрируются друг в друга без проблем и оршанично смотрятся. Мои клиенты тоже были довольны и использовали джанго для всех своих сайтов, когда я занимался вед разработкой на питоне. С точки зрения бизнеса питон намного выгоднее, потому что экосистема более зрела и продумана, на питоне меньше багов, потому что там строгая динамическая типизация, без этого кошмара


                      <?php
                      $foo = "1";  // $foo - это строка (ASCII-код 49)
                      $foo *= 2;   // $foo теперь целое число (2)
                      $foo = $foo * 1.3;  // $foo теперь число с плавающей точкой (2.6)
                      $foo = 5 * "10 Little Piggies"; // $foo - это целое число (50)
                      $foo = 5 * "10 Small Pigs";     // $foo - это целое число (50)
                      ?>

                      и целый миллион разных библиотек, которые могут использоватся на сервере, для обработки картинок, для рисования графиков в реальном времени и куча еще всего.


                      1. olegl84
                        27.10.2017 12:07

                        ну если говорть про конкретно приведенный пример, то да. в PHP работа с числами это серьезная проблема, брать PHP для большого проекта с вычислениями можно только в крайнем случае.
                        Но Wordpress написан на PHP, есть Joomla, которая на мой взгляд, имеет крутую экосистему, есть PrestaShop, для более серьезных вещей, и OpenCart для магазов попроще. DjangoCMS, интересная вещь, но это единственное достойное из решений на Python, которое я нашел.
                        А если ли на Python достойный интернет магаз?


                        1. Crandel
                          27.10.2017 12:10

                          А если ли на Python достойный интернет магаз?

                          А есть ли на пхп достойный интернет магазин? Все что я видел — ужас, тормозящий немилосердно.


                          1. olegl84
                            27.10.2017 12:21

                            1. Хочу ещё раз сказать, с точки зрения программиста, питон конечно лучше. Но я смотрею с точки зрения бизнеса, так как сам предоставляю услуги клиентам. Если ко мне приходит клиент, и говорит, мне нужно магаз, за сколько вы можете сделать. Я должен дать такую цену что мы и себе не в убыток, и клиент остался доволен. Я беру готоврое решение.
                            2. Я работал с PrestaShop и OpenCart. на мой взгляд — отличные продукты. OpenCart летает, структура понятна и проста, но есть проблемы с расширением. PrestaShop сложнее, но намного более навороченая.
                            3. на счет тормозит. берем сервак помощнее и ничего не тормозит. С точки зрения скорость PHP и Python примерно одинаковы. Писал идентичный код, который делал относительно сложные вычисления. разница в выдаче с сервера 2 мс между Питоном и PHP. Притом что PHP крутился на Apache. Самый быстрый был .NET Core


                            1. Crandel
                              27.10.2017 12:28

                              Я не буду с вами спорить, это бесполезно


                              1. olegl84
                                27.10.2017 12:36

                                да, верно. я лишь высказал свое мнение. Сразу в первом комментарии, сказал, что это мое мнение. но адепты секты питон понятно сразу слили карму. Вот мне интересно, почему у питонистов так сильно бомбит, когда говорят что питон гавно. А думаю потому что им страшно, и лень учить много языков.


                1. SirEdvin
                  27.10.2017 11:02

                  Делать быстро и говнокодить не равноценные понятия. На PHP делаеться в целом быстрее. Хотя код писать на Python процентов на 15% быстрее чем на PHP, но если мне надо понять как работают кишки, и открываю код фреймвока, и в течении 5-15 минут понимаю что, к чему. В Django мне было сложнее, хотя возможно из-за меньшего опыта, но в большей степени из-за динамичной структуры языка.

                  Или потому, что django просто большой.


                  В PHP сервер настраивается 1 раз. В Python для каждого приложения, причем каждое приложение висит в памяти. А в PHP я могу сгенерировать сотню сайтов например без проблем (реальная задача в том проекта, который я делал на Python).

                  Вы не поверите, но php-fpm тоже висит в памяти. И php сервер настраиваться столько раз, сколько разных приложений у вас есть. Аналогично работает и с python. Где вы тут нашли настройку каждый раз, я не знаю.


                  На счет фреймовка, заказчику надо решение безнес проблем за минимальную цену. Я это ему даю. Со всему клиентами я работаю годами, и проблемы возникат как раз с перемудреннуми там, где не надо вещами. PHP и есть сам по себе фрейвок.

                  Апелляция к "ну, у меня есть заказчики и все хорошо" не работает, так как заказчики и так есть у всех. Ну и дополнительная проблема в том, что я уже обозначил. Если вы пишите в old-style php, где php код смешанный с html и js — это говнокод. Совершенно не поддерживаемое, и отвратительное решение, которое в конечном счете приходится полностью переписывать, так как внесения изменений требует слишком больших затрат. Это и в целом есть один из важных пунктов, ради которых люди используют фреймворки. Стандартные решения большинства задач позволяют их использовать и не писать кучу своих велосипедов.


                  А у вас, скорее всего, получается так:


                  • Вместо ORM -> raw sql
                  • Вместо архитектуры -> смесь из php+js+html
                  • Вместо инфраструктуры -> Накидал что-то и готово

                  Вот и получается поддерживаемость такого решения очень низкая.


                  1. olegl84
                    27.10.2017 11:16

                    «Или потому, что django просто большой.»
                    Отчасти да. В PHP я выбираю под стать задаче, надо средний проект, беру Yii, надо большой беру Symfony. В мире Python есть Django, Pyramid и Flask, а промежуточного варианта нету. Что бы все из коробки, но в компактном виде.

                    Если мы говорим про Django, то у каждой аппликации свой демон. В PHP 1 сервер обслуживает все сайты. разве не так?

                    Ну я говорил про сайт на php в контексте сайта визитки, то есть без логики и базы. Разумеется если мы делаем нечто больше, то берем фреймвок или компоненты Symfony.


                    1. SirEdvin
                      27.10.2017 11:20

                      Отчасти да. В PHP я выбираю под стать задаче, надо средний проект, беру Yii, надо большой беру Symfony. В мире Python есть Django, Pyramid и Flask, а промежуточного варианта нету. Что бы все из коробки, но в компактном виде.

                      А что не так с flask? Если он вам кажется большим, вообще есть bottle, размером аж в один файл. Причем со всем, что нужно для сайта визитки.


                      Если мы говорим про Django, то у каждой аппликации свой демон. В PHP 1 сервер обслуживает все сайты. разве не так?

                      Если вы говорите про apache, то у вас происходит выполнение скрипта во время запроса. А если про nginx + php-fpm, то оно вроде тоже висит в памяти немного.


                      Опять же таки, если это сайты визитки без логики, зачем вообще php, если можно просто готовый html выдавать?


                      1. olegl84
                        27.10.2017 11:33

                        А что не так с flask?
                        Flask имеет компонентную структуру, то есть там надо много допиливать. Но я делал на Django. Смотрел Flask, и пришел к выводу что Yii2 лучше для моих целей. А какой язык, мне все равно.

                        Могу ошибаться, так как nginx стоит только на одном из серверов, но в смысле выполнения php кода, что там что там воркеры. на самом деле, я лишь хочу сказать, что позиция,«Python рулит, PHP ерунда» — Не верна. Есть области где PHP легко конкурирует с Python (вэб), а есть где ему проигрывает, (скрипты, вычисления). А есть области, где просто нереально использовать не одно не другое.

                        Если у мня футер и шапка повторяется, то не удобно. Плюс форма контакта например. Но посути да, это HTML, с 10 процентами кода.
                        Логика такая, я предоставляю услуги клиентом. Есть страницы-визитки, есть системы на сотни человеко-часов. И все в рамках проекта. Тут PHP больше подходит. Если у меня большой продукт, который пилиться, годами, то наверно тут лучше Python, но я пилю на PHP, чисто по историческим причинами, и доволен как слон.


                        1. kozzztik
                          27.10.2017 13:41

                          Flask имеет компонентную структуру, то есть там надо много допиливать.

                          Великолепно противоречивые логические цепочки.


                          1. olegl84
                            27.10.2017 13:45

                            Ну наверно надо было добавить, что эти части не идеально работают вместе как в монолитных фреймворках вроде Django и Yii. Скажем в Симфони отчасти та же проблема, код фреймворка сложнее читать из-за обилия абстракций.


                            1. kozzztik
                              27.10.2017 13:55

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

                              код фреймворка сложнее читать из-за обилия абстракций.

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


                              1. olegl84
                                27.10.2017 14:09

                                Я прочитал большую часть документации Django. Затем, я читаю код фреймворка, это позволяет понять детали реальзации. Джанго много делает сама, и если мне надо изменить поведение, документации, покрайней мере мне, не всегда достаточно.
                                Мне больше всего нравиться Yii, и другие решения, скажем Joomla, а не сам PHP. В аспекте наличия, готовых, поддерживаемых решений, PHP просто уделывает Python. Одного Wordpressa уже достаточно. Понятно это ниша малобюджетных проектов. Но с финансовой точки зрения разницы между 10 малобюджетными проектами и один большим нету. На малобюджетных я думаю даже легче заработать на начальном этапе развития бизнеса.


                                1. kozzztik
                                  27.10.2017 14:35

                                  Еще раз. Wordpress не имеет отношения к разработке, и по этому Python он не может уделывать в принципе. Это тоже самое что утверждать что Microsoft Publisher уделывает PHP.


                                  1. olegl84
                                    27.10.2017 14:39

                                    В моем комментарии я написал " PHP превосходит Питон с точки зрения бизнес преминения".
                                    Я не писал про разработку ничего.


                                    1. kozzztik
                                      27.10.2017 15:12

                                      Нет. Написано было:

                                      PHP просто уделывает Python. Одного Wordpressa уже достаточно.

                                      PHP превосходит Питон с точки зрения бизнес преминения

                                      Гугл с вами не согласен. Уж наверное эта компания понимает в бизнесе по больше вашего. При поиске фразы «google uses php» мне вылезает статья «Why is Python preferred at Google over PHP?».


                                      1. olegl84
                                        27.10.2017 15:34

                                        Это было в моем первом комментарии. Типо вот альтернативная точка зрения, сделал анализ, вывод для себя «PHP лучше». Какие вопросы, прочитал, не согласен, пошел дальше.


                                        1. kozzztik
                                          27.10.2017 16:17

                                          Я не знаю, какой ваш комментарий первый.


  1. Nokta_strigo
    26.10.2017 00:56

    Ещё питон очень широко используется как инструмент для исследований в ИБ. Фактически стандартный язык для написания POC (если нет следующих из задачи ограничений на язык программирования). В вакансиях на ИБ-исследователей часто указывается в пожеланиях.


  1. taroved
    26.10.2017 01:13

    Вы написли что платформа Twisted признана устаревшей. Есть какие-нибудь факты это подтверждающие?


    1. hatman Автор
      26.10.2017 01:17

      Сам фреймворк живее всех живых, я даже помню выступление одного core-разработчика, где он доказывал, что у них все круто и прочее. Проблема заключается в том, что aio сделали стандартом в питоне, и парадигма aio сильно отличается от того, что предлагается твистедом. В итоге, сейчас основной фокус комьюните идет на aio, в том числе и фреймворк aiohtpp — от нашего украинского разработчика.

      По поводу устаревшего — это обобщенная цитата разработчиков Рамблера и Тинькова.


      1. taroved
        26.10.2017 16:39

        Я поизучал вопрос и пришел к выводу, что противопоставлять asyncio и twisted не совсем корректно. Твистед просто переедет на механизм asyncio
        Пруф:
        «Soon, there will be a version of Twisted that is based on asyncio.» (Отсюда: asyncio.readthedocs.io/en/latest/twisted.html)

        На мой взляд Twisted — это теперь, в первую очередь, не механизм, а та гора протоколов, которую он поддерживает. Конечно использование голого asyncio выглядит превлекательней, но со временем разница может стереться


  1. irinasurma
    26.10.2017 01:13
    +1

    >> В прошлой статье мы уже обсудили с вами…
    А ссылочку то можно?


    1. hatman Автор
      26.10.2017 01:17

      Добавил, а так у меня в профиле всего две статьи, что в общем-то найти не сложно.


  1. asknarin
    26.10.2017 01:13
    +1

    полностью проигнорирована такая область (пусть они и небольшая) разработка графического контента — кино, реклама, игры, 3д, трек композ всё такое. Там питон — стандарт де факто из инструментов кастомизации — от написания скриптов до полноценного апи и возможности писать плагины. У большинства DCC есть альтернативы в виде своих кастомных языков (MEL, MAXscript, Hscript) или С++ api, но один или более вариантов питон интерфейса есть везде. И соответственно при необходимости кастомизировать дело редко заходит достаточно далеко чтобы браться за С++, так что питон тут не просто популярен, а обязателен для какой никакой серьёзной работы.


    1. hatman Автор
      26.10.2017 01:19

      Не совсем, тот же Panda3D и PyQT (про которые я рассказал) — это продукты компании Дисней, как раз из области обработки изображения, графики, GUI и прочее. Но опять же у нас я под это вакансий практически не находил.


      1. iroln
        26.10.2017 01:27

        PyQt — это продукт компании Дисней? Название "Riverbank Computing" вам о чём нибудь говорит?


  1. iroln
    26.10.2017 01:26

    Не надо поддаваться хайпу по machine learning. Классические инженерные задачи: обработка сигналов, математическое моделирование, оптимизация, дифференциальные уравнения и т. д. всё это никуда не делось. Возьми любой инженерный тулбокс из Matlab, всё это сейчас может заменить Python со стеком библиотек для научных вычислений. Сейчас Python стал очень полпулярным среди инженеров, исследователей, алгоритмистов и учёных для протоипирования, обкатки идей и гипотез, визуализации.


    И ещё, вот реально смешной аргумент про desktop


    PyQt PyGTK wxPython

    Однако практика показывает, что ни один из инструментов не делает 100% кросс-платформенное приложение, которое бы нативно выглядело на каждой из платформ.

    При чём тут Python вообще? Qt, GTK, wxWidgets — это самостоятельные библиотеки, а на питоне для них просто есть обвязки. Точно так же в этом контексте можно сказать и про C++ и C для GTK, что они не подходит для кроссплатформенного десктопа c применением этих библиотек.


  1. KEugene
    26.10.2017 15:22

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


  1. olegl84
    27.10.2017 14:55

    да, холивар тут знатный получился. какой-то троль утверждал, что PHP лучше питона.
    Есть у кого версии почему питонисты так преданы своему идолу, почему они готовы доказывать в десятках комментариях, и яросно минусовать того, кто говорит что Python хуже PHP для вэб?


    1. Myxach
      27.10.2017 15:09
      +1

      таких тут мало, просто тут оратор один за ПХП, сам не знает того что говорит
      Я не приверженец Python, если что. Мой язык это C#