Pull to refresh

Comments 255

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

А с автором случилось то, что он учил Python. Но работы по нему не нашел. Пришлось выучить ещё и Java. habrahabr.ru/post/322332
О, так это тот же автор. Так там в комментах вполне детально все это разобрали, и конкретно к питону ситуация не имеет особого отношения.
UFO just landed and posted this here
Очевидно, это был сарказм.
Например что бы забекапить проект, мне надо просто заархивировать папку, и не надо думать, а что если пакет будет не доступен через 5-10 лет.

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

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

одно дело инсталировать новую систему, а другое возиться с легаси.
Просмотрел пару страниц вакансий по питон, часто это LAMP (PHP), Python как один из доп. языков.
Нашел случайно инфу от гугла:
youtu.be/Qt1_atU_Qsg?t=134
Нету времени слушать, где они говорят о цифрах, но по ссылке инженер google говорит, что php самый популярный вэб язык.
т.е. плюс одно частное мнение. Против TIOBE не катит.
1. А в чем проблема то с 2 и 3? вышла новая версия языка, больше и веселее. Язык активно развивается. Чем это «подрывает» доверие бизнеса?
2. Прекрасно IDE все подсвечивает. Если у нее возникают сложности, используешь аннотации. Да, конечно если делать всякие стремные фокусы, то тут IDE начинает офигивать. Ну так не надо их делать без острой нужды. А ежели она есть, то тут спасибо языку что это все таки можно сделать.
3. В джанге нет аякса, и не особо круто добавляются виджеты по одной простой причине — это фреймворк для бекенд, а не фронтенд разработки. То что там есть виджеты, это просто вишенка на торте, а не торт. И с каких пор в джанго «код не отвечает современным требованиям разработки»? это вообще что такое?
4. В питоне нет обилия CMS, потому что нафиг они там сдались. На питоне не клепают интернет-магазины за 100 рублей. Для этого есть PHP. А фреймворков ровно столько, сколько нужно, на любой случай есть подходящий. Что такое «скрипты для вэб» это я вообще не понял. Стандартная библиотека питона сама по себе на половину «скрипт для вэб».
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 этого не может.
1. Ну хотеть не вредно. В ИТ вообще очень мало чего, что сохраняет свою актуальность 10 лет. На минуточку:
Python 1.0 — январь 1994 года
Python 2.0 — 16 октября 2000 года
Python 3.0 — 3 декабря 2008 года
питону второй версии на данный момент, на минуточку, 17 лет. А он по прежнему в использовании и поддерживается (последний релиз Python 2.7.14 2017-09-16). Куда уж больше?
2. «я не уверен что ничего не поломалось», или «у меня постоянно что то ломается»? Я вот вполне уверен. А для всего остального есть тесты.
3. Это кто вам сказал что должна? Бекенд ничего про виджеты не знает. Когда вы на бекенде всандаливаете виджеты, то это уже бекенд и фронтенд в одном флаконе. Кто вам сказал что джанго не умеет в REST я вообще не знаю. Все там есть. И при чем тут django и аякс вообще? Еще раз, джанго это фреймворк для бекенда. Ему глубоко фиолетово как на фронте идут запросы отправляются, синхронно или нет.
4. На CodeConyon нет скриптов на питоне по той же причине, почему PHP скриптов нет в PyPy. Это площадка для продажи PHP скриптов, что там делать питону? Да и на какой фиг продавать «скрипты»? В мире питона такой фигней не страдают. Скрипты шарят на гитхабе и pypy. Там их больше чем дофига.
Причем тут зоопарк технологий? Если вы продаете сайт на 10 страниц на вордпрессе, к разработке сайтов это не имеет вообще никакого отношения. Это настройка и администрирование, а не разработка. Разработчики этим вообще не занимаются, этим занимаются администраторы.
6. Так, кхм. А что надо сложно то? У каждого инструмента свое применение. Писать сложный, но вполне обычный веб сайт на гибернейт, ну это прямо скажем, стрем. Как и писать большой энтерпраз на питоне или пхп. Можно конечно, но зачем? Это, впрочем, не мешает в большом интерпрайзе писать на питоне отдельные компоненты.
И что не может питон, я не понял? писать плагины для PHPStorm, что бы помогать писать на PHP? Серьезно? На питоне можно писать практически что угодно, включая полноценные десктоп приложения. Было бы только зачем, это не его область применения. Но некоторые даже это делают и вполне успешно.
1. Второй версии — 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 более экономически выгоден.
Как и писать большой энтерпраз на питоне или пхп. Можно конечно, но зачем? Это, впрочем, не мешает в большом интерпрайзе писать на питоне отдельные компоненты.
Не бывает, что в большом «энтерпраз» используют только один инструмент, всегда зоопарк, если вам кто-то скажет обратное — значит там «энтерпраз» не такой и большой.

