The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск Brython 3.10, реализации языка Python для web-браузеров

08.10.2021 23:03

Представлен релиз проекта Brython 3.10 (Browser Python) с реализацией языка программирования Python 3 для выполнения на стороне web-браузера, позволяющей использовать Python вместо JavaScript для разработки скриптов для Web. Код проекта написан на языке Python и распространяется под лицензией BSD.

Подключив библиотеки brython.js и brython_stdlib.js, web-разработчик может использовать язык Python для определения логики работы сайта на стороне клиента, применяя Python вместо JavaScript. Для включения Python-кода на страницы используется тег <script> с mime-типом "text/python". Допускается как встраивание кода на страницу, так и загрузка внешних скриптов (<script type="text/python" src="test.py">). Из скрипта предоставляется полный доступ к элементам и событиям DOM. Помимо доступа к стандартной библиотеке Python предлагаются специализированные библиотеки для взаимодействия с DOM и JavaScript-библиотеками, такими как jQuery, D3, Highcharts и Raphael. Поддерживается использование CSS-фреймворков Bootstrap3, LESS и SASS.

Выполнение Python-кода из блоков <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление "<body onload="brython()">". На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).

Итоговая производительность большинства операций во встраиваемых в web-страницы Python-сценариях близка к производительности CPython. Задержка возникает только на этапе компиляции, но для её устранения предоставляется возможность загрузки предварительно скомпилированного в JavaScript кода, которая применяется для ускорения загрузки стандартной библиотеки (Brython предоставляет инструментарий для создания JavaScript-библиотек на основе модулей Python).

