Где перспективно и адекватно использовать Python

    В прошлой статье мы уже обсудили с вами причины, по которой 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) Все остальные сферы, хотя и предлагают определенные инструменты для решения проблем, но перспективность использования этих инструментов выглядит весьма сомнительно. И главное, найти оплачиваемую работу на эти сферы практически невозможно.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 255
    • +1
      Однако в первом случае используется stateless python
      имеется ввиду Stackless Python
      • +7
        Без воды, четко, достаточно. Спасибо.
      • +1
        Статья в целом подтвердила мои мысли. Спасибо за большой охват разобранных технологий.
        • +6
          Спасибо, достаточно интересно и познавательно, хотелось бы и про другие языки почитать в подобном формате. Может серию статей по популярным языкам?
          • 0
            Ребята, посоветуйте книгу для веб разработки по Python, с полного нуля изучение языка.
            • 0
              Могу предложить подборку книг на канале в телеграмме: t.me/python_textbooks
              Вообще толковая вещь — документация по Django (в абсолютном большинстве случаев при разработке веб приложений будет использоваться фраймворк).
              • 0
                Записал, посмотрю, Благодарю!
              • 0
                Учился по книге Марк Лутц «Изучаем Python».
                • 0
                  Пролистал книгу, я так понял это база языка? Проштудирую обязательно, а если ли уклон по веб разработке?
                  • 0
                    Совершенно верно — это база. К сожалению по веб разработке мало могу подсказать, а вот по ГИС технологиям сколько угодно :).
                    • +1
                      После того, как освоена база языка и есть общее понимание того, что такое вообще веб, http и html, следующим этапом является изучение конкретного фреймворка.
                      Сейчас самым популярным веб-фреймворком для веба считается Джанго:
                      djbook.ru/rel1.9
                  • 0

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

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

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

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

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

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

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

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

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


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

                              • 0
                                Так я и говорю, JS как по мне менее простой, чем python и количество программистов на JS — обусловлено только популярностью и работой из коробки. Если говорить про игры, конечно
                                • 0
                                  Предположим что человек захотел учить JavaScript и делать игру.
                                  Вот что получилось описано в статье:
                                  Каково оно учить JavaScript в 2016
                                  • 0
                                    Такое состояние возникает на любом языке, когда он переходит из разряда «для саморазвитие» в разряд «для работы», ну потом все понимается, да и без этого в JS хватает проблем
                            • 0
                              Я видел реализацию на C++ для мобильников, которую потом компилили на JS. По мне так это какая-то адовая извращенная магия, но работало на удивление неплохо.
                              • 0

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

                                • 0
                                  Приложение для мобильников на С++ «компилировали» в JS для получения веб приложения, тут за что взял, за то продаю. Видел со стороны, но в процессе не участвовал, и что конкретно использовалось не помню. Тема совсем не моя. Но была игрушка для мобильника которую делали год, и за неделю оно начало собиратся не только под андроид и иос, но и под веб, из одного исходного кода.
                            • 0
                              На С++, например. С помощью Emscripten, который позволяет скомпилировать уже готовый код в asm.js или в WebAssembly.
                            • +1
                              В Unity, самом популярном игровом движке, игры пишутся на С# и/или JS, а в случае вебигр то тут у JS в конкурентах только Flash(ActionScript) теряющий актуальность.

                              Что же касается геймдева на питоне, то к сожалению популярности он не набрал. Хотя тот же Blender Game Engine(BGE) вполне неплох, но рынок уже захвачен движками с большой экосистемой и магазинами ассетов.
                            • +7
                              Серьёзно? Вы пытаетесь оценить, насколько Питон пригоден к веб-скрейпингу, и при этом забываете упомянуть о Scrapy и АПИ для Splash (если уж Вы упоминаете об АПИ)?
                              Думаю, стоит добавить их в раздел и сменить статус на «адекватно».
                              • 0
                                Со скраппу или без него, само направление выглядит сомнительно. Т.е. есть сервисы, где это все делается на профессиональном уровне, где реально требуются хорошие профессионалы, но их можно пересчитать по пальцам. Все остальное мусор.

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

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

                                  Да, кстати, спасибо за указание книги по машинному обучению — как раз собирался почитать что-то по этой теме.
                                  • 0
                                    Для офисной работы может и нет, а вот на Upwork фрилансерских заказов на парсинг уйма, и почти в каждом именно Scrapy указан.
                                  • +1
                                    Тоже бросилось в глаза. Автор похоже совсем не в теме (и по поводу сомнительности направления). Точно так же, автор совсем пропустил область IoT с огромным спросом на разработчиков и большим числом интересных проектов. Видимо просто не сталкивался.
                                    • 0
                                      >Автор похоже совсем не в теме (и по поводу сомнительности направления)
                                      Да, судя по всему, так и есть. Хотя по поводу сомнительности направления я тоже уже не в теме, похоже. Работаю больше года с одним заказчиком и не смотрел, что там предлагают на рынке труда.
                                  • 0
                                    В задачах, связанных с микроконтроллерами, часто требуется повышенная надежность. Из динамически типизируемых языков для этого подойдет пожалуй только Erlang и Elixir.
                                    • +1
                                      Во-первых, Микропитон работает надёжно, если не перегружать проц, во-вторых, если нужна сверхвысокая надёжность, берите плату Micropython+FPGA. А в третьих — в 90% случаев цена разработки важнее надёжности, а тут Python со своей универсальностью — один язык для всех платформ — вообще вне конкуренции.
                                      • +2
                                        Язык сильно динамический, допускает значение null, позволяет находу изменять все что угодно, а иммутабельность наоборот не поощеряет. На таком языке очень сложно программировать надежно.
                                        Да, стоимость разработки и скорость выпуска для бизнеса важнее надежности. Результаты, к которым это приводит, мне, как потребителю, очень не нравятся. Надо что-то менять в системе. В частности, стараться переходть на более надежные языки.
                                        • +5
                                          допускает значение null
                                          иммутабельность наоборот не поощеряет
                                          А C, царствующий на микроконтроллерах, прямо-таки молодец в этих сферах :)
                                          И на микроконтроллерах, где часто важен каждый килобайт, с иммутабельностью не сильно разгуляешься. Или нет?
                                          • +1
                                            C не сильно лучше. C++ чуть лучше, но что бы этим воспользоваться требуется очень высокая квалификация разработчиков. Если уж пошло сравнение с C/C++, то лучше всего Rust.
                                            Там, где экономят байтики, python, несмотря на мутабельность, тоже не совсем уместен. К тому же иммутабельность удобна компилятору для оптимизации, и функциональный код часто оказывается эффективнее.
                                            • 0

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

                                    • +3
                                      > Питон входит в тройку языков (Python, PHP, Ruby), которые обладают развитыми экосистемами быстрой разработки веб-проектов адекватного качества.
                                      Тут мне стало обидно как минимум за asp.net и node.js.
                                      • +3
                                        Ну раз так пошло, то Java уделывает и asp.net и node.js вместе взятыми в рамках развития экосистемы, но я брал в учет языки, которые имеют схожий подход к разработке веб-проектов. Все же делать сайт на python и asp.net — это совсем разные занятия.
                                      • 0
                                        помимо машинного обучения, еще есть просто аналитика: ETL разные. python вполне годится. Можно и со Spark'ок
                                        • 0
                                          то, что называют Data Engineering
                                        • 0
                                          Питон для веба общего назначения все же проигрывает php (более дешевые разработчики за счет их количества) и ruby (более удобные инструменты и более быстрая разработка).

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

                                          Однако незаметно сюда крадется движок Ren’Py, который внезапно стал лучшим движков для написания визуальных романов (страдальческих историй для девочек) [...]
                                          Вот сейчас обидно было.
                                          • +1
                                            Не то чтобы я защищал питон, но в случае с php мы платим качеством кода, за счет низкой квалификации бОльшего числа разработчиков, а в случае с ruby — стоимостью серверов, за счет плохой архитектуры самого языка (жрать память у него заложено фундаментально). Питон тут смотрится неплохим компромиссом.
                                            • +1
                                              У любого проекта могут быть две стадии развития:

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

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

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

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

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

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

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

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

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

                                                  • 0
                                                    Вполне вероятно, у вас никогда не было в школе или институте — предмет или тема, которая была трудно, ну для вас легкой, хотя остальные вы ели-ели сдавали? Вот, тут также
                                                  • 0
                                                    Проблема не в языке, вы сравниваете из разных весовых категорий типа «Молотком забивать гвозди проще чем отремонтировать танк отверткой, поэтому молоток всегда лучше отвертки.» Вы сравните аналогичные задачи на разных языках, и python тут будет ближе к подбеде (не считая сфер для которых python не предназначен).
                                                    • +1
                                                      В моём случае — проблема именно в языке. Мне пришлось его «выбрать», потому что нём оказались нужные библиотеки, а в других нет. То есть как бы да, для моей задачи он подходит лучше всех, просто потому что наличие инструмента всегда лучше его полного отсутствия. Но между мной и нужным инструментом встает посредник в лице языка. И вот с ним мы характерами не сошлись.
                                                      • +1
                                                        И вот с ним мы характерами не сошлись.
                                                        Когда я впервый раз потрогал python (после с++), я тоже негативно к нему относился, особенно к отступам, но спустя небольшое время я проникся, и сейчас синтаксис, это просто дело привычки, а «отступы» имеют свое преимущество.
                                                        • 0
                                                          Отступы мне не нравятся однозначно. Я говорю это вполне уверенно, потому что проходил эту ломку уже трижды — SASS, Jade, Python. Во всех трёх случаях были одинаковые ощущения — отступы смотрятся чистенько на маленьких стерильных примерах, но для объемного реального кода из реальной жизни операторные скобки нагляднее и надёжнее.
                                                          • +3
                                                            Ну, как бы отступы и по любому code-style есть и в других языках
                                                            • +2

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

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

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

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

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

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

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

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

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

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

                                                                Мне кажется, что сейчас в представлении работодателя «компьютерное зрение» тождественно равно «машинное обучение». Поэтому в вакансиях пишут TensorFlow, PyTorch, etc.
                                                                • +1
                                                                  Python еще начал использоваться в игровом движке Godot Engine.
                                                                  • 0
                                                                    Как-то не хватает цифр статистики по числу вакансий хотя бы, чтобы это не выглядело, как размахивание руками. Каков критерий «вакансий нет» и «вакансий много»? Поскольку по числу проектов в той или иной сфере на Python, вероятно, трудно привести какие-то цифры для оценки «перспективности» направления.
                                                                    • 0
                                                                      Не вижу смысла собирать статистику по тому, что гуглится за 2-3 минуты через ключевики на том же HH.
                                                                      • 0
                                                                        Количество вакансий надо поделить на количество резюме. С популярными технологиями на рынке труда конкуренция высокая, что плохо сказывается на зарплате.
                                                                        • 0
                                                                          Все это понятно. Я написал этот комментарий, чтобы обратить внимание на то, что все изложенное в этой статье является личным мнением автора, основанным на его интуитивных заключениях и личном восприятии, не более того.
                                                                      • +1
                                                                        К блоку про использование в DataScience-области. Язык очень много нужен в разных исследовательских задачах во множестве на первый взгляд не относящихся к IT-областей. Вроде того же исследования климата. Очень хорош для задач биоинформатики. Так что требования знания python можно не только в вакансиях на IT-специалиста встретить.
                                                                        • 0
                                                                          Ничего специфичного для биоинформатики там нет. Даже библиотек для R в этой области больше. Все его используют только потому, что больше ни чего не знают — система с положительной обратной связью.
                                                                          • 0
                                                                            Я пробовал изучать R — по сравнению с Python это был просто ад какой-то, намного хуже структурирован язык, больше похож не на язык, а просто на набор функций каждая со своими заморочками.
                                                                            • 0
                                                                              Там очень специфическое именование функций, вызванное требованием совместимости с древним проприетарным языком S. Привыкнуть не просто, но можно.
                                                                              • +1
                                                                                я переходил с Питона на Р, аналогичное первое впечатление, но через несколько месяцев оказалось, что Р удобнее на порядок минимум. Да, там много заморочек, но у них есть своя внутренняя логика, которую со временем понимаешь, плюс какая-то «теплая ламповость», что вызывает симпатию.
                                                                              • 0
                                                                                а разве я написала, что он «уникален и не имеет аналогов, юзайте только его для биоинформатики»?:) Сказала только то, что встретить потребность в специалисте со знанием python можно и не в вакансиях раздела IT.
                                                                            • +5
                                                                              Начал изучать питон в универе, рисуя графики с помощью matplotlib. До этого понемногу изучал сишарп, после использования питона чувства были непередаваемые, работая с данными — я реально работал с данными, для написания не сильно ёмких алгоритмов не нужно было предварительно создавать кучу своих классов, думать над типами, какой же лучше подойдёт и тд, когда почти на всё хватало скобочек (словарей, списков, кортежей). А писать алгоритмы — одно удовольствие, порой почти просто переписываешь псевдокод, парой строк считываешь данные с файлов и ещё парой рисуешь крутые графики, я понял, почему питон так высоко оценён в научной среде. Но удовольствие на этом не закончилось, когда я узнал, что на питоне можно легко и непринуждённо писать веб-приложения и даже десктопные программки, казалось, куда ни ступи, везде можно писать на питоне.
                                                                              Я понимаю, что есть множество задач, в которых другие языки подходят куда лучше питона, но, имхо, для домашних небольших проектов питон просто шикарен, создать на нём можно что угодно и при этом не затеряться во времени, а реально сделать что-то полезное и приятное для себя, как минимум.
                                                                              • 0
                                                                                Мы с большим удовольствием использовали питон для геймдева. Да он не фонтан, если тебе нужно запилить стандартную поделку на готовом движке. Но если надо разработать что-то уникальное — то тут уже совсем другие потребности. И питон тут, имхо, отлично подходит для бекенда, особенно после выхода asyncio.
                                                                                • +4
                                                                                  Не согласен в двух пунктах:
                                                                                  — даже в относительно больших и нагруженных ML проектах вполне можно использовать python, т.к. обычно ядро библиотеки написано на c/c++, а python — это только обвязка;
                                                                                  — для компьютерного зрения тоже все есть — и openCV, и все нейросетевое барахло.
                                                                                  • 0
                                                                                    Кстати весьма популярная нынче тема — ядро на С++ с обвязкой на питоне. Собеседовался на вакансию по фильтрации сетевого трафика, и делал проект по фильтрации почты. Имхо, отлчиная схема для большинства крупных проектов. Производительность языка + гибкость и производительность девелоперов в одном флаконе.
                                                                                  • –7
                                                                                    Только не минисуйте сильно, просто скажу о моем опыте.
                                                                                    Мой бэкграунд: Мне нравиться 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
                                                                                      1. Есть такое дело. Хотя «бизнес» обычно про 3 не особо в курсе :(
                                                                                      2. Я сам emacs использую, умный автокомплит и навигация по проекту, хватает… Даже, как бы сложно в это не было поверить, есть подсветка. Но неужели PyCharm прямо таки хуже PhpStorm? Пробовали оба, сравнивали?
                                                                                      3. Именно!
                                                                                      4. Качество != количество.
                                                                                      5. А вот тут любопытно, что это за модель такая Java/Php/C# и чем же отн отличается от Python. Можете привести примеры?
                                                                                      • –1
                                                                                        2. Есть купленный PyCharm. Не скажу что плохо, но phpstorm лучше разбирает код, особенно если надо делать рефакторинг. Ну например по написанию кода я не могу понять, создаю я класс или вызываю функцию. Вызываю статический метод или метод объекта. В .net и java все еще лучше.
                                                                                        3. Отсутствие в django указания типов аргументов методов например очень не нравится.
                                                                                        4. На php это качественные продукты: prestashop, laravel, symfony и т.д.
                                                                                        5. отсутствие модификаторов доступа, отсутствие формальных интерфейсов например (Я знаю про AbsttactBase класс). Безусловное это синтаксический сахар, но ведь питон любят в том числе за наличие классных офис языка.

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

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

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


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

                                                                                                • 0
                                                                                                  Автор не нашел вакансий по веб-скраппингу. Это не веб разработка, по ней другой отдел. И никаких проблем с вакансиями по веб разработке нет. А логика «я программист на 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
                                                                                                    Я видел исследование гугла, там говорилось что 2/3 сайтов на PHP. Понятно что это вордпресс в основном, но не важно, что это администрирование или настрйока. Я сразу написал, с точки зрения бизнеса. У меня клиентам мало и маленькие сайты, и большые.
                                                                                                    Я сам делал анализ вакансий. В Швеции Питон — 90% тестирование и dev ops.
                                                                                                    Программирование — 1. .NET,2. Java,3. PHP
                                                                                                    • +1
                                                                                                      Вы специально подсовываете какие-то безумные факты? «В Швеции питон 90% тестирование». Кому какое дело до Швеции? При чем тут она?
                                                                                                      И как не важно относится это к разработке или к администрированию? Администрирование, это не программирование. Вы же не говорите, ну база данных то на плюсах, то и сайт я буду клиенту на плюсах продавать, зачем зоопарк разводить?
                                                                                                      • –1
                                                                                                        Живу в швеции, сказал по швеции. Факт в том, что python не пользуется большим спросом на реальном рынке труда. Автор в своей прошлой статье говорил о россии, я дополнил по швеции.
                                                                                                        • +5
                                                                                                          У меня двоюродный дядя живёт в деревне Нижние Хмыри. Так он говорит, что у них там ни питон, ни пхп не востребованы, и на «реальном рынке труда» гораздо востребованнее навык вождения трактора.
                                                                                                          • 0
                                                                                                            ну так пускай выбирет из того что наравиться и востребовано. так сказать следует велению сердца, хочет быть спецом, пускай идет в агрономы.
                                                                                                          • +1
                                                                                                            Еще раз — автор говорил о недостатке вакансий в веб скраббинге. Не в веб разработке. В веб разработке проблем с вакансиями на питоне нет. В статье указано, что веб занимает около трети от всех питон вакансий. А Швеция… ну известный лидер веб разработки.
                                                                                                            Можно пруф на то, что питон не пользуется большим спросом на рынке труда? А то в почти любой крупной компании (начиная с google и Microsoft) что-то да написано на питоне (а вот на пхп не факт), а спросом он не пользуется.
                                                                                                            • 0
                                                                                                              Посмотрел ещё раз, про скраппинг ничего не увидел. Автор просто искал вакансии по Питону.
                                                                                                              Посмотрел monster.com, вакансии в New York. На первой странице 2 из 10 вэб, и везде надо знать ещё языки, типо C++ и опыт большой иметь.
                                                                                                              Php все чисто вэб.
                                                                                                              Все в точности как описал автор. С точки зрения работы, Питон как первый язык не годиться.
                                                                                                              • 0
                                                                                                                Ну так я вам покажу, если вы найти не можете. Раздел:
                                                                                                                Веб-разработка (адекватно и перспективно)

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

                                                                                                                То у вас Швеция центр мира. Теперь Нью-Йорк. К вашему сведению, компании занимающиеся разработкой в NY, нанимают людей где угодно, только не там. Работал в нескольких таких, и ни разу не был в США.
                                                                                                                По поводу «первый язык не годится», TIOBE с вами категорически не согласен.
                                                                                                                www.tiobe.com/tiobe-index
                                                                                                                • 0
                                                                                                                  Ну вообще-то Нью Йорк это реально один из центров мира, по крайней мере финансовый. Просмотрел первую страницу Web Delevoper, 1 вакансия из 10 на Python если не пропустил, PHP минимум 4.
                                                                                                                  TIOBE индекс упоминания, PHPшники не задают вопросов, потому что им не надо компилить ничего под виндовс, они делают работу. Сделал анализ сделав на Питон пару проектов, и сделал выбор в пользу PHP, как языка для веб для собственных проектов. Например что бы забекапить проект, мне надо просто заархивировать папку, и не надо думать, а что если пакет будет не доступен через 5-10 лет.
                                                                                                                  • –1
                                                                                                                    TIOBE индекс упоминания

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

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

                                                                                                                      У нас есть инфа по россии, швеции, Нью-Йорку. Сделайте по Москве или Питеру со ссылками. И посмотрим, может там Python в топе.
                                                                                                                      • 0
                                                                                                                        TIOBE — The index is calculated from the number of search engine results for queries containing the name of the language.
                                                                                                                        Индекс упоминания в поиске, то есть по какому языку больше ищут. Просто по Python задают больше вопросов.

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

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

                                                                                                                          Я утверждаю, что с автором статьи случилась не единичная ситуация, а закономерная. В вэб питон проигравыет php по распространению и наличием рабочих мест.
                                                                                                                          • 0
                                                                                                                            Ну если вас в гугле забанили:
                                                                                                                            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 по распространению и наличием рабочих мест.

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

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

                                                                                                                              А с автором случилось то, что он учил Python. Но работы по нему не нашел. Пришлось выучить ещё и Java. habrahabr.ru/post/322332
                                                                                                                              • 0
                                                                                                                                О, так это тот же автор. Так там в комментах вполне детально все это разобрали, и конкретно к питону ситуация не имеет особого отношения.
                                                                                                                      • 0
                                                                                                                        Спрос на разработчиков в криминальной столице, сельскохозяйственной наверное тоже очень важен.

                                                                                                                        А вам тогда только Нью-Дели интересно?
                                                                                                                        • 0
                                                                                                                          Очевидно, это был сарказм.
                                                                                                                      • 0
                                                                                                                        Например что бы забекапить проект, мне надо просто заархивировать папку, и не надо думать, а что если пакет будет не доступен через 5-10 лет.

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

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

                                                                                                                          одно дело инсталировать новую систему, а другое возиться с легаси.
                                                                                                                  • –1
                                                                                                                    Просмотрел пару страниц вакансий по питон, часто это LAMP (PHP), Python как один из доп. языков.
                                                                                                            • 0
                                                                                                              Нашел случайно инфу от гугла:
                                                                                                              youtu.be/Qt1_atU_Qsg?t=134
                                                                                                              Нету времени слушать, где они говорят о цифрах, но по ссылке инженер google говорит, что php самый популярный вэб язык.
                                                                                                              • 0
                                                                                                                т.е. плюс одно частное мнение. Против TIOBE не катит.
                                                                                                    • +3
                                                                                                      1. А в чем проблема то с 2 и 3? вышла новая версия языка, больше и веселее. Язык активно развивается. Чем это «подрывает» доверие бизнеса?
                                                                                                      2. Прекрасно IDE все подсвечивает. Если у нее возникают сложности, используешь аннотации. Да, конечно если делать всякие стремные фокусы, то тут IDE начинает офигивать. Ну так не надо их делать без острой нужды. А ежели она есть, то тут спасибо языку что это все таки можно сделать.
                                                                                                      3. В джанге нет аякса, и не особо круто добавляются виджеты по одной простой причине — это фреймворк для бекенд, а не фронтенд разработки. То что там есть виджеты, это просто вишенка на торте, а не торт. И с каких пор в джанго «код не отвечает современным требованиям разработки»? это вообще что такое?
                                                                                                      4. В питоне нет обилия CMS, потому что нафиг они там сдались. На питоне не клепают интернет-магазины за 100 рублей. Для этого есть PHP. А фреймворков ровно столько, сколько нужно, на любой случай есть подходящий. Что такое «скрипты для вэб» это я вообще не понял. Стандартная библиотека питона сама по себе на половину «скрипт для вэб».
                                                                                                      5. Это вообще что? Сначала вы говорите что там больше чем нужно, а потом что это обрезаная версия. Что это за поток сознания?
                                                                                                      • –5
                                                                                                        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 этого не может.
                                                                                                        • +5
                                                                                                          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? Серьезно? На питоне можно писать практически что угодно, включая полноценные десктоп приложения. Было бы только зачем, это не его область применения. Но некоторые даже это делают и вполне успешно.
                                                                                                          • –5
                                                                                                            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
                                                                                                              Как и писать большой энтерпраз на питоне или пхп. Можно конечно, но зачем? Это, впрочем, не мешает в большом интерпрайзе писать на питоне отдельные компоненты.
                                                                                                              Не бывает, что в большом «энтерпраз» используют только один инструмент, всегда зоопарк, если вам кто-то скажет обратное — значит там «энтерпраз» не такой и большой.

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

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

                                                                                                                Иначе функциональные строго типизированные языки сильно выигрывают по всем параметрам, от скорости разработки до поддерживаемости и гарантий корректности.
                                                                                                                • 0
                                                                                                                  Про преимущества функциональных, строго типизированных языков всё верно (пример истории успеха).
                                                                                                                  • +1
                                                                                                                    Это какая-то ужасная история успеха, на самом деле. По крайней мере, само тестирование. Начиналось ещё относительно за здравие, кончилось за упокой.

                                                                                                                    Тестировать безопасность языка через деланье 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, опять же, было бы хорошо.
                                                                                                                • 0
                                                                                                                  Ну про зоопарк — что правда, то правда. Потому я и написал, что на питоне можно написать отдельные компоненты. Но основа почти всегда Java/C#. И дело вовсе не в языке, а в наличии готовых решений. У питона для ынтерпрайза особо нет ничего, и это убивает скорость разработки на корню. Также там иногда возникает реальная потребность в натуральной многопоточности со сложной синхронизацией, и что бы все это при том шустро работало под нагрузкой. Тут питон не особо подходит. По отдельности эти требования без проблем, а вот вместе не особо.
                                                                                                                  • 0
                                                                                                                    Вот наконец адекватный на мой взгляд комментарий, наверно самый адекватный из тех что видел за все время.

                                                                                                                    • 0

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

                                                                                                                      • 0
                                                                                                                        ну иногда бывает нужна именно своя синхронка, с этим ничего не поделаешь. Вот например та же Jira — там встроенные внутренние кеши нескольких уровней, сложные воркфлоу тасок, с плагинами, синхронизациями, паралельными потоками. Целый ад, который через db+cache+worker pool будет очень круто скрипеть на поворотах. Очень далеко не все можно через базу нормально разрулить. Хорошо если у вас просто большой навороченный веб сайт с интеграциями(тут питон отлично), но когда начинается 100500 возможных логик в одной коробке, и это должно работать как часы под нагрузкой, то нормально это можно решить только на уровне приложения. А это еще относительно «простой» и «маленький» интерпрайз.
                                                                                                                        • 0
                                                                                                                          Если это GUI или нужна высокая скорость, то не решаеться таким образом.
                                                                                                                  • 0
                                                                                                                    1) Максимальный срок действия стандарта любого языка — 5-6лет, откуда 10 взялось?
                                                                                                                    5) Это что за извращение? Сложности ради сложности, зачем?
                                                                                                                    • –1
                                                                                                                      1. «C» существует и здравствует десятки лет. C++ c Java тоже не молоды. Python, PHP в районе 15-20, смотря от какой версии отталкиваемся. Да, мой любимый Delphi умер, но .NET Winforms по сути его продолжение, .NET создал тот же человек что и делфи.
                                                                                                                      5. Я имел ввиду возможности платформы. На Python рисковано писать сложное GUI, или использовать в проекте с командой 100 человек. Компилируемый язык здесь подойдет значительно лучше.
                                                                                                                      • +1
                                                                                                                        1.Так, то ты говоришь о актуальности в плане стандартов(Python2,Python3), то в плане существование языка. C++ — раз в 3 года обновляется, java тоже часто, Php — я молчу, если говорить о стандартах.
                                                                                                                        5.Соглашусь
                                                                                                                        • 0
                                                                                                                          1. Точно не знаю про C++, но Java и PHP не ломает внезапно обратную совместимость. Скажем я поддерживаю легаси систему, которой более 10 лет. И она работает на PHP5.6. Отчасти от сюда и исходит уродство PHP, и ненависть разработчиков, и с другой стороны удобство для бизнеса. Вот скажем заказчику с этой легаси системой все равно, что внутри она страшная и устаревшая, она работает, решает их задачи, и заниматься переписыванием они не хотят.
                                                                                                                          • 0
                                                                                                                            C++ что-то там удаляли и опять же Python в этом плане лучше, они не поступают как PHP, ну и не портят прошлый код, а тупо сделали две версии — за что им огромная благодарность, а не попытка «Python плох из за двух версий», ведь по сути две версии это хорошо, первая для старого кода, а вторая для нового. Будет неудобный код — заказчику тоже будет плохо, ведь кодеры будут дольше делать, а это время
                                                                                                                            • 0
                                                                                                                              C++ что-то там удаляли

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

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