Можно конечно, но зачем?
Чтобы поиметь плюсы питона? (быстрая разработка), многие вашего же мнения, но я так не разу и не видел дельных аргументов, имхо это маркетинг оракла и java разработчиков.
UFO just landed and posted this here
Про преимущества функциональных, строго типизированных языков всё верно (пример истории успеха).
UFO just landed and posted this here
Ну про зоопарк — что правда, то правда. Потому я и написал, что на питоне можно написать отдельные компоненты. Но основа почти всегда Java/C#. И дело вовсе не в языке, а в наличии готовых решений. У питона для ынтерпрайза особо нет ничего, и это убивает скорость разработки на корню. Также там иногда возникает реальная потребность в натуральной многопоточности со сложной синхронизацией, и что бы все это при том шустро работало под нагрузкой. Тут питон не особо подходит. По отдельности эти требования без проблем, а вот вместе не особо.
Вот наконец адекватный на мой взгляд комментарий, наверно самый адекватный из тех что видел за все время.

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

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

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

Поддержка заканчиватся, а софт бизнес не будет переписывать. Выпуск 3 версии был большой ошибкой, это даже разработчики сами говорят.
Факт в том, что фреймфорки и CMS на PHP множатся как грибы, то есть есть огромное комунити.
Выпуск 3 версии был большой ошибкой
С чего это? python 3 лучше по всем* фронтам, а Гвидо говорит что это самый лучший питон за всю историю.
Это слова одного инженера из Microsoft, который является по совместительству core разработчиком Питона.
python 3 лучше по всем* фронтам

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


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

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

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


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


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

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

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


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

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

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


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

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

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

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


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

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


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

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

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


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

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

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

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


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

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

Тут кстати вопрос, является ли вообще 100500 фреймворков плюсом, когда тебе принесут на поддержку очередной проект!
Вот скажем недавно принесли, полет наормальный.
Дело не в 100500 фреймфорках, а в том что язык развивается и он популярен.
Я просто скажу одно слово — Битрикс.
Ну я говорил про вэб, наверно не очень отчетливо. Конечно для административных задч и вычислений Питон подходит отлично. Поэтому там и плодятся либы для вычислений.

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

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

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


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


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


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

Да, согласен.
Смысл в том, что Python боготворят. Хотя это просто ещё одна технология, у которой есть плюсы и минусы.
Если бы я делал ERP, то сам выбрал бы либо Python, либо Go.
Хотя бы десять лет? Вторая ветка питона без синтаксических изменений до последних релизов проживёт до 2020, а релизнулась в 2000. Двадцать лет вообще мало языков без изменений проживает. И у тем более бизнесу оно должно быть приятно — код, написанный в начале века, работает до сих пор. И будет работать дальше, никто не мешает брать интерпретатор 2.7 хоть в 2100-м году.
Я не говорил язык, я говорил Python, PHP, подразумевая тезнологию, платформу. Первая обратно-несовместимая версия Python 3.0 была выпущена 3 декабря 2008, прошло почти 10 лет, а 2.7 ещё используется. Почему? да потому что бизнесу пофиг что там внутри софта, никто не будет переписывать его, что бы сделать более «правильно». И это большая ошибка разработчиков Питона, и я считаю отчасти это причина того, что Питон хоть и популярен, но не первый, хотя мог бы.
С одной стороны вы говорите что питон плох, потому что под новую версию нужно все переписывать, и тут же говорите, что питон плох, потому что он не заставляет ничего переписывать под новую версию. Выберете что-нибудь одно.

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


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

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

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


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

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


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

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

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

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

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

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


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


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

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


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

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

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

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

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

