The OpenNET Project / Index page

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

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

25.10.2022 13:01

Представлен релиз проекта Brython 3.11 (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).

Новый выпуск примечателен обеспечением совместимости с CPython 3.11 и реализацией большей части новых возможностей данной ветки, включая поддержку групп исключений и выражения "except*", детализации проблемных выражений в диагностических сообщениях и прикрепления примечаний к исключениям.

  1. Главная ссылка к новости (https://github.com/brython-dev...)
  2. OpenNews: Проект PyScript развивает платформу для выполнения Python-скриптов в web-браузере
  3. OpenNews: Выпуск Brython 3.10, реализации языка Python для web-браузеров
  4. OpenNews: В JIT-компиляторе Pyston-lite реализована поддержка Python 3.10
  5. OpenNews: Выпуск Nuitka 1.1, компилятора для языка Python
  6. OpenNews: Выпуск языка программирования Python 3.11
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57976-brython
Ключевые слова: brython, python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (70) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 13:05, 25/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Кто-нибудь действительно это использует?
     
     
  • 2.3, Аноним (3), 13:08, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Не существует ни одной причины для этого. А что?
     
  • 2.4, Анонимов Аноним Анонимович (?), 13:09, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Как минимум те, кто разрабатывает. И те, кто тестирует.
     
  • 2.30, Аноним (30), 17:57, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Для этого надо понять: насколько он удобнее TypeScript-а?

    Если не сильно - скорее всего мало кто.

     
     
  • 3.44, Аноним (-), 20:17, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • –10 +/
    1) TypeScript как минимум, современный язык, созданный через 20 лет после упомянутого недоразумения
    2) При создании TypeScript думали головой. Думали об эффективности работы, удобстве, технологичности и масштабируемости в большой компании
    3) В месте, где разработан TypeScript, употребление наркотиков запрещено.
     
  • 2.54, bw (ok), 03:07, 26/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я использовал в одном проекте. Пришлось отказаться из-за адово медленной "компиляции" при открытии страницы, пользоваться этим было не возможно. После компиляции работал более-менее быстро.
     
  • 2.82, Смузихлёб (ok), 03:06, 28/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Кто-нибудь действительно это использует?

    Использовали бы, если б не недоязык js в который это всё переводится.

     
     
  • 3.87, Вы забыли заполнить поле Name (?), 03:21, 28/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >> Кто-нибудь действительно это использует?
    > Использовали бы, если б не недоязык js в который это всё переводится.

    Ты же его не знаешь, как и все остальное. А если нет разницы, что зачем так расстраиваться?

     

  • 1.2, Аноним (-), 13:06, 25/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вот бы опеннет на что-то такое переписать или более модный фреймворк. Глядишь и луддитов меньше стало в комментариях потому что те отключают скрипты.
     
     
  • 2.6, 1 (??), 13:26, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +7 +/
    так напиши свой опеннет со смузями и чирлидершами.
     
  • 2.9, Ыыыыыы (?), 13:38, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Оперетте идеален! Иди пиши свои свистелки в другом месте
     

  • 1.5, iiiypuk (?), 13:13, 25/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > Bootstrap3

    Старенько

     
     
  • 2.17, Аноним (17), 14:53, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Несмузихлебом торопиться некуда, они и на разрешении 1024 посидят, с фиксированным размером пикселей
     
     
  • 3.34, Аноним (34), 18:55, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А куда надо торопиться? Подскажите
     
     
  • 4.47, Аноним (17), 20:38, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Надо торопиться хотя бы на bootstrap 4, где размеры определены не в пикселях, а в rem
     

  • 1.7, Аноним (7), 13:32, 25/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Т.е питон работает поверх жс библиотеки? Какие тормоза будут представили?
     
     
  • 2.8, Ыыыыыы (?), 13:36, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пост видимо не читал ты. Компилится в жс и потом он выполняется, тормоза такие же как в нативном жс будут плюс время на компиляцию.
     
     
  • 3.10, Без аргументов (?), 13:47, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И еще нейронку туда впихнут
     
     
  • 4.13, Аноним (13), 14:09, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, внутре у нее тензорка. Для думания.
     
  • 4.20, Аноним (17), 15:06, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С этих станется, необразованные js-ники, не знающие отличия гарвардской архитектуры от фон неймовской, могут даже нейтронку в транслятор запихнуть, а транслятор в нейтронку
     
     
  • 5.24, 1 (??), 15:33, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    у одного нейтронка, у другого нейронка ... Чем архитектурами меряться - пошли бы припали к первоисточнику - НЕОНКА там ...
     
  • 5.25, Без аргументов (?), 15:57, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    TensorFlow: возможно, вы имели в виду: электронку?
     
  • 3.40, _kp (ok), 19:55, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Помимо крепких тормозов на ненужную компиляцию, сомневаюсь что скомпилированный код будет таким как оптимизированный и протестированный яваскипт.

    Что то мешало авторам у себя компилировать что угодно в яваскрипт, ТЕСТИРОВАТЬ, и только потом выдавать страницы.

    Сама идея - ересь.

     
     
  • 4.70, Анононим (?), 03:18, 27/10/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы можете сомневаться в чем угодно, но это отличная возможность получить в перспективе более оптимизированный код - так как компилятор может сгенерировать более эффективные конструкции, чем это сделает среднестатистический разработчик на js.
     
     
  • 5.73, _kp (ok), 10:48, 27/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это невозможно Вариант 1 Загружается как то ортимизированный и протестированны... большой текст свёрнут, показать
     
  • 3.48, ИмяХ (?), 21:05, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Но ведь написано же ВМЕСТО javascript, то есть заголовок намекает, что жаваскрипт не нужен, а в итоге получается, что нужет. Опять маркетинговый обман чистой воды.
     

  • 1.11, Аноним (11), 13:48, 25/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А как правильно в терминологии компуктер сца енс его назвать ? Это не интерпретатор и не конпилятор , трансклюкатор наверное ?
     
     
  • 2.15, Аноним (15), 14:44, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Транслятор
     
  • 2.16, Аноним (3), 14:46, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Жсники называют это трансплиттер но это придуманный жсниками термин. Можно воспринимать просто как транслятор в жс.
     
     
  • 3.18, Аноним (17), 15:02, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Какой смузихлебныц термин, почему бы сразу не назвать смузификатор
     
  • 2.19, Аноним (17), 15:03, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    source-to-source translator, source-to-source compiler (S2S compiler)
     
  • 2.35, Аноним (34), 19:02, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > А как правильно в терминологии компуктер сца енс его назвать ?

    "сыканомить на пограмистах"

     

  • 1.14, Смузихлёб (ok), 14:42, 25/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    > На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера.

    Отвратительная реализация. Лучше бы браузер был чем-то типа java машины, в которую можно скармливать байт-код. Мусорный язык javascript уже достал, его пихают уже даже в микроконтроллеры.

     
     
  • 2.21, Аноним (17), 15:11, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Нужно разработать браузер для которого скрипты бы писались на Си. И чтобы небыло свистелок и не тормозил.
    На опеннет так много программистов что удивительно что они не написали такой браузер
     
  • 2.26, Без аргументов (?), 15:59, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    да, пока даже WebAssembly бинари нельзя запустить не через ЖС...
     
     
  • 3.27, Без аргументов (?), 16:01, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    и даже не надо тут про клозет-сорс бинарей. то, что они делают перегонами из тайпскрипов вебпаками, пакуя в *min.js, качая из троянов из NPM, это вообще мелочь
     
     
  • 4.39, Аноним (17), 19:20, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    У typescript 0 зависимостей и имеет команды сборки проекта сам по себе.

    Веб-пак и 22000 пакетов в npm modules это не что-то, абсолютно неотьемлимое

    https://res.cloudinary.com/practicaldev/image/fetch/s--SAwxyw8y--/c_limit%;2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xqpdulrw4vi4ixw5ka0q.

     
     
  • 5.53, Без аргументов (?), 01:12, 26/10/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Веб-пак и 22000 пакетов в npm modules

    покажите проект без node_modules?

     
     
  • 6.69, Смузихлёб (ok), 20:14, 26/10/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > покажите проект без node_modules?

    99% "проектов" пишутся спокойно без ООП и без сторонних библиотек и фреймворков за 1 вечер, если есть профильное образование, понимание того как это работает и умение в алгоритмы. Но если человек как макака повторяет то, что увидел в "гуру" из Ютуба, то вопросов нет.

     
     
  • 7.86, Аноним (86), 03:19, 28/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    профильное образование это что ? последнее время так форсируется эта тема, ждем наплыв свежей инфоциганятинки ?
     
  • 2.62, freecoder (ok), 10:55, 26/10/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть же WebAssembly
     
     
  • 3.68, Смузихлёб (ok), 20:12, 26/10/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Без JS не работает
     
  • 2.64, Аноним (64), 12:04, 26/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В байткод проще прятать зловредный код.
     
  • 2.71, Аноним (71), 07:30, 27/10/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вы говорите, что реализация отвратительная - что конкретно в ней не так? Пример бы что ли привели...
     

  • 1.28, Аноним (28), 17:08, 25/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >позволяющей использовать Python _____вместо_____ JavaScript для разработки скриптов для Web
    >Подключив библиотеки brython.js и brython_stdlib.js

    Это шутка такая? JS же никуда не пропадает, просто добавляется дополнительная либа-транслятор...

     
     
  • 2.29, Аноним (17), 17:33, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Даже когда скрипты пишут на JavaScript, их транслируют в js более старых версий, чтобы работал в большем количестве браузеров.
    Нет ничего плохого от транслятора самого по себе.
     
     
  • 3.41, _kp (ok), 20:02, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если на перекомпиляция стороне разработчика, то да.

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

    Авторы проходят квест на персональный котёл в аду?

     

  • 1.31, Аноним (30), 17:59, 25/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А почему не WebAssembly?
     
     
  • 2.63, freecoder (ok), 10:57, 26/10/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    В WASM нет сборщика мусора, а в JS - есть.
     

  • 1.33, YetAnotherOnanym (ok), 18:48, 25/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    А что, жабаскрипт настолько сложнее питона, что для человека, умеющего в питон, изучение жабаскрипта становится непреодолимым препятствием?
     
     
  • 2.42, Аноним (42), 20:11, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • –11 +/
    Стремление к анархии и желание разрушать у детей проходит с возрастом. Проблема в том, что они могут много чего напороть, пока вырастут.... Уберите питон от школьников!!!
     
  • 2.46, Смузихлёб (ok), 20:27, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Дело не в сложности. JS один из самых лёгких, раз привлекает столько макак-самоучек без профильного образования. Дело в том, что это априори недоязык для мигания строкой состояния в окне браузера, который фундаментально был только на это и рассчитан.

     
     
  • 3.49, Вы забыли заполнить поле Name (?), 23:56, 25/10/2022 [^] [^^] [^^^] [ответить]  
  • –9 +/
    > Дело в том, что это априори недоязык для мигания строкой состояния в окне браузера, который фундаментально был только на это и рассчитан.

    Судя по кол-ву ресурсов влитых в v8 и активность в tc39 приоритеты давно поменялись.

     
     
  • 4.52, Смузихлёб (ok), 00:45, 26/10/2022 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Судя по кол-ву ресурсов влитых в v8

    Если бы не вливали, не было бы новых продаж. Сейчас даже на i9 браузер съедает порой до 50% мощности всех ядер при загрузке некоторых страниц.

     
     
  • 5.55, Вы забыли заполнить поле Name (?), 03:22, 26/10/2022 [^] [^^] [^^^] [ответить]  
  • –10 +/
    > Если бы не вливали, не было бы новых продаж. Сейчас даже на
    > i9 браузер съедает порой до 50% мощности всех ядер при загрузке
    > некоторых страниц.

    С темы не спрыгивай. js полноценный язык сейчас с быстрым движком и инфраструктурой.

     
  • 5.79, Вы забыли заполнить поле Name (?), 02:03, 28/10/2022 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Если бы не вливали, не было бы новых продаж.

    Какие продажи? Гугл развивал в первую очередь свои проекты, такие как почта, например. Для этого им нужен был быстрый js. А что у тебя страницы некоторые грузит, так это вопрос к их авторам.

     
  • 5.90, Ыыыыыы (?), 16:11, 28/10/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> Судя по кол-ву ресурсов влитых в v8
    > Если бы не вливали, не было бы новых продаж. Сейчас даже на
    > i9 браузер съедает порой до 50% мощности всех ядер при загрузке
    > некоторых страниц.

    А причём тут жс? Может авторы скриптов что-то не так написали? Приведи примеры таких страниц.

     
     
  • 6.94, анонимсрлд (?), 08:37, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Gmail
     
     
  • 7.95, Ыыыыыы (?), 16:43, 31/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Gmail

    Хз. У меня ок работает. Напиши в поддержу

     
  • 3.72, Аноним (71), 07:34, 27/10/2022 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Отнюдь. На js очень сложно написать надежный, безопасный и быстрый код. Уровень вхождения в язык может вводить в заблуждение, но обманываться не стоит.
     
     
  • 4.74, Смузихлёб (ok), 17:37, 27/10/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чаще повторяй, авось поверишь что ты настоящий айтишник и умеешь погромировать не только фреймворки
     
     
  • 5.89, Ыыыыыы (?), 16:07, 28/10/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Очень странные заявления высосанные из пальца.в других языках точно также есть фреймворки, так, например, человек досконально знающий плюсы - это скорее всего член комитета стандартизации. Совсем не обязательно знать все, чтобы писать рабочий и надежный код.

    А что касается жс, то основные упячки уже давно исправили в новых стандартах. По факту es2015 это как с++11. А далее небольшими итерациями улучшения каждый год с фидбеком от разработчиков движков.

     
     
  • 6.91, Смузихлёб (ok), 17:26, 28/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Фреймворки используют только вэб-макаки. А настоящий инженер и программист с профильным образованием, обязательно всё будет писать с нуля, в первую очередь для оптимизации и облегчения как кодовой базы, так и понимания самого кода. Говорю как программист сорок лет проработавший на ведущем оборонном предприятии.
     
     
  • 7.92, Вы забыли заполнить поле Name (?), 17:53, 28/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Говорю как программист сорок лет проработавший на ведущем оборонном предприятии.

    С этого и надо было начинать. Ясно-понятно. Вопросов больше не имею.

     
  • 7.93, Ыыыыыы (?), 18:07, 28/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Фреймворки используют только вэб-макаки. А настоящий инженер и программист с профильным
    > образованием, обязательно всё будет писать с нуля, в первую очередь для
    > оптимизации и облегчения как кодовой базы, так и понимания самого кода.

    Это противоречие. Фреймворки берут как раз для оптимизации и облегчения как кодовой базы как раз, чтобы новым людям фреймворк был уже знаком и они легче вливались в проект. Иначе, ему придется изучать неизвестный код, который повторяет в большинстве случае кривым образом уже существующие решения.

    > Говорю как программист сорок лет проработавший на ведущем оборонном предприятии.

    И на чем же там писали код? Есть разные задачи, но для ui, особенно клиент-серверной архитектуры js сейчас одно из основных решений. Очень странно это отрпицать. Даже в космическом корабле SpaceX используется js (с фолбэками, конечно, но все же).

     
  • 4.77, Вы забыли заполнить поле Name (?), 01:59, 28/10/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Отнюдь. На js очень сложно написать надежный, безопасный и быстрый код. Уровень
    > вхождения в язык может вводить в заблуждение, но обманываться не стоит.

    Ничем не отличается от других языков в принципе. Тем более сейчас есть typescript. Но и до него был closure library и closure compiler, которые, кстати, google до сих пор используется в gmail, gmaps и других проектах. Чтобы писать надежный код нужно нормально проектировать архитектуру, а это от языка не сильно зависит.

     

  • 1.65, Аноним (64), 12:06, 26/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ждём браузер Brython Beach, написанный на Brython :)
     
  • 1.96, Илья (??), 22:04, 02/11/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А нельзя это вместо Бабеля использовать?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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