Python-разработчикам больше не нужен JavaScript. Brython, или Python в браузере
Вставка
- Опубліковано 28 вер 2024
- Web-браузер умеет исполнять только код написанный на JavaScript... А вот и нет. Встречай, Brython!
brython.info/ - официальный сайт библиотеки Brython
• Socket или как создать... - как создать собственный сервер на Python в домашних условиях #1
• Sockets или как создат... - как создать полноценный сервер на Python в домашних условиях #2
• Декораторы в Python | ... - декораторы в Python
#Python #JavaScript #Brython #web #browser
Однозначно полезное видео!Спасибо за труды!
на здоровье
Да смысла по сути нет в этом. "Учить" язык, это уже немного бредово как по мне. А что в нём учить, типа выучил цикл for в python, давай теперь учи цикл for в js. В синтаксис же легко вникнуть.
А вот, что действительно надо долго осваивать, так это саму предметную область. Т.е. все эти манипуляции с тегами, классами, всякие события и т.п. И в данном случае, в это по сути придется всё равно вникать, как если бы на js делали. В общем, шило на мыло менять.
но это только если есть возможность "менять" шило на мыло. а если опции выбора нет - тогда и проблем нет
Не думаю, что у этой технологии есть будущее. Точнее так: даже если она будет развиваться, то она всегда будет на шаг назад от js.
Браузеры раньше исполняли другие япы - IE, например, исполнял vbs и jscript (не путать с js ). Но сейчас такое невозможно. Вот почему:
1) несколько движков в одном браузере. Безопасность превыше всего, и assembler браузер запустить никогда не даст. Так что языки должны будут работать каждый на своем движке или, там, виртуальной машине. Это очень затратно по ресурсам во всех аспектах - и разработка, и запуск на клиенте.
2) оригинальность в браузеростроении хуже сифилиса. Когда программист пишет код, он хочет чтобы он работал у максимального количества пользователей. Какие-то суперфичи отдельных браузеров обычно не используются (только если не Chrome, как законодателя моды). Именно поэтому нужно чтобы сразу все (как минимум хром) стали поддерживать новый яп - а это невозможно в обозримый срок.
3) развивать интернет с нуля. На новый язык нужны новые браузерные библиотеки, фреймворки и т.д.
4) никому не нужно. Js хорош - ИМХО.
P. S. У меня с node такая же вещь, как у вас с браузерным питоном.
да. всё по делу. но я всё равно не могу согласиться с такими категоричными формулировками как "никогда", "невозможно", "никому не нужно"
@@SweetCoder имею ввиду в обозримом (10 лет) будущем
Знаете, никто не думал что линуксовый X11 когда то задумают менять на что то более перспективное, но внезапно - задумали и подвижки медленно но верно идут.
Когда то и игры под линукс без Wine почти не запускались, поскольку процент пользователей всё ещё ничтожно мал, но несмотря на это, данное направление хоть и медленно, но развивается.
Поэтому да ,если хочешь жить сейчас, то конечно проще для тебя и лучше будет вкурить JS или ТупоСкрипт, но кто знает...
Спасибо за видео!
на здоровье
Подождём лет 5, посмотрим что из этого выйдет
Как бы то не было, но JS уже очень прочно закрепился за браузерным ЯП и вряд ли кто-то на полном серьезе в каких-нибудь компаниях будет упарываться в это дело
К тому же есть всякие тайпскрипты, которые лечат одну важную балячку динамических языков - отсутствие типизации.
А питон вместо js выглядит как шило на мыло
не могу найти документацию модуля browser. неужели плохо искал?
Чертовски полезная инфа
рад слышать
а клиенту тоже нужно запускать свой локалный вебсервер для исполнения питон-скрипта?
нет, это джаваскриптовая библиотека способная работать на клиенте автономно
Полезное видео. Жаль, что увидел его слишком поздно
Скорость выполнения кода становится медленнее? Ведь библиотека это лишняя прокладка, если я правильно понимаю.
формально да, но для веб-приложений более важна скорость интернета, чем скорость исполнения кода. так что если не заглядывать под капот - то ты не определишь какое приложение написано на родном JS, а какое с использованием прокладки
Миллионы сайтов написаны с JS, их надо поддерживать и развивать. Никуда JS не денется. Никто этим "костылем" Brython, не будет пользоваться в серьез.
1:19 интересно в какой?) В js?
Извиняюсь за вопрос новичка. Мне нужно обработать в Python число введенное в какой либо форме (например HTML) и вернуть его обратно в форму. Есть может быть какое то видео на эту тему? Или не все так просто...?)
а чем тебе это видео не подошло? ))) во втором примере берётся текст из HTML-input'а, а затем возвращается обратно на страницу, просто в другой блок.
@@SweetCoder я просто нафантазировал, что могу просто создать папку, добавить в ней 2 файла, первый файл:HTML - форма с полем "Введите число", второй файл: Function.py, который если запустить предложит ввести цифру и в ответ выдаст например это же число в степени 2 и передаст обратно в форму в поле "Результат"
чтобы писать пайтон в браузере надо подключить библиотеку с расширением джаваскрипт)))
пайскрипт аналогичен?
Я тупой, не понял, если скрипт отдельный файл, то вот прям надо хост запустить, и возможно ли писать web приложение под андроид
А Аякс он тоже может этот Брайтон заменять? Чтоб дело происходило без перезагрузки страницы.
вроде как может brython.info/static_doc/en/ajax.html
@@SweetCoder Как говорил, капитан Смоллет: "Неплохо, неплохо!"
Полезно, наверно
кому-то точно пригодится
А что написано в коде страницы?
даёшь новый велосипед 🙌
бери на здоровье
@@SweetCoder спасибо, но я люблю мотоциклы)
@@superstarro пффф, а кто ж не любит....
Python number one
набор кода в ваших видео очень ускоренный. смотреть не успеваю🙁
это сделано специально, ведь быстро появляющийся код всегда можно поставить на паузу. А если в момент монтажа я сделаю его для кого-то неприятно медленным - то ускорить очевидные моменты гораздо сложнее
@@badmannerstm тут я меряю исключительно по себе. мне удобнее поставить на паузу чем для каждого видео на ютубе подбирать 1.25x/1.5x/1.75x скорость. кстати, UA-cam также предусмотрел и функцию замедления 😉
@@SweetCoder да, но если смттреть в замедленом режиме, то звук на много хуже становить, ну для меня лично
Ай, шайтан!
... и придумают же..
В понятный для браузера вид? Или в JavaScript?😂😂😂
в понятный для браузера вид - в JavaScript
Браузер с прямой поддержкой js - это опасно.
почему?
лол кек чебурек
Комментарий для поддержки автора канала. Как всегда, все отлично)
👍💪
Я не понял, а для чего тогда pyscript?
Смотрел. Слушал. Все отлично, но нифига не понял
очень жаль
JavaScript чугунный, а Python деревянный.
Python как браузерное решение - это костыль.
пока да
3:37 очень удобно и читаемо использовать оператор меньше или равно для присвоения
Если ты знаешь Python, для тебя будет относительно - легко перейти на js, могут возникнуть проблемы с замахом на typescript, но тут зависит от человека.
Мертворожденный проект же. Отладка вызовет боль, browser api aka web api знать все равно надо, фреймворков нету, экосистемы нету.
Я правильно понял эту дичь, что библиотека грузится на клиент и транслирует Python в JS на клиенте? Что мешает транслировать Python в JS при сборке?
правильно. кому мешает? при какой сборке?
@@SweetCoder при обычной сборке проекта, хоть тем же webpack’ом. Ну по аналогии, когда пишешь код на ES6, а Babel тебе переводит его в ES5, а то и более древний стандарт. То есть он делает тебе рабочий кроссбраузерный билд с поддержкой древних браузеров, который ты и грузишь клиенту. А клиенту вообще не важно, на чем изначально писали код, хоть на ES6, хоть на Typescript, хоть на Dart и так далее.
@@phat80 никаких веб-паков, бабелей не будет. и сборки никакой не будет. синтаксис транcлируется JIT
в google tag manager vs тоже на брайтон будем скрипты писать? бесполезная штука, нужно отдельно учить js
Спасибо за видео! Очень полезное. Но название канала, простите меня, не однозначное всё-таки :)))) Переименовать бы....
Хм клёвая вещь , но js все равно нужен.
Может как то запишешь почему пион называют медленным языком ?
конечно нужен. в заголовке - это просто кликбейт. по поводу медленности питона: а чего там обсуждать? я думаю, что видео получится очень коротким и не интересным
@Руслан , Инструмент наверняка на писан на С++ ;)
@@degree777 просто уверен, что ускорение происходит за счет модулей на С или С++. Типа как датафрэймы в numpy
@Руслан , Ага. Потому что Python тупо транслируют в С++. Естественно он будет работать как .... С++. Для древнего Python 2.7 была такая возможность.
@Руслан , ну это скорее всего в каком то определенном тесте, +плюс прога на питоне все равно будет тяжелее, и больше памяти будет кушать
Кстати numpy имеет кучу ограничений
Да и оптимизированный питон слабо похож сам на себя
Из-за всех этих оптимизаций языком тупо не удобно пользоваться
Js круче, у него больше мозгов и функций, и синт не каприз, т.к изза пробелов js тебя не заставляет выпругнуть с 60-десятого этожа
ни добавить, ни убавить
@@SweetCoder я прошол с js огонь и воду, js иньекции и защиту, он легче:)
В этом видео не очевидно, как происходит обмен данными между скриптом и страницей. Это не критика, это впечатление новичка. Просто, возможно надо было пару минут этому уделить.
если говоришь, что не очевидно - верю на слово. какой конкретно пример вызвал затруднения в понимании?
@@SweetCoder сначала, вроде как понятно, что текст задаётся через список, список отправляется на страницу. А затем резко блоки с кнопками, и список по ключам, и инпут по ключам, и стрелочек уже нет....и как это всё работает не понять :(
Придётся повторить в точности. Обычно я стараюсь делать аналогичное. Не прям один к одному.
@@azazel0618 ага. ну хорошо. сначала мы создавали контент, т.е. генерировали его на стороне python - кода. и стрелочками мы указывали какой контент куда засовываем. пункт списка добавляем в список, а уже сам список в блок body. таким образом было сформирован контент на странице. второй случай: контент на странице уже есть, и мы с помощью селекторов обращается к каждому из них (несколькими способами - но результат тот же) и программно влияем на их свойства (считываем и меняем содержимое, переключаем класс, влияем на свойства отображения).
@@SweetCoder катастрофически не понимаю, как забирать контент для этого брайтона. Это какая-то эльфийская магия. Джаваскрипт я не знаю от слова "совсем". И вот выводить можно всякое разное, хоть окнами хоть таблицами, хоть рисунками, а как это в переменных получить?
@@azazel0618 давай сначала. что значит "забирать"? что именно нужно "получить в переменных"? в какой момент? конкретизируй задачу. а то общими словами вообще не понятно чего ты пытаешься добиться, что получается в итоге, и главное, что именно не получается
как сделать браузер на этом вашем питоне
Python-разработчикам больше не нужен JavaScript, но при этом они будут на нём писать в веб разработке ещё много лет. Проверяйте)
ну да.
Что за ерунда, зачем это надо? Не проще написать aleret('hello world') чем browser.aleret('hello world')
не понял вопроса. если ты пишешь сначала в пространстве JS, а потом начинаешь писать в каком-то другом (например Brython) - очевидно, что тебе может понадобиться писать что-то другое для достижения того же результата
@@SweetCoder я говорю о том, что Brython использует ключевые слова js через ненужные обертки. Проще изучить js, чем Brython. Проще выучить aleret('hello world'), чем костыль browser.aleret('hello world')
Lol в итоге все равно конвертируется в js
Это супер... эммм... это реальность?
эммм.... смотря о чём идет речь
Как, как вы на этом гавне под названием python что-то делать умудряетесь? Тут просто что-то сложнее Hello world запустить это гемор.
на самом деле нет. может просто дело в умственных способностях
А что насчет производительности по сравнению с js?
тут как нельзя лучше подходит теорема Эскобара
Знать бы что это)
@@1mpulse324 нууу, дружище. таким основополагающим материалом нужно владеть. в гугле и ютубе очень легко находится
нечего себе скоро может выйдет и фреймворк о0о BVUE,BREACT,BANGULAR?
это следующий этап ))
Офигеть
Питон шикарен. Отличная новость. Я тоже думаю что в дальнейшем всё-таки должен или появится браузер полностью поддерживающий питон или поддержка этого языка в существующих браузерах. Просто потому что на Питоне быстрее и легче писать разработку. А в бизнесе быстрота играет очень важную роль.
да, такие выводы имеют право на жизнь
Ну походу сорі, бо сайти должні бистро працювати, а пайтон раз так в 6-9 повільніше js. І добавим проблеми з скоростю обновленія html дерева. На пітоні ото тільки лейдінги писать.
И потом оно, такое удобное для бизнеса, будет запускаться только на супероборудовании промышленного масштаба. В чём я и вижу минус легкости изучения пайтона - люди после курсов не в состоянии изучить даже элементарные технологии, и пытаются найти удобный фреймворк, а когда и это не выходит (такова суровая реальность), то совсем разочаровываются в программировании. А по поводу поддержки в браузерах - сразу станет лакомым куском для хакеров всех видов, т.к. JS изначально создавался для использования в защищённом контексте, а пайтон придётся ещё допиливать. А затем и весёлые проблемы с GIL, переписыванием библиотек с Си-биндингами, что в конечном итоге приведёт к появлению ещё одного JS, только с отступами.
@@ДанилоПідгайнийІВ-93о, українська
"Pyton больше не нужен ! Привет Node + React !" 😄😄😄
Не патон а pityhon или python или "ПАЙТОН БЛЯЯЯЯЯЯЯТЬ *СТУК СТОЛА"
Здравствуйте, можете помочь решить проблему связанную с Brython?
А для чего вообще нужен джаваскрипт?
Хм, прикольно... интерактив так же можно полноценно писать как с js?
да, конечно
Больше видосов по Брайтону. Скульпту и Анвилу!
та куда ж уже больше?
пока топовые фреймворки и библиотеки не добавят пайтон, максимум где его будут использовать, это для проектов в портфолио. Что-то мне кажется что они этого даже не смогу сделать, ввиду того что невозможно будет полностью унифицировать эти две версии
блин так обидно, что везде js так люблю python он удобнее, логичнее, но никто ничего на нем не делает и ничего для него не адаптирует.. жалко что учила python очень долго и зря...((
О нет. Python захватывает мир...
не нужно так пугаться. всё будет хорошо
Можешь покозать как работать с файлами, у меня не получилось
Круті відео лайк)
nice!
Это видео заслуживает больше лайков
когда-нибудь так и будет
С помощью brython можно реализовать например Делегирование событий или всплытие событий какие ещё там прикалдесы есть например async / await ?
развёрнутый ответ на brython.info/static_doc/en/aio.html
@@SweetCoder спасибо ))
@@trypophobia7497 всегда пожалуйста
Супер!
Какая гадость...
согласен
АГА! Выкусили, джаваскриптизеры?
пока что еще никто ничего не выкусывал ))
@我叫 Дарик Ахах, я знаю, что на пайтоне сайты медленные, это был сарказм
Нифигасе
сам в шоке
я правильно понимаю, что не получится с помощью brython запустить ursina engine? По крайней мере, у меня не получается
ursina engine это та самая библиотека для 3д игр?
дизлайк за транслит в коде
😆😆 ничеси как строго
@@SweetCoder а что делать, работа такая)
11:20 проорал в голосину🤣👍👍👍
И на самом деле - мне кажется, что нет смысла заменять js на питон как браузерное решение... Один фиг - рано или поздно js выучится (тем более, что он сейчас везде в вакансиях торчит, да и написано почти все на нем🤷♂️).
ну это всё очень дискуссионные вопросы. я не могу согласиться с тем, что нет смысла в браузерном питоне. лучшее враг хорошему. конкуренция еще никому не навредила.
P.S. Ruby когда-то тоже торчал в каждой вакансии.
@@SweetCoder тоже верно, и тем не менее - тут просто выходит так, что добавляется уровень интерпретации, а это в свою очередь открывает не паханное поле для уязвимостей... Хотя идея конкуренции - топчик👍
@@takiekakmi7532 тут да. я ж и говорю, решение не идеальное и стоит эту библиотеку рассматривать как временное решение. если нет других вариантов. гораздо более прикольно будет использовать питон в браузере в нативном виде. без прослоек и ретрансляторов
Спасибо
на здоровье
Как всегда ты на высоте бро, 👍🤩👌👍
внезапно джаваскриптизеры заволновались
на самом деле вообще не заволновались 😅
JQuery: покинул чат.
Node с Vue и React: отделали brython.
Angular: замахивается битой.
Это я к тому, что да, мб для питонистов и выход, но мне до сих пор как то сложно воспринимать язык написанный на C++, а уж библу интерпретатор в js тем более.
P.S. Ничего не имею против питона, но каждому языку свои задачи.
Ну js тоже на c++ написан
@@fustqwerty а всё работает на машинном коде, так к чему это я, с таким подходом, можно дальше мериться, но каждому языку своя область применения и не стоит создавать просто библиотеку для компиляции python кода в js
Все думали что хуже реакта уже ничего не будет, но питонисты и тут смогли удивить...
в принципе, это должно стать девизом питонистов: "Мы можем удивить!"
чем тебе реакт не угодил?)
Какой ужас этот брайтон. Зачем изобретать велосипед, если уже давно придумали ракету (ангуляр, реакт, вью). Да нужно будет учить JS, но оно того стоит
я ж вроде как в видео говорил "зачем"
так приятно видеть на коментах где есть критика нет лайка автора)
@@superstarro какая критика?? 😂😂😂где здесь критика???
это круто, спасибо за такой полезный ролик!
на здоровье
Ну как всегда, учить не охото, значит напишем свое. Вопрос а зачем лес городить, мне и раньше питон не по душе был из-за разметки.
ну это дело сугубо индивидуальное. на вкус и цвет...
Тоже жду надеюсь и мечтаю о моменте когда браузер начнёт нативно работать на питоне) а то садишься писать на JS и с каждой строчкой кода чувствуешь что он состоит из костылей)
ну-ну, не так уж всё и плохо
@@SweetCoder ну вообще синтаксис - это что-то с чем-то) так и хочется, чтоб появился какой-нибудь новый стандарт ES, который структурирует языковые конструкции более логично)
например почему:
typeof someVar;
А не:
typeof(someVar);
Почему:
parseInt(a); parseFloat(a); Number(a), String(a);
А не:
Int(a); Float(a); Number(a); String(a);
=== - это вообще костыль какой-то
Просто у языка не было диктатора и он развивался стихийно((( обидно блин((( получается буквально несколько лет назад ситуация только начала налаживаться(((
@我叫 Дарик то понятно))) я имел в виду нативно в байткод)))
@@xm4dn355x typeof так пишется почти во всех языках, тут скорее питон нелогичен
Насчет парсов тоже спорный момент, в большинстве языков так же пишется, да и в каком то смысле это более очевидно
Насчёт ===
В c# "2" + 2 = "22"
Тут опертор + производит неявное преобразование
Js пошел дальше и производит неявное преобразование и с ==
Это не всегда удобно поэтому ввели ===
Язык не развивался стихийно просто у него другая философия:
Слабая типизация (против сильной в python), создание объектов из воздуха (против обязательных классов в python),
Встроинная асинхронность (против синхронного в питон) и т.д
Если говорить о питоне то меня напрягает наследования через скобки, поломанная область видимости, работа с json через одно место, virtual env которая добовляет головников туда куда не надо, requirements.txt это вообще лютейший костыль
Продолжать можно долго
По сути js это язык со своей философией которая сильно упрощает жизнь если с ней разобраться