Моя цель этой дискусии сказать, что выражение «Python рулит, PHP ерунда» в корне не верно. То есть есть крутые языки я не спорю. Но на мой взгляд Go и Rust интереснее питона с точки зрения программиста. Но с точки зрения применимости лично для меня Python лучше, а ещё лучше PHP.
UFO just landed and posted this here
Дотнет НЕ лучше хотя бы потому, что его нет на серверах. Разумеется, речь о *nix. Да, есть Моно, но это скорее костыль. А питон одинаково везде отработает как надо. Да, не столько быстро, как компилируемая программа, но в качестве «калькулятора» он таки быстрее — пока программа пишется, компилируется, отлаживается, питон уже выдаёт результат.
UFO just landed and posted this here
Есть dotnet core. Компиляция и приведение типов умеет свои плюсы и минусы. Ещё не смотрел, но вроде теперь на dotnet core можно писать под мобилы (Xamarin).
UFO just landed and posted this here
Нууууу… Про микроконтроллеры с одной стороны верно — нет спроса и предложения. С другой стороны, нет ничего, что я не мог бы сделать на Распберри с Питоном, что доступно на сях Ардуины. Мне кажется, именно поэтому и нет толком запроса на другие связки, малина+питон = киллер всего и вся, дёшево, сердито, мощно и безумно гибко. Хоть кластеризуйся до бесконечности. Ардуины так не умеют при всей своей популярности. Не просто так на МКС болтаются именно Малины, а не *дуины.
Занимаюсь не маленьким проектом на Python + wxPython и не согласен, что Python не подходит для настольных приложений.
Думаю автор имел ввиду малое количество предложений по работе, связанных с wxpython. Сам я все свои домашние программы для себя делаю с использованием wxpython. Очень и очень даже, а вот в вакансиях не особо можно увидеть.

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

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

  • Зависимости. Нужно внимательно следить за используемыми модулями, есть ли они в репозиториях популярных дистрибутивов, каких версий и т.п. Если нет, то приходится обходиться без них или бандлить, а это всегда лишняя головная боль и вообще плохо.
  • Не всегда простой и тривиальный деплоймент. Пользователи часто просят, типа, «дайте нам тупо экзешник.» Питоновские фризеры проблему отчасти решают, но это лишний геморрой не без своих собственных ограничений. (Хотя есть примеры хорошо упакованных питоньих программ, типа той же youtube-dl, которую ты качаешь одним файлом для любой системы, и он всегда работает; ну и с тех пор появились вещи типа нуитки.)
  • Фейл с Python 3 Наличие в более-менее активном пользовании двух разных веток питона, причем в разных дистрибутивах дефолтной (на сегодня) может быть одна, а в другой — другая. В общем, это еще один источник несовместимостей, ограничений на используемые API, модули и т.д.
  • Интерпретируемость и динамическая типизация. Нужно как можно больше работы выносить из рантайма и перекладывать на компилятор; отлавливать ошибки как можно раньше. Грубо говоря, шутка про то, что «если программа на хаскелле/расте/ML компилируется, то она работает» часто оказывается правдой, а про программу на питоне, пока её не запустишь, мало что можно сказать.
Фейл с Pytohn 3 — выбора не было, по другому бы они и становились в зависимость перед старым старым python'ом или сломали весь старый софт. За это их бы кто-то, да повешал. А 4ое фисят же уже, с помощью аннотаций
Кстати, подскажите, а вы уже пробывали нуитку. Как она в целом, работает?
Да, в целом, работает, даже довольно крупные многомодульные программы переваривает (вроде бы там какие-то мелочи меня немного расстраивали, но деталей я уже сейчас не вспомню, к тому же, она активно развивается). Но в продакшене её использовать так и не довелось: я решил «соскочить» с петона, а старый код фризится у нас по-старому и майнтейнится сейчас не мной в основном.
А на что соскочили с python? Я вот не представляю, на что можно после него переходить. Разве что какие-то nim или crystal.
Пока этот вопрос открыт. :-) К счастью, у нас питон не основной язык, нужен от случая к случаю. Так что есть время осмотреться, но, думаю, это будет что-то компилируемое (с нормальной системой модулей и действительно раздельной компиляцией), сильно статически типизированное, с compile-time проверками как можно более всего, и при этом удобное для применения в продакшене (возможность быстро «въехать» в язык новому программисту, удобный FFI, простота отладки). Что-то типа ATS, ML (OCaml?), Rust, возможно, кстати, что и Nim или даже вообще Ada.
«если программа на хаскелле/расте/ML компилируется, то она работает» часто оказывается правдой
Не так, «если программа на хаскелле/расте/ML компилируется, то она запускается», если программа компилируется и запускается — не значит что она правильно работает, откройте любой популярный проект на github и увидите большой bug-list.