Новый выпуск примечателен обеспечением совместимости с Python 3.10, включая поддержку операторов для сопоставления с образцом (match/case). В новой версии также предложена начальная реализация абстрактного синтаксического дерева (AST, Abstract Syntax Tree) для языка Python, которое в последующем может быть использовано для генерации кода JavaScript из универсального AST.

  1. Главная ссылка к новости (https://groups.google.com/g/br...)
  2. OpenNews: Выпуск Brython 3.9, реализации языка Python для web-браузеров
  3. OpenNews: Языку Python исполнилось 30 лет
  4. OpenNews: Facebook открыл код Cinder, форка CPython, используемого в Instagram
  5. OpenNews: Проект Pyston, предлагающий Python с JIT-компилятором, вернулся к открытой модели разработки
  6. OpenNews: Выпуск языка программирования Python 3.10
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/55940-brython
Ключевые слова: brython, python, javascript
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:12, 08/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А разве в html и xhtml не допускается сокращение whitespace при разборе?
     
     
  • 2.26, Аноним (26), 07:58, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лол, питон ещё более тормозной чем жс, а тут вдобавок работа устроена через жс библиотеку
     
     
  • 3.29, Аноним (29), 10:15, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Лол, питон ещё более тормозной чем жс, а тут вдобавок работа устроена
    > через жс библиотеку

    А просто современные браузеры жрут недостаточно, вот уже реализацию части функций вынесли на GPU, так что недостаточно чтобы тормозило из-за JS, надо чтобы ещё тормозило из-за бедона, а то иш, нипарядок, теперь надо чтобы и видяху пользователь апгрейдил ради браузера, а не только ОЗУ!

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

     
     
  • 4.37, Ору с хейтеров неважно чего (?), 13:26, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    У тебя только и хватает мозга чтоб "ванговать". Тяжко жить когда вместо башки бидон?

    "теперь надо чтобы и видяху пользователь апгрейдил ради браузера, а не только ОЗУ"

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

     

  • 1.2, Аноним (2), 23:24, 08/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Питон вместо жабаскрипта - это нужно. Из двух зол выбираем меньшее.
     
     
  • 2.3, annon (?), 23:30, 08/10/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Выбирай третье - Tcl!
     
     
  • 3.4, имя_ (?), 23:33, 08/10/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    лишп же
     
     
  • 4.5, имя_ (?), 23:39, 08/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кстати, забавный факт: проект r5js раньше назывался gay lisp, а сам репозиторий github.com/Ubehebe/Gay-Lisp редиректит уже на новое название https://github.com/Ubehebe/r5js
     
  • 3.22, псевдонимус (?), 04:42, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Поддерживаю.
     
  • 2.25, ИмяХ (?), 07:47, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага, Python, работающий на библиотеках .js
     
     
  • 3.42, Аноним (42), 14:21, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Компилируется в js, как я понял.
    Просто код можно писать на питоне, только не понятно зачем.
     
     
  • 4.45, RomanCh (ok), 15:36, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Просто код можно писать на питоне, только не понятно зачем.

    За тем же, зачем и жоэс на сервере, только наоборот.

    Теперь бизнес сможет сэкономить, вместо необходимости оплачивать криворуких бэкендеров + криворуких фронтендеров, теперь можно заставить криворуких бэкендеров писать фронты.

     
  • 4.55, YetAnotherOnanym (ok), 22:09, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Затем, что питон оттянул на себя часть популяции макак, неспособных выучить более одного языка, а индустрия сбора перданных нуждается в разрабах браузерных аппликух.
    Помяни моё слово, с помощью этой хрени на питоне ещё будут писать десктопные приложения под электрон.
     
  • 2.32, Админ Анонимов (?), 11:20, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Питон вместо жабаскрипта

    не вместо а сверху

     

  • 1.6, Dzen Python (ok), 23:49, 08/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    ПрЫлестно, ну просто прЫлестно.

    Так, я правильно догнал, что перед рендерингом страницы:
    1) после загрузки текста компом клиента идет вызов прослойки;
    2) прослойка подтягивает за собой сомоё себя и специфичные фреймворки;
    3) прослойко компилирует (какая нах*й компиляция? простая трансляция между видами говен) сам питоновый скрипт и подтянутые питоновые фреймворки в представление на js;
    4) передаёт управление движку разбора js с параметрами в виде портянок из насранного;
    5) движок стандартно определяет js'ные зависимости у портянки и разрешает их уже на уровне чисто js'ных "либ";
    6) Стандартный разбор, предкомпиляция и исполнение полученного js
    ?

    Больше абстракций и прослоек богам абстракций и прослоек!
    Так победим!
    Инновации! Нанопитон! Брайтон!

     
     
  • 2.10, Аноним (2), 00:23, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вот будущее веба, к которому все идет

    https://github.com/marceloboeira/rust-elm

     
     
  • 3.12, Аноним (12), 01:17, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Значит в вебе вы совершенно не разбираетесь. Раз считаете это будущим.

    Будущее вполне очерчено и очевидно. Революций не предвидится.

    Это чистый JavaScript с новыми улучшениями - функциональными фишечкамм вроде pattern matching и т.п.

    Всё больше новых возможностей Web API, вроде WebGPU.

    Это безусловно TypeScript. За 5 лет TypeScript обгонит чистый JavaScript .

    Это WASM.

    React как был, так и останется доминирующим web framework-ом. Но с новыми классными и крутыми обещанными фичами вроде Concurrent Mode.

    Надо совсем ничего не понимать в веб или быть отбитым фанатиком, считая что Elm - это будущее. Нет, все эти проекты сейчас не более чем прикольные концепты/поделки. В production их никто тянуть не будет.

     
     
  • 4.13, имя_ (?), 01:43, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    та ладно, elm давно уже пиарится, по крайней мере noredink уж точно, даже работу предлагают, связанную с ним
     
     
  • 5.19, Аноним (12), 03:23, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Его пишет один программист-основатель в свободное от работы время. Коммиты раз в несколько месяцев.

    Последний релиз в 2019 году. О чём тут вообще говорить.

    А то что какие-то дурачки на него заложились...

    И теперь если понаписали кучу кода что им ещё делать? Только нанимать.

     
     
  • 6.23, Аноним (23), 05:08, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Эльм полная ерунда, но коммиты раз в месяц это вполне себе нормальное развитие. У многих баги годами висят, а мажорные версии выходят каждые 2 недели.
     
  • 6.33, Рева RarogCmex Денис (?), 11:36, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/

    Будущее за Purescript.
     
  • 4.15, Аноним (2), 02:18, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Будущее вполне очерчено и очевидно
    >Это чистый JavaScript с новыми улучшениями
    >Надо совсем ничего не понимать в веб или быть отбитым фанатиком

    Это про фанатиков.

    >считая что Elm - это будущее. Нет, все эти проекты сейчас не более чем прикольные концепты/поделки

    Вот именно. Концепция rust-elm там и задана. В том числе, как новон средство доставки этих ваших копипаст и рекламных идентификаторов с маячками.

     
  • 4.16, Аноним (2), 02:26, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Всё больше новых возможностей Web API, вроде WebGPU.

    Это чтобы майнить, как хром?)

    >Это безусловно TypeScript. За 5 лет TypeScript обгонит чистый JavaScript .

    Крайний раз слышал это года 3 назад. А Вы еще 5 накинули.

     
     
  • 5.17, Аноним (12), 03:11, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Практически все крупные open-source проекты и библиотеки были переписаны на TypeScript. Особенно в 2020-2021 много было.

    Накинул 5 лет для окончательной и тотальной победы над чистым JavaScript.

     
  • 2.21, СССР (?), 03:43, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а людине думают, люди схавают, скажут хайпово, удобно, что моль это лекарство от их боли, что типа у нас на бэке и на фронте один язык, как они бедные раньше жили то.
    увы но человек мельчает , это видно.
     

  • 1.7, pashev.me (?), 23:54, 08/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    VBScript снова в моде.
     
  • 1.8, Alladin (?), 23:56, 08/10/2021 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –1 +/
     
     
  • 2.9, Аноним (2), 00:19, 09/10/2021 Скрыто модератором
  • +1 +/
     
     
  • 3.11, Аноним (11), 00:37, 09/10/2021 Скрыто модератором
  • +1 +/
     

     ....ответы скрыты модератором (2)

  • 1.14, Аноним (14), 02:12, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Теоретически такие вещи интересно делать как фреимворк, а не как голый Python. По аналогии с Microsoft Blazor. Это фреимворк, который тянет .NET Core в WASM и качает скомпилированные dll-ки вместо JavaScript. Звучит дико, но это новость из той же оперы, что и Brython.

    Такое интересно для фулстек девелоперов... вот только им нужен фреимворк, который собирает этот фулстек а не просто язык, и что-то мне подсказывает, что Jango с его MVC с этим не совместить. В такой ситуации интересна генерация кода для RESTful API фронтенда к бекенду, на основании объектов... хотя о чем это я это же питон...

     
  • 1.18, jOKer (ok), 03:14, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не, это все не то. Детские игрушки

    На самом деле, что бы питон для браузера взлетел, требуется _сборка_ вебпаком питонячьего SPA в js. По итогу, должен появится бандл который затем будет исполнен на стороне браузера. Нужна виртуальная DOM и вменяемый шаблонизатор.... А все об чем здесь чирикают школоло, не более того

     
  • 1.20, СССР (?), 03:41, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    херней занимаются честное слово
     
  • 1.27, Аноним (27), 08:57, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Как  его называть Брайтон? По аналогии с Пайтон.
     
     
  • 2.38, Аноним (23), 13:35, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Можно просто Бич. Олд Бич
     

  • 1.28, Аноним (28), 09:21, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    И никто не пошутил за Брайтон Бич.

    Я вас умоляю...

     
     
  • 2.39, Аноним (39), 13:54, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >И никто не пошутил

    Брайтон беч, и заметь не биичь.

    А впрочем у русских в штатах репутация давно подмочена.

     
     
  • 3.44, Жорш (?), 15:13, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да что ты знаешь за русских?
     
  • 2.48, Аноним (48), 16:17, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >И никто не пошутил за Брайтон Бич.

    Кекающим детям это ни о чем не говорит, а старичьё...

     
     
  • 3.49, Жорш (?), 16:26, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    КЕК
     

  • 1.30, Аноним (30), 10:18, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >позволяющей использовать Python вместо JavaScript
    >brython.js и brython_stdlib.js

    Шиза

     
  • 1.31, BrainFucker (ok), 10:22, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хз нафига оно, знающим питон несложно осилить JS, тем более эти языки отличаются только синтаксисом немного.
     
     
  • 2.34, Рева RarogCmex Денис (?), 11:59, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    У js синтаксис написан поехавшими инопланетянами для поехавших инопланетян. Это не хорошо и не плохо, это данность.
    Не всем это нравится.
     
     
  • 3.35, BrainFucker (ok), 12:00, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Например?
     
  • 3.40, Аноним (40), 14:02, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    javascript имеет Си подобный синтаксис. Утверждать что javascript имеет синтаксис для инопланетян все равно что утверждать что ANSI C имеет синтаксис для инопланетян. То есть быть необразованной макакой не умеющий самый лучший язык ANSI C.
     
  • 3.46, RomanCh (ok), 15:45, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > У js синтаксис написан поехавшими инопланетянами для поехавших инопланетян.

    Вы так говорите, будто у бидона лучше. Да они друг друга стоят.

     
  • 2.43, Аноним (43), 14:44, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > эти языки отличаются только синтаксисом немного
    > JS - loose, Pythin - strong.

    Мелочь-то какая, да.

     
  • 2.56, Аноним (56), 01:59, 10/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Сложно!
     

  • 1.36, нах.. (?), 12:30, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    У людей совсем с головой плохо. Питон через жв через брявзер... пичально это все.
     
     
  • 2.47, RomanCh (ok), 15:46, 09/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нормальные бизнес-инновации. А что вы хотели?
     

  • 1.41, Аноним (40), 14:08, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Для включения Python-кода на страницы используется тег <script> с mime-типом "text/python". Допускается как встраивание кода на страницу, так и загрузка внешних скриптов (<script type="text/python" src="test.py">)

    Для сравнения typescript, jsx, kotlin.js только компилируются в js во время сборки. Бесполезные задержки на время компиляции и ненужная загрузка компилятора при каждом обновлении страницы там отсутствуют.

     
  • 1.51, анан (?), 18:44, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Представляю как ноутбуки гудеть будут на страничках с таким чудом. Хотят питон в веб, вон открытые браузеры, напишите модуль, который будет прямо в движке интерпретировать и выполнять питон. JS реализация конечно тоже нужна, чтобы дать попробовать и для обратной совместимости со старыми браузерами, но если будет только она - закопать и не вспоминать.
     
  • 1.52, Аноним (-), 18:46, 09/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    можно десяток-другой докеров запустить и питон уделяет всех по скорости, а яву по потреблению памяти
     
  • 1.57, Аноним (57), 00:02, 11/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лишь бы Haxe не использовать...
     
     
  • 2.58, Аноним (58), 13:00, 11/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Неизвестен 99.999%-м
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру