@@mikep541 слево от смотрящего есть светильник, слево от светильника вдоль стенки шкафчика на полке стоит кнопка, между ними лежит какойто пульт или тетрис
Я начинал свой путь в программисты с JavaScript. Мой случай не уникален, но это как раз тот случай, когда не человек выбирает ЯП, а ЯП выбирает человека))) Мне просто попалась в руки книга "JavaScript для детей", и я начал по ней учиться. Сначала ничего не понимал, но спустя чуть больше чем год я получил первый оффер в компанию :) И вот, проработав немного как Node.js разработчик, я столкнулся с Python. К Python у меня максимально тёплое отношение. Для меня этот язык приятный, конечно не совсем с привычным синтаксисом после JS, тем не менее это замечательный язык. Одно время хотел перейти на него, чтобы писать бек энд на нём, но т.к. у меня опыт в коммерции в основном JS\TS, то всё, что мне предлагали это было интернатура и Джуниор позиция, а я не мог себе позволить "проседать" в зп, при наличии семьи. Поэтому до сих пор так и не поработал с ним в коммерции, хотя все пэт проекты, все проекты вне работы для себя, я обычно пишу на нём:)
Я в шоке как можно 10 лет писать на одном языке и так его и не узнать, вы как так живёте то вообще? У меня дети которых к ЕГЭ готовлю больше вашего про питон расскажут, да и про плюсы тоже
А какой смысл зная JS писать на питоне бэкэнд (при живых node, deno, bun и т.п.) !? Чтобы все тормозило и чтобы все время переключаться с языка на язык и не писать изоморфные JS приложения?
@@tvortsa почему же всё должно тормозить? По Вашему, если в синтетических тестах Python медленнее, то в реальной жизни он настолько медленный, что те, кто им пользуются, мягко говоря не умные люди или как? В реальном мире, когда дело не касается веб разработки, а не десктоп и мобайл, так же есть такие ограничения как: работа сети, работа базы данных, нагрузка на сервера, мощность серверов и т.д. Если их учесть, то по факту, разницы между приложениями на PHP и Java пользователь разницы не увидит ( если конечно, это не касается мощной обработки данных, которые происходят на сервере после запроса), ибо разница в долисекундах будет минимальной. Плюс, если человек не умеет писать высоконагрузочные системы, его не спасёт ни Go, ни Java. А насчёт почему Python? Ну скажем так, какой-то период времени, когда я следил за вакансиями, проекты, которые писались на Python, для меня были более интересны. В то время на Node.js предлагалось писать проекты типа: микрозаймы, криптокошельки и гемблинг. А мне это не интересно. Поэтому смотрел на то, что происходит на рынке и с другими направлениями. И ничего плохого не вижу, когда человек переходит с одной технологии на другую. Это инструмент для решения задач бизнеса, а не вероисповедание) ИМХО
Сейчас уже сложной найти работу в вебе на синхронном питоне. FastAPI сильно увеличил применяемость асинхрощины в питоне. И случилось это уже леn 5 как. Производительность питона регулярно улучшается и во многих задачах, для которых он регулярно используется, уже не сильно уступает плюсам или JS. Асинхронность питона тоже постоянно допиливают, так как видят в этом потребность. И в ближайшем обновлении 3.13 планируется сильно ускорить работу JIT компилятора. Питон уже добрался даже до микроконтроллеров - специальная сборка MicroPython для работы на платах Python Circute - аналог Ардуино. Но конечно это все только для пет проектов, а не промышленной разработки. Хотя кто знает во что это может вырасти. Так что в след за ростом популярности язык тоже очень сильно растет и становится лучше.
"Производительность питона регулярно улучшается и во многих задачах, для которых он регулярно используется, уже не сильно уступает плюсам" - для числодробилок ситуация наипечальнейшая, если сравнивать нативный питоновский код и плюсы.
Очень нравится этот язык. Учил его примерно 2 месяца, сейчас забросил из за учебы, но не перестал писать. Самое удивительное, это то, что мой первый проект это не какой-то калькулятор или тупо переписанный код, а действительно полезный тг бот, который я загрузил на сервер и который приносит мне небольшую денежку. Летом хочу полностью переписать своего бота под айогрм, научится парсингу и написать простенький сайт для рекламы моего бота. Давно мечтал быть "бизнесменом", косвенно моя мечта сбылась, но я на планирую на этом останавливаться. Если мой старый бот в несезон приносил мне достаточно хорошую прибыль (как для 11 классника), то новый бот, надеюсь, увеличит эту прибыль в разы.
От души 😂 Особенно развеселил момент о боли фрилансера, когда заказчик начинает выкручивать вам руки и с каждым днем меняет тз 😂 Как то так сложилось, к программированию пришёл с сайтов для мобильных телефонов wap версии, подвернулся именно php и с головой затянул меня, это было в 2007 году (17лет в php 🤔), много чего написал, 90 процентов из этого уже не активно в сети (жаль даже) Недавно посмотрел интервью Дурова, где он рассказал о своих проектах и что бэк у него на пайтоне, хотя вк он писал на php. Что-то так вдохновило меня посмотреть пайтон и он мне зашёл , совершенно понятный синтаксис, локоничен круто. Правда эта точка с запятой не знаю как победит желание оканчивать ею 😂 Плюс решил залезть в java и вообще писать что либо для андроид 😮 Удивило что можно в андроид студии просто расставлять объекты графически -это так просто.... Я 17 лет не интересовался ничем кроме php, sql и языки разметки, сам в шоке...
Решал подобную задачу по обработке видеопотоков с помощью нейросети. Первое решение написанное исключительно на python несколько лет отработало на проде, хотя и справлялось с нагрузкой в несколько сотен потоков, но потребляло кучу памяти и нещадно грузило процессор) Сейчас реализовал сервис получения и обработки кадров на плюсах, день и ночь просто, памяти не ест, проц не бьётся в полку, производительность решения возросла. В общем, для прототипирования и скриптования простой логики python хорош, для hi-load лучше что то компилируемое)
как оно могло быть написанно исключительно на питоне. быть такого не может, вы там с нуля gradient descent с матричными операциями что ли имплементировали. почти любой deep learning фреймворк из популярных имеет ядро на плюсах. и обертки на питоне. модели вангую вы до сих пор готовите на питоне. не поверю, что у вас там тренировка на плюсах. и вот в этой доменной области заслуга не столько языка, сколько математиков-программистов , которые за вас самую сложную работу и сделали. попробуйте с нуля сделать подобную архитектуру модели плюс тренировку модели, плюс быстрый инференс(где нужно быстро выполнять матричные операции) на плюсах и скажите сколько это займет времени написать(без использования всех этих lapack/openblas). но то что в вашем примере безусловно говорит не в пользу питона, это мультипоточность/мультипроцессорность при наличии огромной постоянно нагрузки. ну по моему это и так все известно. тут нет никакой новости, что питон один из худших языков в concurrent programming. а матрички считать, ну разницы особой нет, что вы в плюсах torch вызовите . что в питоне, ну наверное с небольшим оверхедом за счет интеропа с питоном. но все операции будут выполнять вообще одним и тем же скомплированным ядром (что там будет огромный файл libtorch.so, что там. про CV библиотечки так тем более, нет ни одной чисто питон библиотеки, которая в индустрии используется)
@@TheDelwish Доброго времени суток! Ни кто и не говорил про реализацию на чистом Python, особенно того, что касается матриц, там, естественно, везде сишные модули, будь то numpy, pytorch, или даже Opencv. Речь шла о том что "гонять" эти самые матрицы изображений между процессами приходилось при помощи стандартных библиотек python, типа multiprocesing queue или shared memory, что роняет производительность и прочее. Что касается разработки нейросетевых решений, проверки гипотез, обучения нейросеток, скрипты обработки датасетаов, это все python, без него не куда, отличное быстрое прототипирование. Ну и на проде python отличный инструмент для скриптовой обвязки тех же сишных модулей
Простота питона зависит от того кто код пишет. Можно такую наркоманию там развести что устанешь разбираться. Столько сахара что диабет может развиться. Мне кажется Go как раз как антидот после питона. Но для питониста он и правда поначалу сильно непонятный
Только это надо или быть лидом и заставлять других писать код как ты считаешь правильным, или искать такую команду, детально расспрашивая на собеседовании про их практики. С го тоже можно наколбасить ещё тот код, но возможностей для этого поменьше.
@@olegssh6452 линтер не решение проблем, если человек пишет методы по 300строк с кучей аргументов, не соблюдает принципы. И что вообще значит "писать код как ты считаешь правильным"? Есть принципы (SOLID, DRY, KISS, YAGNI), метрики кода, паттерны! Есть книги - Чистый код, Чистая архитектура и т.д.. Нет такого "считаешь правильным"! Соблюдаешь правила и все ок! А линтер это про то, как скобки у блоков кода поставлены, как оформлены комментарии
Спасибо за видео, очень легко слушается и очень понятно все объясняется до такой степени что можешь ухватить суть идеи даже если не особо разбираешься в программировании.
@@megafalos850 дурачат людей, которые никогда не нюхали кодинг. Им говорят что все легко и продают курсы). Оно то и правда легко, если человек настроен на алгоритмы. Потом люди доходят до ООП и охреневают. Но это уже другая история А так, то конечно Леше больше спасибо за познавательное видео. Никакого сарказма. правде большое спасибо🔥🔥🔥
Но это чистая правда. Для человека, который решил на закате молодости войти в айти, Питон может показаться сложноватым, но если ему показать вместо питона плюсы, то он сразу бросит идеи "вайтишника" и убежит на стройку или завод. Поэтому, да, Питон - очень простой. Как и Луа. И как любой другой динамически типизированный скриптовый язык
@@akaikangaroo Ну, плюсы и самые сложные в освоении. Если что-то проще плюсов, это не значит, что это очень простое. Речь шла о разных возможностях питона, о которых многие и не знают. Большинство из использующих язык (даже не новичков) никогда не писало генераторной функции, а о каких-нибудь метаклассах и асинхронных контекстных менеджерах и не подозревает. Я не думаю, что это очень просто, там есть что разобрать. Асинхронщина точно не тривиальна. Но это не только Python касается, хотя она здесь довольно грамотно сделана. Другими словами, Python прост, когда его используют только как скриптовый язык, но такие задачи и не требуют сложных инструментов языка. То есть, автор коммента по сути прав.
@@DenisLeadERTV если только руби, js и php. Но не факт что Си++, АСМ, раст. Помимо освоения языка надо еще осваивать оценку сложности алгоритма, паттерны и принципы, а это дело уже не малое. Прочитайте Чистый код, осознаете, поймете и сможете использовать, считайте навыки точно есть
почему-то мало кто упоминает про Cython, очень хорошо подходит под высокопроизводительные задачи это код в стиле Python *.pyx со специфическими операторами от языка С, который компилируется в C и подключается к обычному пайтону как модуль
Не люблю Питон исключительно из-за того, что сейчас его все любят и все на нем пишут. У меня дух противоречия включился. Но мне можно - я не программист, а так, балуюсь понемногу
Мне очень понравилось в питоне кроме упомянутой простоты работы со строками встроенное снятие ограничений с размера числа. Я не встречал другого языка, в котором число может быть любого размера - вообще без ограничений. Для своего интереса просто считал задачку, в которой мне нужно было возвести числа в степень от 1 до 100.000 - и в питоне для этого вообще никаких дополнительных действий/структур данных не понадобилось - просто прямая логика в две строчки. Поэтому наверное он так популярен среди непрограммистов и околопрограммистов.
А я только изучаю Си, вот эта проверка на clang-format и valgrind помогают очень сильно. В принципе нормальный язык. Скоро (через год) перейду на плюсы.
питон для меня это как дополнительная операционная система, с фри программами в библиотеках, подсел на анализ данных для своей организации, работаю коммерческим директором. через апи для chatgpt вообще бомба.
Очень интересный опыт, спасибо что поделился, Алексей! Что до аннотации типов - надо, надо переходить! Категорически надо! Если старую кодовую базу переносить долго и может быть сложно (как минимум, в плане времени) покрыть аннотациями, новый код надо аннотировать полностью! Совершенно зрелый механизм, и если не с mypy, то можно начать (и в принципе закончирть) pyright'ом. Я придерживаюсь такого правила - аннотации типов не пишу только в реально коротких скриптах питонячих. Если система хоть сколько усложняется или планируется усложняться / расширяться (>1 модуля) - не аннотировать типы -- преступление
В первый раз увидел код на пайтоне когда в начале 2000х ковырялся в игре Blade Of Darkness. Был удивлен, увидев кучу игровой логики в виде легко читаемых скриптов.
Ну питон изначально под Datascience разрабатывался. А насчёт простоты изучения, ну например, стоматолог или повар если начнёт изучать питон с нуля, он прикурит. Но мне было проще так как ранее в 2000-х писал на делфи и visual basic и как-бы имею представление по построению и структуре кода, что куда и как, кто где лезет и хранит объекты в памяти. А питон хорош еще тем, что есть куча уже готовых библиотек, тот-же Bluetooth модули давно есть. Очень удобно например сделать автоматизацию работы теплицы с открытием заслонок на сервоприводах, автополив огурцов и помидоров, контроль температуры, расписание и т.д. это очень интересно, + ардуино, так вообще что угодно слепить можно)
Прям очень знакомая история была и у меня. Делал я сайты на php и когда понадобился скрипт автоматизации (для свои нужд - генерировать образы DVD-дисков для резервного копирования фотографий) я написал на PHP, но в этот момент понял, что PHP не для этого. Поэтому следующий проект делал на python. Языка я не знал, но понял, что он для этого идеален. И не ошибся. Более того, до сих пор пересматриваю исходник. и не вижу к чему придраться. Там скрипт поднимал и останавливал виртуальные машины, подключался к их сетевым дискам проверял внешней программой контрольные суммы и так далее. Про это производительность была совершенно не принципиальна (большую часть времени скрипт ждал, когда поднимется виртуалка). Но потом я решил посчитать и контрольные суммы не внешней программой (написанной на C), а сделать функцию на python. Я перевел код с C на python попутно существенно оптимизируя его и что же? Замедлилось в 40(!) раз. В общем, битовая арифметика - не для python. (я все равно выложил на github результат, жалко было потраченных усилий, но сам им не пользуюсь) Потом было еще куча проектов на python, но на одном я сломался. Проект 10000 строк исходного кода - синхронизация файлов между папками со всякими проверками этих самых файлов. Была накручена архитектура с потоками и тут выяснилось, что GIL, будь он неладен, приводит к затыкам системы. При чем это не вопрос производительности - она в этом проекте не существенна (проверки во внешних системах занимали гораздо больше времени). Но в совершенно случайные моменты система просто останавливала потоки. Попробовал перейти на процессы и да, как и в этом видео - передавать данные между процессами оказалось гораздо сложнее. Итог - переписал все на Go, сохранив ключевые идеи архитектуры и все прекрасно заработало. Всякие race condition Go умеет отслеживать сам. (именно в этом виде я выложил проект на github) Так что теперь моя любовь - Go. У Go беда с программами с UI. Так что теперь смотрю в сторону Dart...
Да, все библиотеки на python, которые есть "из коробки" написаны на C. Это - numpy, math, datetime, itertools, random, os и ещё десятки других. Но непонятно, если допустим я буду извлекать квадратный корень из числа через Python, это бы выглядело так: 100 ** 1/2. С модулем math это бы было так math.sqrt(100). Вопрос, что бы выполнилось быстрее?
На Python это бы выглядело так >>100 ** (1 / 2) Всё таки про приоритеты операторов не забываем. Ну или >>100 ** 0.5. А вот с замером скорости всё получилось несколько неожиданнее и интереснее (правда тестировал это на python 3.10). Результат получился такой, что приведённая первая запись (но только со скобочками) быстрее операции math.sqrt() в 3 раза о_О
@@arthurkuznetsov618 Интересно, тогда в чём смысл использования простых модулей по типу math. Я ещё могу представить необходимость os, sqlite и многих других библиотек, но тогда теряется смысл остальных, которые можно запросто воспроизвести и не потерять скорость в процессе использования их функционала.
@@benpuls9414 math.sqrt сделали для совместимости со всеми обернутыми C функциями. Оператор ** это более продвинутая функция которая умеет работать с комплексными числами, неограниченными числами и тому прочее. То есть предпочтительнее в Python коде использовать оператор **.
Леша, здравствуйте. Спасибо за ваши видео. Если будет возможность, запишите пожалуйста видео о том, какие книги вы бы посоветовали тем, кто решил изучать программирование. Начиная от основ информатики, работы с алгоритмами и заканчивая книгами по языкам с которыми вы работали. Спасибо.
Спасибо за видео. Я писать на С начал в 89 году, потом сразу перешел на dBase, FoxPro, Paradox и С++. И меня всегда удивляли люди, которые жалуются на то, что нужно следить за освобождением ресурсов. После первых месяцев ты настолько перестаешь это замечать, что даже и говорить не о чем. Не напрягает же грамотного человека ставить точку в конце предложения. Хотя вроде и пробела и последующего слова с заглавной буквой вроде бы хватает (да часто и по смыслу понятно) для завершения выражения и начала нового. В питоне никого не напрягет закрыть файл или сокет, который был использован. Почему же освобождение памяти вызывает такую идиосинкразию? Питон очень люблю. Гениальность дизайна - то, что не отформатировано, то не работает! Трагедия в том, что красивый динамически типизируемый язык для скриптования не сложных систем пытаются засунуть в ентерпрайз с его требованиям к скорости работы, разработки и т.п.
Пишу на python лет шесть, в этом году закончил универ и устроился на свою первую работу на этом языке. За время обучения перепробовал c, c++, java, посмотрел как работают Fortran и Assembler, а первым моим школьным языком был pascal. В итоге так и не ушел с питона из-за его простоты, а остался из-за сложности и глубины)
Спасибо большое за информацию. Очень интересно. Моя история с пайтон: перед поступлением на специальность программиста, я начал искать с чего начать, какой язык выбрать. Я тогда вообще был 100% далек от темы мира языков и программирования в целом. И вот интернет выдал популярность Пайтон. Я скачал книжку (автор Эрик Мэттенс, по моему так). И все так интересно было, как новичку. В общем пришло время поступать и я поступил с очень теплыми и приятными ощущениями от этой книжки и языка в целом (понятно что я толком так ничего не понял, но не страшно). И вот после курса языка пайтон, точнее от преподавателя и метода преподавания, я полностью охладел к пайтон, всякий интерес пропал напрочь. Теперь более влекут меня JS и все что с ним связано, и с fullstack MERN в целом.
JS грязный язык. Парадигмы программирования не доработаны (например, в ООП у многих ЯП нет множественного наследования, но есть альтернативы вроде миксинов/трейтов и интерфейсы, в JS нет и этого, просто пародия на ООП), язык часто используют, обернув в какую нить новую абстракцию, формальный язык типа CoffeeScript или TypeScript, это все подтверждает его убогость, зачем тогда сам язык, если на нем не могут сразу адекватно описывать свои требования
@@КонстантинБелоглазов-р1з ну ничего страшного. Работают как-то же на нем люди😉 тем более ООР не всегда нужно. Да и всегда под рукой есть java на всякий случай.
Хочется добавить, в классах есть декоратор @property, который как-то имитирует ту самую недоступность атрибутов извне Насчёт того что простота именно кажущаяся - 100% правы)
11:50 это да. Просто посмотрите исходники того же fastapi или litestar. Типизация, дженерики... изначально язык обманчиво прост. Книга "Python к вершинам мастерства" 900 страниц весом в полтора кило :)
Меня каждый раз корёжит, когда с каждого утюга раздаётся "питон простой". Да, для задач написания скриптов непрограммистами он достаточно прост (хоть и с ньюансами). Впрочем, как и любой другой скриптовый язык. Но для области профессиональной разработки - это зрелый и довольно сложный язык, заметно сложнее тех же джавы/C#. Про гошку и вовсе говорить нечего.
@@redneck_prm5429 Ээээ окей. Ну допустим, что питухон сложнее чем решетка или жаба (хотя только от этого смех пробирает), предположим что трава хорошая и драггер честный😂 В чем он сложнее?))) Это ж недохрень из костылей))) Сложность штука относительная. Сишка вон простая, но подавляющее большинство питухонистов от нее будут слезки пускать и веревки намыливать. С гошкой же такое поделие как питухон лучше вообще не сравнивать - это небо и земля. Да и такие понятия как «профессиональная разработка» и питухон ни разу не совместимые. Что-нибудь по быстрому наваять - да. Подкостылить - да. В крупный проект - нет, любой architect подтвердит. А если и да - ну штош, обнять и плакать🤣
А я в последнеее время помимо C++ использую в основном Cython - это некоторый компромисс между C и Python. Есть типизация и компиляция, при этом сохраняется полная совместимость с Python и всеми его библиотеками. Даже несколько обучающих видео по нему записал, они у меня на канале опубликованы.
@@RaptorT1V Скажем так - полностью совместимый. Можно писать как в документации по Python, и всё будет работать. Но есть и дополнения, например, можно объявить тип переменной ("cdef int i"), аргументов и результата функции ("cdef int foo(double bar)"), определять перечисления и структуры как в C ("cdef enum", "cdef struct") и тому подобное - это повлияет на компиляцию и, соответственно, быстродействие и компактность кода. Ну и дополнительтные фишки взаимодействия с сишными библиотеками ("extern", "cimport" и т.п.) В общем, очень жизнеспособный гибрид.
@@RaptorT1V Сам удивляюсь. Прекрасный инструмент, причём далеко не новый, о котором почему-то мало говорят. Хотя он способен прекратить всякое нытьё о производительности Python.
Для небольших проектов, особенно если с нейронками - он идеален. Но что-то большое я на нем писать бы не стал. Тормоза, плюс поймаешь проблем с отсутствием строгой типизации.
У меня для сисадминских дел так и не прижился. В своё время работал в конторе где всё решалось на перле. В итоге потыкал питон и лично у меня оказалось что на перле в разы быстрее, особенно если находу надо чтото менять, хотя изначально надо затратить больше времени для изучения.
Питон простой, когда ты уже понимаешь что отвечает за что. Специально так сформулировал ) Но если ты впервые окунулся в программирование, то Питон вызовет такой же разрыв мозга или задницы (кому что) как и Джаваскрипт или C#. Когда уже понимаешь логику и знаешь команды, то написание кода в целом не вызывает проблем. На Питоне автоматизировал для своей работы кучу процессов, благодаря чему сэкономил и заработал серьезную сумму денег. Программистом себя не считаю, у меня рекламное агентство. Но за автоматизацией - будущее
Не соглашусь. По крайней мере с JS разрыв чего либо более вероятен, когда узнаёшь, что можно вполне официально и легально делить на 0, а ещё многие типы данных или отсутствие данных пустые строка, список преобразуются в число. При этом типом NaN является number. И это я рассказал только поверхностное знакомство. Но этого хватает, чтобы сильно задуматься: а хочется ли погружаться глубже в это
Самый, более менее универсальный ЯП это js, на нём можно писать фронт, бэк(nodejs) и приложения для разных платформ по типу реакт натив, электрон и тп. Но и у js есть много минусов. Поэтому если новичок хочет связать свою жизнь программированием, то лучше сразу понять что придётся понять как работает компьютер и выучить много языков для того чтобы использовать в различных ситуациях разные языки/инструменты. Кстати популярное высказывание про забивание гвоздей с помощью пассатижей или молотка, очень уместно.
Микросевисы в докере для некоторой автоматизации одно удовольствие делать на python. По поводу скорости работы, никто не запрещает отдавать некоторые процессы обработки в с++ и возвращать результаты. Если совсем упороться в скорость, то надо уходить в ассемблер)) поэтому нужно понимать что за задача, и на чем её реализовывать.
Недавно обратился к python после многих лет работы на C# для Unity, очень кайфанул от его легкости, но отсутствие строгой типизации часто приводило к выстрелам в ногу, особенно с непривычки)
мне питон зашел, не знаю как "чисто" я на нем писал, но учитывая, что у меня 4 года коммерческого опыта на js/ts/react, то достаточно быстро врубился что и как, простенький бекенд накидать труда не составило, насчет более сложных штук не углублялся еще)
Очень полезная информация для тех, кто думает: стоит ли изучить Python или лучше продолжать изучать и совершенствоваться в Java. Хотелось бы узнать Ваше мнение.
Не программист, админю, но писал на Python службу под Windows, после чего за вечер перенес ее на Linux. По идее просто поменял механизмы запуска и останова и все. Писал небольшие утилиты с GUI. Делал автоматизацию тестирования Windows GUI, обмен данными для БД 1С, и прочее разное. Что касается невозможности писать на Python Web UI, то оцените проект Reflex. Товарищи еще в начале пути, но это Pure Python web framework, включая frontend. Что касается самого языка, у меня к нему слабо логически мотивированная любовь, когда принимаешь его со всеми его недостатками 😊.
самый топовый совет для меня прозвучал в ироничном ролике про изучение TS и явился для меня озарением -- я послал в жопу изучение и просто стал делать, закрывая попутно дыры незнания) спасибо за совет)
Ооо, поделитесь пожалуйста поподробнее? Вы изучаете Python ? Что конкретно вы начали делать после этого озарения? Я такой человек, что очень плохо учусь через теорию, лучше всего я обучаюсь на практике, особенно когда показывают более конкретный контекст (например в проекте) использования какой-либо темы. А ещё я вообще не могу долго сидеть и мучать мозги над чем-то. Мне проще побыстрее посмотреть готовое решение и в голове сделать "отметочку", что я вернусь к этому решению когда пригодится, наизусть знать всё не надо.
А я давно подписан на канал. Здесь всегда так, спокойно и по существу. Плохо только, что редко стали появляться ролики автора на ютюбе. Причина понятна, но очень грустно😮.
У фласка есть обёртка вокруг алхимии Flask-SQLAlchemy, она под капотом сама управляет сессией. Если для простого сайта это достоинство, то для более сложных сайтов, в которых нужно адекватное управление транзакциями - это очевидный недостаток. По этому уже давно перешёл с Flask-SQLAlchemy на обычную алхимию
@@Feycot Слово "микрофреймворк" всех вводит в заблуждение. То что flask это микрофреймворк ни значит, что его нельзя обвешать всяческими готовыми батарейками. Реддит, нетфликс и патреон написаны на фласке так то
@@k3l3vr444 ну можно и обвешать, а можно взять взять фреймворк, в котором есть все необходимое. Конечно это условное разделение, но есть микрофреймворки типа Фласки/slim/express, где базовый минимум, а есть Laravel/Spring/Rails где есть все необходимое для т.н. fullstack приложений
@@Feycot верно, можно и так и так. Только разница в том, что фреймворки в которых всё есть из коробки, за счёт этой нагруженности имеют ненужный оверхед
Я выбрал Python для изучения потому, что он очень популярный, а значит много проектов пишут на нём и этим проектам нужны будут программисты, а во вторых я выбрал этот ЯП, потому что его можно быстро изучить. Хотя я до этого уже был знаком на начальном уровне с С и Pascal. Сейчас я доучиваюсь,как раз разбираюсь с Django. Проблема в том, что почти нет работы на Python для людей без опыта, чаще всего я встречаю вакансии по Java и 1С. Было бы здорово, если бы как-нибудь вы сказали в своих видео что-нибудь об этом и о подобном. Лёша Корепанов, вы классно всё рассказываете,я в восторге, всё вполне доступным языком.
Сам я на С++, но в начале карьеры ПРИШЛОСЬ рваботать на питоне. Вот честно, противней языка не встречал (из тех, что на слуху). Никогда в жизни больше не хотел бы работать на питоне, за исключением мелких скриптиков. Ничего непонятно, что передаетсяв. функцию, что из функции возвращается, приходится смотреть что это за функция, определять откуда ее вызвали, что в нее передали, прихожится опять идти "наверх" по коду, искать полученные значения, идти обратно, смотреть что мы возвращаем и почему, для этого приходится просматривать сам код функции и тд и тп. В С++ я бы просто чекнул входные типы и выходной. ПОнимаемость кода на 100% зависит от комментариев и названий функций и переменных. Если нет хотя бы одного, то можно вешаться. Хотя у него есть и свои преимущества, например можно очень быстро и легко написать небольшие скриптики и разнообразие либ и легкость их установки это только поощряет
Интересно, а есть ли какие преимущества Python перед современным C++? Возврат из функции нескольких значений - std::tuple + structure binging, вместо list comprehension, map, reduce - std::ranges, вместо генераторов, асинхронщины - stackless coroutines. Если лень писать явно типы, то почти всегда можно использовать auto, decltype(auto).
@@АнатолийИ-ю5якак же держатся питонисты за эту нелепую сказочку про "простоту разработки и поддержки". Никакие объективные данные эту сказочку не поддерживают, но питонисты все равно веруют.
В пайтоне как раз таки строгая динамическая типизация же, насколько я помню (давно им не пользуюсь уже). И если инициализировал переменную одним типом значения, то потом присвоить этой же переменной значение другого типа уже нельзя.
В Python действительно строгая типизация, но то, что вы описали - признак как раз статической, не свойственной этому языку :) Строгость заключается в том, что строку нельзя сложить с числом, например, как в JS или С.
Строгость - понятие относительное. Питон, как и Си, позволяет сложить целое и дробное числа даже без малейшего предупреждения. В Хаскель то же самое является ошибкой и для подобного сложения требуется явное приведение типа. Вот это настоящая строгость.
Я, конечно, не так долго программирую на пайтоне. Но, по ощушениям, оправдывает свое сравнение с питоном. Он, вроде бы, и медленный, но и не слабый для множества задач. Не понимаю, как на нем ИИ работает, где скорость обработки играет большую роль 😀, змеинная магия какая-то
Лёша напиши туториал по инвентарю для игры на GODOT на пайтоне - не буть гадом 😁Йа на киберфоруме выложил код в разделе игровые движки, там не понимаю как итем уничтожить из ячейки и сложить его если однотипный кидаем в ячейку. Drad and Drop написан осталось токо это
Python пушка для специалистов в DS, тем более в 2024г. Без него - практически никуда а этой сфере. И касательно простоты - она иллюзорная, хотя по синтаксису заморочек поменьше.
А на пайтон еще не придумали какой-нибудь «TypePyton» по аналогии с TypeScript над JS? TS изучается как родной после языков со статической/строгой типизацией
Хороший язык если использовать аннотации типов или быстро написать прототип. Ещё нет проблем со сборкой. Проблема в скорости. Если много данных или надо быстро результат, то поседеешь пока даже 100Gb файл прочитаешь. Если платить за облако, то больше CPU - больше денег. Проблема скорости не только в движке, но и в постоянных аллокациях и непрямом доступе. Если на плюсах так писать - тоже медленно будет.
Питон меня раздражает безответственностью писателей на нём. Два раза было так, что я уже мысленно представляю себе путь к завоеванию Галактики, и он должен сработать, потому что все нужные библиотеки и утилиты уже кем-то написаны на питоне и даже входят в Debian repository, но тут выясняется, что код-то на самом деле написан "на отъебитесь" студентом, чтобы сдать зачёт и ненадёжен. Чем проще язык, тем больше в нём таких вот студентов. Ну а самый луший язык -- 1. компилируемый 2. на котором код короче других для неэлементарных задач.
Вы так и не стали пайтон разработчиком:) Настоящий питонщик, всё напишет на питоне, даже ОС, если что питон можно компилировать, например, используя mypyc. И для мобильной разработки есть Kivy, Flet, PyQt, было бы желание можно даже pygame заюзать. P.S.: Я шучу, и понимаю, что для каждой задачи лучше подходит свой инструмент, но говорить, что на Python нельзя что-то сделать, это всё таки опрометчиво немного.
Такая же фигня, начал изучать пайтон, ой легко и просто, а потом как распаковался во все красе, я тоже подумал что это обманчивое впечатление о его простоте
я из за этого просто не воспринимаю такие языки. Натерпелся от простыней в Foxpro , когда понял что php божественен во всех отношениях, и новомодный питон скоро умрет.
c 2001 года в php - сейчас свои внутренние сервисы перевожу на python. Вот думаю - стоит ли погрузиться в тему для полного перехода - тяжеловато заходят все эти кортежи и другие понятия=)
А зачем переводить на Python то, что и так работает? Это ведь нарушение важнейшего принципа _настоящего погроммиста_ - "Работает? НЕ ТРОГАЙ -мать твою- !!1" 😂
@@matthewgiovannini2360 Вы ещё сморозьте, что Facebook на PHP написан. Давно уже все такие высоконагруженные проекты переписаны на другой стек, иногда даже свои языки программирования придумывались под конкретный проект.
Случайно попал на видео. Приятное объяснение по сути, спокойно, по существу. Приятно слушать, так держать!
Скромность Леши Корепанова - поставить ютуб кнопку так, чтобы ее никто не заметил. Первый раз такое вижу.
я попытался найти кнопку, но так и не нашёл в кадре. А где она там припрягалась?
@@mikep541 слева от лампы, боком стоит
@@mikep541, присмотрись на лампу
@@mikep541 слево от смотрящего есть светильник, слево от светильника вдоль стенки шкафчика на полке стоит кнопка, между ними лежит какойто пульт или тетрис
Я на поиски потратил наверное пол минуты, вообще задний фон у Лёши это отдельный вид искусства. Если что кнопка слева от лампы.
Приятный мужик! Успехов тебе!
Я начинал свой путь в программисты с JavaScript. Мой случай не уникален, но это как раз тот случай, когда не человек выбирает ЯП, а ЯП выбирает человека))) Мне просто попалась в руки книга "JavaScript для детей", и я начал по ней учиться. Сначала ничего не понимал, но спустя чуть больше чем год я получил первый оффер в компанию :) И вот, проработав немного как Node.js разработчик, я столкнулся с Python.
К Python у меня максимально тёплое отношение. Для меня этот язык приятный, конечно не совсем с привычным синтаксисом после JS, тем не менее это замечательный язык. Одно время хотел перейти на него, чтобы писать бек энд на нём, но т.к. у меня опыт в коммерции в основном JS\TS, то всё, что мне предлагали это было интернатура и Джуниор позиция, а я не мог себе позволить "проседать" в зп, при наличии семьи. Поэтому до сих пор так и не поработал с ним в коммерции, хотя все пэт проекты, все проекты вне работы для себя, я обычно пишу на нём:)
Я в шоке как можно 10 лет писать на одном языке и так его и не узнать, вы как так живёте то вообще? У меня дети которых к ЕГЭ готовлю больше вашего про питон расскажут, да и про плюсы тоже
язык для зарабатывания денег
А какой смысл зная JS писать на питоне бэкэнд (при живых node, deno, bun и т.п.) !?
Чтобы все тормозило и чтобы все время переключаться с языка на язык и не писать изоморфные JS приложения?
@@tvortsa какой смысл писать на JS говно, когда это самое говно генерирует ChatGPT.
@@tvortsa почему же всё должно тормозить? По Вашему, если в синтетических тестах Python медленнее, то в реальной жизни он настолько медленный, что те, кто им пользуются, мягко говоря не умные люди или как? В реальном мире, когда дело не касается веб разработки, а не десктоп и мобайл, так же есть такие ограничения как: работа сети, работа базы данных, нагрузка на сервера, мощность серверов и т.д. Если их учесть, то по факту, разницы между приложениями на PHP и Java пользователь разницы не увидит ( если конечно, это не касается мощной обработки данных, которые происходят на сервере после запроса), ибо разница в долисекундах будет минимальной. Плюс, если человек не умеет писать высоконагрузочные системы, его не спасёт ни Go, ни Java. А насчёт почему Python? Ну скажем так, какой-то период времени, когда я следил за вакансиями, проекты, которые писались на Python, для меня были более интересны. В то время на Node.js предлагалось писать проекты типа: микрозаймы, криптокошельки и гемблинг. А мне это не интересно. Поэтому смотрел на то, что происходит на рынке и с другими направлениями. И ничего плохого не вижу, когда человек переходит с одной технологии на другую. Это инструмент для решения задач бизнеса, а не вероисповедание)
ИМХО
Как всегда, было очень интересно послушать, Алексей! Спасибо большое за видео!
спасибо, очень приятно когда специалисты делятся своим мнение, а не оставляют эти знания внутри корпораций
Специалист? с чего вы это взяли?
@@igorseledtsov7345 из ролика.
@@igorseledtsov7345 20 лет опыта
Спасибо большое. что делаете видео. Всегда узнаю что-то новое после просмотра.
Алексей, спасибо Вам за познавательный и полезный контент, продолжайте в том же духе. Очень приятно слушать и смотреть вас.
Сейчас уже сложной найти работу в вебе на синхронном питоне. FastAPI сильно увеличил применяемость асинхрощины в питоне. И случилось это уже леn 5 как. Производительность питона регулярно улучшается и во многих задачах, для которых он регулярно используется, уже не сильно уступает плюсам или JS.
Асинхронность питона тоже постоянно допиливают, так как видят в этом потребность. И в ближайшем обновлении 3.13 планируется сильно ускорить работу JIT компилятора.
Питон уже добрался даже до микроконтроллеров - специальная сборка MicroPython для работы на платах Python Circute - аналог Ардуино. Но конечно это все только для пет проектов, а не промышленной разработки. Хотя кто знает во что это может вырасти.
Так что в след за ростом популярности язык тоже очень сильно растет и становится лучше.
"Производительность питона регулярно улучшается и во многих задачах, для которых он регулярно используется, уже не сильно уступает плюсам" - для числодробилок ситуация наипечальнейшая, если сравнивать нативный питоновский код и плюсы.
"не сильно уступает плюсам" - неважно сильно или не сильно, если уступает, остаюсь на плюсах
"не сильно уступает плюсам" - Ахахахах, чел, вот ты тупой
ждем оптимизированный FastAPI с разблокированным GIL это будет еще быстрее работать
@@ffunktor Для "числодробилок" есть nuba.jit - декоратор достаточно повышает производительность, но если нужен уровень С то есть Cython
Очень нравится этот язык. Учил его примерно 2 месяца, сейчас забросил из за учебы, но не перестал писать. Самое удивительное, это то, что мой первый проект это не какой-то калькулятор или тупо переписанный код, а действительно полезный тг бот, который я загрузил на сервер и который приносит мне небольшую денежку. Летом хочу полностью переписать своего бота под айогрм, научится парсингу и написать простенький сайт для рекламы моего бота. Давно мечтал быть "бизнесменом", косвенно моя мечта сбылась, но я на планирую на этом останавливаться. Если мой старый бот в несезон приносил мне достаточно хорошую прибыль (как для 11 классника), то новый бот, надеюсь, увеличит эту прибыль в разы.
Удачи!
Бот открытый?
@@vogelfenixable в плане ?
@@TV-lz9yq ну ссылка есть на бот или только для личного пользования?)
@@TV-lz9yq видимо имелось в виду, что в него все могут зайти или не все. Можно же фильтр поставить.
От души 😂 Особенно развеселил момент о боли фрилансера, когда заказчик начинает выкручивать вам руки и с каждым днем меняет тз 😂
Как то так сложилось, к программированию пришёл с сайтов для мобильных телефонов wap версии, подвернулся именно php и с головой затянул меня, это было в 2007 году (17лет в php 🤔), много чего написал, 90 процентов из этого уже не активно в сети (жаль даже)
Недавно посмотрел интервью Дурова, где он рассказал о своих проектах и что бэк у него на пайтоне, хотя вк он писал на php.
Что-то так вдохновило меня посмотреть пайтон и он мне зашёл , совершенно понятный синтаксис, локоничен круто. Правда эта точка с запятой не знаю как победит желание оканчивать ею 😂 Плюс решил залезть в java и вообще писать что либо для андроид 😮 Удивило что можно в андроид студии просто расставлять объекты графически -это так просто.... Я 17 лет не интересовался ничем кроме php, sql и языки разметки, сам в шоке...
Вы пьете эликсир молодости? Делитесь секретом вечной молодости, тоже так хочу!
Не бухай, живи без стресса, занимайся спортом.
тоже об этом Алёшу прошу))
@@ugin-nb4sy Да я лысый, но сморщенный в свои 45 просто жесть какая то. А тут прям младенец какой то.
Высокая зп
генетика и образ жизни !
Решал подобную задачу по обработке видеопотоков с помощью нейросети. Первое решение написанное исключительно на python несколько лет отработало на проде, хотя и справлялось с нагрузкой в несколько сотен потоков, но потребляло кучу памяти и нещадно грузило процессор) Сейчас реализовал сервис получения и обработки кадров на плюсах, день и ночь просто, памяти не ест, проц не бьётся в полку, производительность решения возросла. В общем, для прототипирования и скриптования простой логики python хорош, для hi-load лучше что то компилируемое)
как оно могло быть написанно исключительно на питоне. быть такого не может, вы там с нуля gradient descent с матричными операциями что ли имплементировали. почти любой deep learning фреймворк из популярных имеет ядро на плюсах. и обертки на питоне. модели вангую вы до сих пор готовите на питоне. не поверю, что у вас там тренировка на плюсах. и вот в этой доменной области заслуга не столько языка, сколько математиков-программистов , которые за вас самую сложную работу и сделали. попробуйте с нуля сделать подобную архитектуру модели плюс тренировку модели, плюс быстрый инференс(где нужно быстро выполнять матричные операции) на плюсах и скажите сколько это займет времени написать(без использования всех этих lapack/openblas).
но то что в вашем примере безусловно говорит не в пользу питона, это мультипоточность/мультипроцессорность при наличии огромной постоянно нагрузки. ну по моему это и так все известно. тут нет никакой новости, что питон один из худших языков в concurrent programming. а матрички считать, ну разницы особой нет, что вы в плюсах torch вызовите . что в питоне, ну наверное с небольшим оверхедом за счет интеропа с питоном. но все операции будут выполнять вообще одним и тем же скомплированным ядром (что там будет огромный файл libtorch.so, что там. про CV библиотечки так тем более, нет ни одной чисто питон библиотеки, которая в индустрии используется)
@@TheDelwish Доброго времени суток! Ни кто и не говорил про реализацию на чистом Python, особенно того, что касается матриц, там, естественно, везде сишные модули, будь то numpy, pytorch, или даже Opencv. Речь шла о том что "гонять" эти самые матрицы изображений между процессами приходилось при помощи стандартных библиотек python, типа multiprocesing queue или shared memory, что роняет производительность и прочее. Что касается разработки нейросетевых решений, проверки гипотез, обучения нейросеток, скрипты обработки датасетаов, это все python, без него не куда, отличное быстрое прототипирование. Ну и на проде python отличный инструмент для скриптовой обвязки тех же сишных модулей
Очень интересно объясняете. Спасибо за видео, было приятно послушать!
После профессиональной разработки на C/C#/Java на питон оч сложно переходить из-за тьмы недостатков
Простота питона зависит от того кто код пишет. Можно такую наркоманию там развести что устанешь разбираться.
Столько сахара что диабет может развиться.
Мне кажется Go как раз как антидот после питона. Но для питониста он и правда поначалу сильно непонятный
Антидотом от плохого кода, в мире python разработки, является внедрение пайплайнов с запуском строго настроенного flake8
Только это надо или быть лидом и заставлять других писать код как ты считаешь правильным, или искать такую команду, детально расспрашивая на собеседовании про их практики. С го тоже можно наколбасить ещё тот код, но возможностей для этого поменьше.
@@MrLotrus никого не нужно заставлять, обязательная проверка линтером будет делать это за вас
@@olegssh6452 Так ее надо встроить в CI/CD и слать лесом МРы с непрошедшей проверкой. Это и имею в виду под заставлять
@@olegssh6452 линтер не решение проблем, если человек пишет методы по 300строк с кучей аргументов, не соблюдает принципы. И что вообще значит "писать код как ты считаешь правильным"? Есть принципы (SOLID, DRY, KISS, YAGNI), метрики кода, паттерны! Есть книги - Чистый код, Чистая архитектура и т.д.. Нет такого "считаешь правильным"! Соблюдаешь правила и все ок! А линтер это про то, как скобки у блоков кода поставлены, как оформлены комментарии
Спасибо за видео, очень легко слушается и очень понятно все объясняется до такой степени что можешь ухватить суть идеи даже если не особо разбираешься в программировании.
я тоже всегдаа улыбаюсь когда люди говорят что Пайтон очень простой, но они пробовали писать только print('Hello World'))))
Во во и я так подумал, новичков дурачат говоря что питон прям изи, впаривая очередной курсик)
@@megafalos850 дурачат людей, которые никогда не нюхали кодинг. Им говорят что все легко и продают курсы). Оно то и правда легко, если человек настроен на алгоритмы.
Потом люди доходят до ООП и охреневают. Но это уже другая история
А так, то конечно Леше больше спасибо за познавательное видео. Никакого сарказма. правде большое спасибо🔥🔥🔥
Но это чистая правда. Для человека, который решил на закате молодости войти в айти, Питон может показаться сложноватым, но если ему показать вместо питона плюсы, то он сразу бросит идеи "вайтишника" и убежит на стройку или завод. Поэтому, да, Питон - очень простой. Как и Луа. И как любой другой динамически типизированный скриптовый язык
@@akaikangaroo ну да тут однозначного ответа
@@akaikangaroo Ну, плюсы и самые сложные в освоении. Если что-то проще плюсов, это не значит, что это очень простое. Речь шла о разных возможностях питона, о которых многие и не знают. Большинство из использующих язык (даже не новичков) никогда не писало генераторной функции, а о каких-нибудь метаклассах и асинхронных контекстных менеджерах и не подозревает. Я не думаю, что это очень просто, там есть что разобрать. Асинхронщина точно не тривиальна. Но это не только Python касается, хотя она здесь довольно грамотно сделана.
Другими словами, Python прост, когда его используют только как скриптовый язык, но такие задачи и не требуют сложных инструментов языка. То есть, автор коммента по сути прав.
Мой первый язык программирования. 6 лет назад начал изучать именно с него.
Со временем и другими языками овладел, но "думаю" на python до сих пор.
Если овладел питоном, то другие языки проще даются)) Главное ничего не перепутать по привычке так сказатб.
@@DenisLeadERTV если только руби, js и php. Но не факт что Си++, АСМ, раст. Помимо освоения языка надо еще осваивать оценку сложности алгоритма, паттерны и принципы, а это дело уже не малое. Прочитайте Чистый код, осознаете, поймете и сможете использовать, считайте навыки точно есть
почему-то мало кто упоминает про Cython, очень хорошо подходит под высокопроизводительные задачи
это код в стиле Python *.pyx со специфическими операторами от языка С, который компилируется в C и подключается к обычному пайтону как модуль
То есть синтаксис в основном как у Python
Согласен
Не люблю Питон исключительно из-за того, что сейчас его все любят и все на нем пишут. У меня дух противоречия включился. Но мне можно - я не программист, а так, балуюсь понемногу
Я программирую на питоне только из-за того, что он мне нужен для математики и криптографии
Мне очень понравилось в питоне кроме упомянутой простоты работы со строками встроенное снятие ограничений с размера числа. Я не встречал другого языка, в котором число может быть любого размера - вообще без ограничений.
Для своего интереса просто считал задачку, в которой мне нужно было возвести числа в степень от 1 до 100.000 - и в питоне для этого вообще никаких дополнительных действий/структур данных не понадобилось - просто прямая логика в две строчки.
Поэтому наверное он так популярен среди непрограммистов и околопрограммистов.
шеме позволяет
Да ладно, Питон полное убожество по сравнению с numeric tower в Scheme.
А уж провсякие Axiom, Maxima, Mathematica и им подобных вообще молчу.
Приятное объяснение по сути, спокойно, по существу. Приятно слушать, так держать!
А я только изучаю Си, вот эта проверка на clang-format и valgrind помогают очень сильно. В принципе нормальный язык. Скоро (через год) перейду на плюсы.
питон для меня это как дополнительная операционная система, с фри программами в библиотеках, подсел на анализ данных для своей организации, работаю коммерческим директором. через апи для chatgpt вообще бомба.
Работаю более 10 лет в аналитике. Последние лет 5 пишу на Пайтон. Очень помогает в работе!
Очень интересный опыт, спасибо что поделился, Алексей! Что до аннотации типов - надо, надо переходить! Категорически надо! Если старую кодовую базу переносить долго и может быть сложно (как минимум, в плане времени) покрыть аннотациями, новый код надо аннотировать полностью! Совершенно зрелый механизм, и если не с mypy, то можно начать (и в принципе закончирть) pyright'ом. Я придерживаюсь такого правила - аннотации типов не пишу только в реально коротких скриптах питонячих. Если система хоть сколько усложняется или планируется усложняться / расширяться (>1 модуля) - не аннотировать типы -- преступление
В первый раз увидел код на пайтоне когда в начале 2000х ковырялся в игре Blade Of Darkness. Был удивлен, увидев кучу игровой логики в виде легко читаемых скриптов.
Хороший ролик, спасибо! Добавлю что сейчас без async веб разработку на python себе уже сложно представить, даже джанго костылит в эту сторону.
вы объясняете так, что приятно смотреть, прикольно 👍 😊
Ну питон изначально под Datascience разрабатывался. А насчёт простоты изучения, ну например, стоматолог или повар если начнёт изучать питон с нуля, он прикурит. Но мне было проще так как ранее в 2000-х писал на делфи и visual basic и как-бы имею представление по построению и структуре кода, что куда и как, кто где лезет и хранит объекты в памяти. А питон хорош еще тем, что есть куча уже готовых библиотек, тот-же Bluetooth модули давно есть. Очень удобно например сделать автоматизацию работы теплицы с открытием заслонок на сервоприводах, автополив огурцов и помидоров, контроль температуры, расписание и т.д. это очень интересно, + ардуино, так вообще что угодно слепить можно)
"питон изначально под Datascience разрабатывался" где такую чушь вычитал! тебе же ясно сказали в видео, для чего изначально делался!
Кто ты воин ?)
Прям очень знакомая история была и у меня. Делал я сайты на php и когда понадобился скрипт автоматизации (для свои нужд - генерировать образы DVD-дисков для резервного копирования фотографий) я написал на PHP, но в этот момент понял, что PHP не для этого. Поэтому следующий проект делал на python. Языка я не знал, но понял, что он для этого идеален. И не ошибся. Более того, до сих пор пересматриваю исходник. и не вижу к чему придраться. Там скрипт поднимал и останавливал виртуальные машины, подключался к их сетевым дискам проверял внешней программой контрольные суммы и так далее. Про это производительность была совершенно не принципиальна (большую часть времени скрипт ждал, когда поднимется виртуалка). Но потом я решил посчитать и контрольные суммы не внешней программой (написанной на C), а сделать функцию на python. Я перевел код с C на python попутно существенно оптимизируя его и что же? Замедлилось в 40(!) раз. В общем, битовая арифметика - не для python. (я все равно выложил на github результат, жалко было потраченных усилий, но сам им не пользуюсь)
Потом было еще куча проектов на python, но на одном я сломался. Проект 10000 строк исходного кода - синхронизация файлов между папками со всякими проверками этих самых файлов. Была накручена архитектура с потоками и тут выяснилось, что GIL, будь он неладен, приводит к затыкам системы. При чем это не вопрос производительности - она в этом проекте не существенна (проверки во внешних системах занимали гораздо больше времени). Но в совершенно случайные моменты система просто останавливала потоки. Попробовал перейти на процессы и да, как и в этом видео - передавать данные между процессами оказалось гораздо сложнее. Итог - переписал все на Go, сохранив ключевые идеи архитектуры и все прекрасно заработало. Всякие race condition Go умеет отслеживать сам. (именно в этом виде я выложил проект на github)
Так что теперь моя любовь - Go. У Go беда с программами с UI. Так что теперь смотрю в сторону Dart...
Да, все библиотеки на python, которые есть "из коробки" написаны на C. Это - numpy, math, datetime, itertools, random, os и ещё десятки других.
Но непонятно, если допустим я буду извлекать квадратный корень из числа через Python, это бы выглядело так: 100 ** 1/2. С модулем math это бы было так math.sqrt(100). Вопрос, что бы выполнилось быстрее?
На Python это бы выглядело так >>100 ** (1 / 2) Всё таки про приоритеты операторов не забываем. Ну или >>100 ** 0.5. А вот с замером скорости всё получилось несколько неожиданнее и интереснее (правда тестировал это на python 3.10). Результат получился такой, что приведённая первая запись (но только со скобочками) быстрее операции math.sqrt() в 3 раза о_О
@@arthurkuznetsov618 Интересно, тогда в чём смысл использования простых модулей по типу math. Я ещё могу представить необходимость os, sqlite и многих других библиотек, но тогда теряется смысл остальных, которые можно запросто воспроизвести и не потерять скорость в процессе использования их функционала.
@@benpuls9414 math.sqrt сделали для совместимости со всеми обернутыми C функциями. Оператор ** это более продвинутая функция которая умеет работать с комплексными числами, неограниченными числами и тому прочее. То есть предпочтительнее в Python коде использовать оператор **.
Чтобы не представлять корень в таком виде
Если стоит задача писать быстрый код, то не надо использовать питон.
Леша, здравствуйте. Спасибо за ваши видео. Если будет возможность, запишите пожалуйста видео о том, какие книги вы бы посоветовали тем, кто решил изучать программирование. Начиная от основ информатики, работы с алгоритмами и заканчивая книгами по языкам с которыми вы работали. Спасибо.
сейчас сложно не знать об асинхронном программировании :)
Согласен
Спасибо за видео. Я писать на С начал в 89 году, потом сразу перешел на dBase, FoxPro, Paradox и С++. И меня всегда удивляли люди, которые жалуются на то, что нужно следить за освобождением ресурсов. После первых месяцев ты настолько перестаешь это замечать, что даже и говорить не о чем. Не напрягает же грамотного человека ставить точку в конце предложения. Хотя вроде и пробела и последующего слова с заглавной буквой вроде бы хватает (да часто и по смыслу понятно) для завершения выражения и начала нового. В питоне никого не напрягет закрыть файл или сокет, который был использован. Почему же освобождение памяти вызывает такую идиосинкразию?
Питон очень люблю. Гениальность дизайна - то, что не отформатировано, то не работает! Трагедия в том, что красивый динамически типизируемый язык для скриптования не сложных систем пытаются засунуть в ентерпрайз с его требованиям к скорости работы, разработки и т.п.
Пишу на python лет шесть, в этом году закончил универ и устроился на свою первую работу на этом языке. За время обучения перепробовал c, c++, java, посмотрел как работают Fortran и Assembler, а первым моим школьным языком был pascal. В итоге так и не ушел с питона из-за его простоты, а остался из-за сложности и глубины)
Спасибо что вы делитесь своим опытом. Очень полезно было послушать.
Как же он красиво и просто рассказывает. Аж захотелось снова начать учить питон
Спасибо большое за информацию. Очень интересно. Моя история с пайтон: перед поступлением на специальность программиста, я начал искать с чего начать, какой язык выбрать. Я тогда вообще был 100% далек от темы мира языков и программирования в целом. И вот интернет выдал популярность Пайтон. Я скачал книжку (автор Эрик Мэттенс, по моему так). И все так интересно было, как новичку.
В общем пришло время поступать и я поступил с очень теплыми и приятными ощущениями от этой книжки и языка в целом (понятно что я толком так ничего не понял, но не страшно). И вот после курса языка пайтон, точнее от преподавателя и метода преподавания, я полностью охладел к пайтон, всякий интерес пропал напрочь. Теперь более влекут меня JS и все что с ним связано, и с fullstack MERN в целом.
JS грязный язык. Парадигмы программирования не доработаны (например, в ООП у многих ЯП нет множественного наследования, но есть альтернативы вроде миксинов/трейтов и интерфейсы, в JS нет и этого, просто пародия на ООП), язык часто используют, обернув в какую нить новую абстракцию, формальный язык типа CoffeeScript или TypeScript, это все подтверждает его убогость, зачем тогда сам язык, если на нем не могут сразу адекватно описывать свои требования
@@КонстантинБелоглазов-р1з ну ничего страшного. Работают как-то же на нем люди😉 тем более ООР не всегда нужно. Да и всегда под рукой есть java на всякий случай.
Хочется добавить, в классах есть декоратор @property, который как-то имитирует ту самую недоступность атрибутов извне
Насчёт того что простота именно кажущаяся - 100% правы)
11:50 это да. Просто посмотрите исходники того же fastapi или litestar. Типизация, дженерики... изначально язык обманчиво прост.
Книга "Python к вершинам мастерства" 900 страниц весом в полтора кило :)
Меня каждый раз корёжит, когда с каждого утюга раздаётся "питон простой". Да, для задач написания скриптов непрограммистами он достаточно прост (хоть и с ньюансами). Впрочем, как и любой другой скриптовый язык.
Но для области профессиональной разработки - это зрелый и довольно сложный язык, заметно сложнее тех же джавы/C#. Про гошку и вовсе говорить нечего.
@@redneck_prm5429 Ээээ окей. Ну допустим, что питухон сложнее чем решетка или жаба (хотя только от этого смех пробирает), предположим что трава хорошая и драггер честный😂
В чем он сложнее?))) Это ж недохрень из костылей))) Сложность штука относительная. Сишка вон простая, но подавляющее большинство питухонистов от нее будут слезки пускать и веревки намыливать. С гошкой же такое поделие как питухон лучше вообще не сравнивать - это небо и земля.
Да и такие понятия как «профессиональная разработка» и питухон ни разу не совместимые. Что-нибудь по быстрому наваять - да. Подкостылить - да. В крупный проект - нет, любой architect подтвердит. А если и да - ну штош, обнять и плакать🤣
А я в последнеее время помимо C++ использую в основном Cython - это некоторый компромисс между C и Python. Есть типизация и компиляция, при этом сохраняется полная совместимость с Python и всеми его библиотеками. Даже несколько обучающих видео по нему записал, они у меня на канале опубликованы.
Синтаксис тот же?
@@RaptorT1V Скажем так - полностью совместимый. Можно писать как в документации по Python, и всё будет работать. Но есть и дополнения, например, можно объявить тип переменной ("cdef int i"), аргументов и результата функции ("cdef int foo(double bar)"), определять перечисления и структуры как в C ("cdef enum", "cdef struct") и тому подобное - это повлияет на компиляцию и, соответственно, быстродействие и компактность кода. Ну и дополнительтные фишки взаимодействия с сишными библиотеками ("extern", "cimport" и т.п.) В общем, очень жизнеспособный гибрид.
@@m0Ray79 почему ж реально о нём мало кто знает и почему о нём не говорят на тех же курсах, например. или другие ютуберы.
@@RaptorT1V Сам удивляюсь. Прекрасный инструмент, причём далеко не новый, о котором почему-то мало говорят. Хотя он способен прекратить всякое нытьё о производительности Python.
Мне случайно 48 лет и я решил стать программистом, и да, я думаю , что Алексей Корепанов и Сергей Балакирев это одно лицо! :))
Понравилось, как в конце такой - фух, блин, записал)
Давно не было видео от Лёши. Рад видеть
Занимаюсь DS и поэтому использую этот самый питон. Весьма удобный для этого язык. И главное крайне много библиотек и материалов в сети.
Про реальный пример и про асинхронность - спасибо. Совершенно новая информация для меня.
Приятно слушать, по делу. Интересные примеры.
Для небольших проектов, особенно если с нейронками - он идеален.
Но что-то большое я на нем писать бы не стал. Тормоза, плюс поймаешь проблем с отсутствием строгой типизации.
Вау, я думала, что вы перестали выпускать свои видео, а мне просто не приходили уведомления 😢
Использую python для написания скриптов для работы бэкендом, мне как сисадмину язык очень заходи, но порой хочется написать что-то и посложней.
У меня для сисадминских дел так и не прижился. В своё время работал в конторе где всё решалось на перле. В итоге потыкал питон и лично у меня оказалось что на перле в разы быстрее, особенно если находу надо чтото менять, хотя изначально надо затратить больше времени для изучения.
Питон простой, когда ты уже понимаешь что отвечает за что.
Специально так сформулировал )
Но если ты впервые окунулся в программирование, то Питон вызовет такой же разрыв мозга или задницы (кому что) как и Джаваскрипт или C#.
Когда уже понимаешь логику и знаешь команды, то написание кода в целом не вызывает проблем.
На Питоне автоматизировал для своей работы кучу процессов, благодаря чему сэкономил и заработал серьезную сумму денег.
Программистом себя не считаю, у меня рекламное агентство. Но за автоматизацией - будущее
Не соглашусь. По крайней мере с JS разрыв чего либо более вероятен, когда узнаёшь, что можно вполне официально и легально делить на 0, а ещё многие типы данных или отсутствие данных пустые строка, список преобразуются в число. При этом типом NaN является number. И это я рассказал только поверхностное знакомство. Но этого хватает, чтобы сильно задуматься: а хочется ли погружаться глубже в это
Если начал программировать на Питоне после С, С++ и С#, то приходится привыкать к относительно другой логике. .
Самый, более менее универсальный ЯП это js, на нём можно писать фронт, бэк(nodejs) и приложения для разных платформ по типу реакт натив, электрон и тп. Но и у js есть много минусов. Поэтому если новичок хочет связать свою жизнь программированием, то лучше сразу понять что придётся понять как работает компьютер и выучить много языков для того чтобы использовать в различных ситуациях разные языки/инструменты. Кстати популярное высказывание про забивание гвоздей с помощью пассатижей или молотка, очень уместно.
Это не яп, это один сплошной костыль
Микросевисы в докере для некоторой автоматизации одно удовольствие делать на python. По поводу скорости работы, никто не запрещает отдавать некоторые процессы обработки в с++ и возвращать результаты. Если совсем упороться в скорость, то надо уходить в ассемблер)) поэтому нужно понимать что за задача, и на чем её реализовывать.
Лёша, красавчик! Пора курсы по програмированию запускать!!! Сама ищю хорошую курсы!!! Благодарю за Ваш труд!!
Недавно обратился к python после многих лет работы на C# для Unity, очень кайфанул от его легкости, но отсутствие строгой типизации часто приводило к выстрелам в ногу, особенно с непривычки)
мне питон зашел, не знаю как "чисто" я на нем писал, но учитывая, что у меня 4 года коммерческого опыта на js/ts/react, то достаточно быстро врубился что и как, простенький бекенд накидать труда не составило, насчет более сложных штук не углублялся еще)
Приятно что вы вернулись)
Очень полезная информация для тех, кто думает: стоит ли изучить Python или лучше продолжать изучать и совершенствоваться в Java.
Хотелось бы узнать Ваше мнение.
Не программист, админю, но писал на Python службу под Windows, после чего за вечер перенес ее на Linux. По идее просто поменял механизмы запуска и останова и все. Писал небольшие утилиты с GUI. Делал автоматизацию тестирования Windows GUI, обмен данными для БД 1С, и прочее разное. Что касается невозможности писать на Python Web UI, то оцените проект Reflex. Товарищи еще в начале пути, но это Pure Python web framework, включая frontend. Что касается самого языка, у меня к нему слабо логически мотивированная любовь, когда принимаешь его со всеми его недостатками 😊.
Вот это приятный контент) очень было интересно, сам уже 7 лет пишу на питоне
самый топовый совет для меня прозвучал в ироничном ролике про изучение TS и явился для меня озарением -- я послал в жопу изучение и просто стал делать, закрывая попутно дыры незнания)
спасибо за совет)
Ооо, поделитесь пожалуйста поподробнее? Вы изучаете Python ? Что конкретно вы начали делать после этого озарения?
Я такой человек, что очень плохо учусь через теорию, лучше всего я обучаюсь на практике, особенно когда показывают более конкретный контекст (например в проекте) использования какой-либо темы.
А ещё я вообще не могу долго сидеть и мучать мозги над чем-то. Мне проще побыстрее посмотреть готовое решение и в голове сделать "отметочку", что я вернусь к этому решению когда пригодится, наизусть знать всё не надо.
обожаю этот канал)). спасибо за видео ❤
А я давно подписан на канал. Здесь всегда так, спокойно и по существу. Плохо только, что редко стали появляться ролики автора на ютюбе. Причина понятна, но очень грустно😮.
Сам перешёл на Python c С++. Первоначальное максимальное отторжение сменилось безграничной любовью :)
У Flask не было никогда собственной ORM - все используют стороннюю SQLAlchemy
У фласка есть обёртка вокруг алхимии Flask-SQLAlchemy, она под капотом сама управляет сессией. Если для простого сайта это достоинство, то для более сложных сайтов, в которых нужно адекватное управление транзакциями - это очевидный недостаток. По этому уже давно перешёл с Flask-SQLAlchemy на обычную алхимию
а она нужна ли ему? фласк по сути микрофреймворк.
@@Feycot Слово "микрофреймворк" всех вводит в заблуждение. То что flask это микрофреймворк ни значит, что его нельзя обвешать всяческими готовыми батарейками. Реддит, нетфликс и патреон написаны на фласке так то
@@k3l3vr444 ну можно и обвешать, а можно взять взять фреймворк, в котором есть все необходимое. Конечно это условное разделение, но есть микрофреймворки типа Фласки/slim/express, где базовый минимум, а есть Laravel/Spring/Rails где есть все необходимое для т.н. fullstack приложений
@@Feycot верно, можно и так и так. Только разница в том, что фреймворки в которых всё есть из коробки, за счёт этой нагруженности имеют ненужный оверхед
Я выбрал Python для изучения потому, что он очень популярный, а значит много проектов пишут на нём и этим проектам нужны будут программисты, а во вторых я выбрал этот ЯП, потому что его можно быстро изучить. Хотя я до этого уже был знаком на начальном уровне с С и Pascal.
Сейчас я доучиваюсь,как раз разбираюсь с Django. Проблема в том, что почти нет работы на Python для людей без опыта, чаще всего я встречаю вакансии по Java и 1С.
Было бы здорово, если бы как-нибудь вы сказали в своих видео что-нибудь об этом и о подобном.
Лёша Корепанов, вы классно всё рассказываете,я в восторге, всё вполне доступным языком.
Что java, Шо 1с - 90% вероятности столкновения с легаси. Уж лучше попотеть на более популярных языка: Python, Matlab, C# (+WPF)
Сделал стартап на Python (Django), сейчас разрабатываю более эффективный алгоритм обучения для нейросетй. 🐍 ❤️
На Rust можно перекинуть бизнес-логику которая тормозит в пайтоне, и быстренько подключаемую через PyO3.
Будет серьёзное ускорение.
Сам я на С++, но в начале карьеры ПРИШЛОСЬ рваботать на питоне. Вот честно, противней языка не встречал (из тех, что на слуху). Никогда в жизни больше не хотел бы работать на питоне, за исключением мелких скриптиков. Ничего непонятно, что передаетсяв. функцию, что из функции возвращается, приходится смотреть что это за функция, определять откуда ее вызвали, что в нее передали, прихожится опять идти "наверх" по коду, искать полученные значения, идти обратно, смотреть что мы возвращаем и почему, для этого приходится просматривать сам код функции и тд и тп. В С++ я бы просто чекнул входные типы и выходной.
ПОнимаемость кода на 100% зависит от комментариев и названий функций и переменных. Если нет хотя бы одного, то можно вешаться. Хотя у него есть и свои преимущества, например можно очень быстро и легко написать небольшие скриптики и разнообразие либ и легкость их установки это только поощряет
Есть аннотации
@@khamzinadel никто их не пишет.
@@5классвиленкин-ъ4п в нормальных компаниях без этого никак
@@5классвиленкин-ъ4п и то что их не пишут, не проблема питона
@@5классвиленкин-ъ4п то что их не пишут не проблема питона, а в разработчиках. В нормальных компаниях все пишут. Есть же потрясающий typing
Интересно, а есть ли какие преимущества Python перед современным C++? Возврат из функции нескольких значений - std::tuple + structure binging, вместо list comprehension, map, reduce - std::ranges, вместо генераторов, асинхронщины - stackless coroutines. Если лень писать явно типы, то почти всегда можно использовать auto, decltype(auto).
интерпретация?
простота разработки и поддержки?
@@АнатолийИ-ю5якак же держатся питонисты за эту нелепую сказочку про "простоту разработки и поддержки". Никакие объективные данные эту сказочку не поддерживают, но питонисты все равно веруют.
В пайтоне как раз таки строгая динамическая типизация же, насколько я помню (давно им не пользуюсь уже). И если инициализировал переменную одним типом значения, то потом присвоить этой же переменной значение другого типа уже нельзя.
В Python действительно строгая типизация, но то, что вы описали - признак как раз статической, не свойственной этому языку :) Строгость заключается в том, что строку нельзя сложить с числом, например, как в JS или С.
К сожалению, можно присвоить.
a = 12
print(a)
a = "Hello"
print(a)
прекрасно работает и печатает
12
Hello
@@aocore Это так. И тут помогают аннотации, Алексей! =) Вкупе с современными средами разработки. Сразу ругаются на такое.
Значит, память меня подвела, сорри.
Строгость - понятие относительное. Питон, как и Си, позволяет сложить целое и дробное числа даже без малейшего предупреждения. В Хаскель то же самое является ошибкой и для подобного сложения требуется явное приведение типа. Вот это настоящая строгость.
Символы подчеркивания в питоне не исключают доступ к переменным. Если знать как, то до них всеравно можно достучаться без особых усилий
Я, конечно, не так долго программирую на пайтоне. Но, по ощушениям, оправдывает свое сравнение с питоном. Он, вроде бы, и медленный, но и не слабый для множества задач. Не понимаю, как на нем ИИ работает, где скорость обработки играет большую роль 😀, змеинная магия какая-то
Варгейминг основной сервер с клиентом до сих пор на питоне 2,7 пишет и не может на 3 перейти.
На третьем только сервисы вроде магазина.
Лёша напиши туториал по инвентарю для игры на GODOT на пайтоне - не буть гадом 😁Йа на киберфоруме выложил код в разделе игровые движки, там не понимаю как итем уничтожить из ячейки и сложить его если однотипный кидаем в ячейку. Drad and Drop написан осталось токо это
Python пушка для специалистов в DS, тем более в 2024г. Без него - практически никуда а этой сфере. И касательно простоты - она иллюзорная, хотя по синтаксису заморочек поменьше.
Спасибо!
Приятно слушать👍
В начале видео говорится о том, что у Python динамическая нестрогая типизация. Всё же она динамическая строгая, если быть до конца точным :)
А на пайтон еще не придумали какой-нибудь «TypePyton» по аналогии с TypeScript над JS? TS изучается как родной после языков со статической/строгой типизацией
Хороший язык если использовать аннотации типов или быстро написать прототип. Ещё нет проблем со сборкой.
Проблема в скорости. Если много данных или надо быстро результат, то поседеешь пока даже 100Gb файл прочитаешь. Если платить за облако, то больше CPU - больше денег.
Проблема скорости не только в движке, но и в постоянных аллокациях и непрямом доступе. Если на плюсах так писать - тоже медленно будет.
Почему говорят ,что 'простые управляющие структуры действительно плохо оптимизированы в Python' ?
А сейчас есть что-то популярнее Django и Flask?
на Яндекс Практикум в курсе по Питону Django обязателен) Прикольная штука, мне понравилась
Питон меня раздражает безответственностью писателей на нём. Два раза было так, что я уже мысленно представляю себе путь к завоеванию Галактики, и он должен сработать, потому что все нужные библиотеки и утилиты уже кем-то написаны на питоне и даже входят в Debian repository, но тут выясняется, что код-то на самом деле написан "на отъебитесь" студентом, чтобы сдать зачёт и ненадёжен. Чем проще язык, тем больше в нём таких вот студентов. Ну а самый луший язык -- 1. компилируемый 2. на котором код короче других для неэлементарных задач.
Вы так и не стали пайтон разработчиком:)
Настоящий питонщик, всё напишет на питоне, даже ОС, если что питон можно компилировать, например, используя mypyc.
И для мобильной разработки есть Kivy, Flet, PyQt, было бы желание можно даже pygame заюзать.
P.S.: Я шучу, и понимаю, что для каждой задачи лучше подходит свой инструмент, но говорить, что на Python нельзя что-то сделать, это всё таки опрометчиво немного.
Отличное видео, спасибо за Ваше мнение
1:21 динамическая СТРОГАЯ типизация
Ну и сейчас type hints развивается c каждой версией.
Плюс эксперименты с заменой GIL :)
Язык просто ожил!
В другом видео я увидел у Вас много медалей, что у вас за хобби?😁
Такая же фигня, начал изучать пайтон, ой легко и просто, а потом как распаковался во все красе, я тоже подумал что это обманчивое впечатление о его простоте
Алексей, откройте свою школу, я точно пойду, давно мечтаю сделать python частью своей жизни
А сейчас какие движки для web сайтов используют питонисты?
Леша, отступы , как C#-ка - дико раздражают! Неужели тяжело сделать режим для таких) , типа выбрал опцию и вместо отступов - фигурные скобки, блоки)
from __ future __ import braces
я из за этого просто не воспринимаю такие языки. Натерпелся от простыней в Foxpro , когда понял что php божественен во всех отношениях, и новомодный питон скоро умрет.
Reflex фреймворк есть сейчас.. вроде можно вебки с ним писать ...он в себя и фронтенд и бэкэнд включает
c 2001 года в php - сейчас свои внутренние сервисы перевожу на python. Вот думаю - стоит ли погрузиться в тему для полного перехода - тяжеловато заходят все эти кортежи и другие понятия=)
А зачем переводить на Python то, что и так работает?
Это ведь нарушение важнейшего принципа _настоящего погроммиста_ - "Работает? НЕ ТРОГАЙ -мать твою- !!1" 😂
Весьма полезна обратная связь по Python на базе собственного опыта.
Да, были времена, когда социальные сети можно было писать на Пайтоне. Сейчас конечно что-то высоконагруженное на нём не пишут.
RUclips вышел из чата)
@@matthewgiovannini2360 Вы ещё сморозьте, что Facebook на PHP написан. Давно уже все такие высоконагруженные проекты переписаны на другой стек, иногда даже свои языки программирования придумывались под конкретный проект.
А как быть с запуском приложений на других компах? У людей которые слабы как пользователи
Когда пересел с автомобиля на принтер. Давайте напишем файловую систему на python. Или вы на C++ REST API писали?