Проблемы «компилляции»/типов — это очень незначительная часть багов (в питоне), поэтому статическая типизация в этом плане от багов не спасет.
UFO just landed and posted this here
Как-то не нашел в статье двух областей, исключительно ради которых использую питон. Три раза перечитал — нет, не нашел.
Это математическое моделирование, решение численных задач, обработка данных, в общем, бесплатная замена матлабу.
Это скриптописание, как замена bash и cmd — обработка файлов, всякого рода задачи администрирования на своем ПК.
Считаю, что это сильно натянуто, потому что администрирование своей домашней машины — ни разу не девопс, и скриптописание — далеко не только администрирование. Я, например, файлы телеметрии в дурацких форматах (типа текстовых, разделенных табами) перегоняю во что-то приемлемое для отображения — где тут девопс?
Забыли упомянуть Odoo (OpenERP).
Но денег там тоже мало.
PS: насчет кросс-платформенности PyQt / PySide.
Если использовать QWebView + интерфейс на HTML/CSS/JS + собственные шрифты, то приложение будет выглядеть идентично (не считая заголовка и сглаживания шрифтов).
Все очень просто.

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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


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


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


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

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

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

На счет фреймовка, заказчику надо решение безнес проблем за минимальную цену. Я это ему даю. Со всему клиентами я работаю годами, и проблемы возникат как раз с перемудреннуми там, где не надо вещами. PHP и есть сам по себе фрейвок.
UFO just landed and posted this here
В том и фишка, что у PHP есть Wordpress, Drupal, Joomla, PrestaShop, OpenCart и куча других, готовых решений с которыми я не работал.
Да, питон имеет хороший апи, и для разработчика он более приятятен. Но если скажем сам веду бизнес, то мне надо иметь возможность иногда поставить Wordpress, иногда Joomlu. Я много раз указывал в этом треде, что как для предпринимателя, PHP более экономически выгоден, прежде всего по причине широкой распространнености и наличия готовых решений для любо ситуации в вэб разработке. Разумеется PHP страшен, но с точки зерния бизнеса, PHP более экономичсески выгоден по моим разчетам. Конечно у меян есть право на ошибку, как право на аольтернативную точку зрения.
UFO just landed and posted this here
ну если говорть про конкретно приведенный пример, то да. в PHP работа с числами это серьезная проблема, брать PHP для большого проекта с вычислениями можно только в крайнем случае.
Но Wordpress написан на PHP, есть Joomla, которая на мой взгляд, имеет крутую экосистему, есть PrestaShop, для более серьезных вещей, и OpenCart для магазов попроще. DjangoCMS, интересная вещь, но это единственное достойное из решений на Python, которое я нашел.
А если ли на Python достойный интернет магаз?
UFO just landed and posted this here
1. Хочу ещё раз сказать, с точки зрения программиста, питон конечно лучше. Но я смотрею с точки зрения бизнеса, так как сам предоставляю услуги клиентам. Если ко мне приходит клиент, и говорит, мне нужно магаз, за сколько вы можете сделать. Я должен дать такую цену что мы и себе не в убыток, и клиент остался доволен. Я беру готоврое решение.
2. Я работал с PrestaShop и OpenCart. на мой взгляд — отличные продукты. OpenCart летает, структура понятна и проста, но есть проблемы с расширением. PrestaShop сложнее, но намного более навороченая.
3. на счет тормозит. берем сервак помощнее и ничего не тормозит. С точки зрения скорость PHP и Python примерно одинаковы. Писал идентичный код, который делал относительно сложные вычисления. разница в выдаче с сервера 2 мс между Питоном и PHP. Притом что PHP крутился на Apache. Самый быстрый был .NET Core
UFO just landed and posted this here
да, верно. я лишь высказал свое мнение. Сразу в первом комментарии, сказал, что это мое мнение. но адепты секты питон понятно сразу слили карму. Вот мне интересно, почему у питонистов так сильно бомбит, когда говорят что питон гавно. А думаю потому что им страшно, и лень учить много языков.
Делать быстро и говнокодить не равноценные понятия. На PHP делаеться в целом быстрее. Хотя код писать на Python процентов на 15% быстрее чем на PHP, но если мне надо понять как работают кишки, и открываю код фреймвока, и в течении 5-15 минут понимаю что, к чему. В Django мне было сложнее, хотя возможно из-за меньшего опыта, но в большей степени из-за динамичной структуры языка.

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


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

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


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

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


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


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

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

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

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

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

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

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


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

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


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

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

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

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

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

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

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

Гугл с вами не согласен. Уж наверное эта компания понимает в бизнесе по больше вашего. При поиске фразы «google uses php» мне вылезает статья «Why is Python preferred at Google over PHP?».
Это было в моем первом комментарии. Типо вот альтернативная точка зрения, сделал анализ, вывод для себя «PHP лучше». Какие вопросы, прочитал, не согласен, пошел дальше.
Я не знаю, какой ваш комментарий первый.
Ещё питон очень широко используется как инструмент для исследований в ИБ. Фактически стандартный язык для написания POC (если нет следующих из задачи ограничений на язык программирования). В вакансиях на ИБ-исследователей часто указывается в пожеланиях.
Вы написли что платформа Twisted признана устаревшей. Есть какие-нибудь факты это подтверждающие?
Сам фреймворк живее всех живых, я даже помню выступление одного core-разработчика, где он доказывал, что у них все круто и прочее. Проблема заключается в том, что aio сделали стандартом в питоне, и парадигма aio сильно отличается от того, что предлагается твистедом. В итоге, сейчас основной фокус комьюните идет на aio, в том числе и фреймворк aiohtpp — от нашего украинского разработчика.

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

На мой взляд Twisted — это теперь, в первую очередь, не механизм, а та гора протоколов, которую он поддерживает. Конечно использование голого asyncio выглядит превлекательней, но со временем разница может стереться
>> В прошлой статье мы уже обсудили с вами…
А ссылочку то можно?
Добавил, а так у меня в профиле всего две статьи, что в общем-то найти не сложно.
полностью проигнорирована такая область (пусть они и небольшая) разработка графического контента — кино, реклама, игры, 3д, трек композ всё такое. Там питон — стандарт де факто из инструментов кастомизации — от написания скриптов до полноценного апи и возможности писать плагины. У большинства DCC есть альтернативы в виде своих кастомных языков (MEL, MAXscript, Hscript) или С++ api, но один или более вариантов питон интерфейса есть везде. И соответственно при необходимости кастомизировать дело редко заходит достаточно далеко чтобы браться за С++, так что питон тут не просто популярен, а обязателен для какой никакой серьёзной работы.
Не совсем, тот же Panda3D и PyQT (про которые я рассказал) — это продукты компании Дисней, как раз из области обработки изображения, графики, GUI и прочее. Но опять же у нас я под это вакансий практически не находил.

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

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


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


PyQt PyGTK wxPython

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

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

Как справедливо упоминали уже в комментариях, применение Python связанно не только с разработкой ПО, как такового. Наверное, это один из не многих языков программирования, который широко используется непрограммистами в самых различных областях науки, техники и вообще бизнеса. Соответственно, эти направления, практически, полностью упущенны в статье. Могу предположить, что если посчитать количество людей, использующих python в своей работе (включая экономистов, физиков, медиков, инженеров и т.д.), то выйдет довольно неожиданная картина в рейтинге популярности ЯП.
да, холивар тут знатный получился. какой-то троль утверждал, что PHP лучше питона.
Есть у кого версии почему питонисты так преданы своему идолу, почему они готовы доказывать в десятках комментариях, и яросно минусовать того, кто говорит что Python хуже PHP для вэб?
таких тут мало, просто тут оратор один за ПХП, сам не знает того что говорит
Я не приверженец Python, если что. Мой язык это C#
Имеем проект разработки промышленного десктопного ПО для численного моделирования физических процессов на Python. Вычислительное ядро на С++, пре/пост процессинг на Python3+PyQt. Большие массивы входных и выходных данных, большие таблицы, много графиков, выгрузки отчетов в офисные форматы.
Вычислительное ядро на С++, пре/пост процессинг на Python...
Мне кажется очень логичная связка для вычислительно тяжёлых задач, где к тому же требуется не тривиальная обработка входных/выходных данных (загрузка/выгрузка в разные форматы, визуализация, статистическая обработка результатов и т.п.)
Спасибо за статью. Все по делу.
Нашел 2 опечатки: «одна из самых хайповы» и «микро асинхронных фреймворк».
Sign up to leave a comment.

Articles