The OpenNET Project / Index page

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

Выпуск Brython 2.0, реализации языка Python для web-страниц

16.02.2014 22:50

Представлен релиз проекта Brython 2.0 (Browser Python), в рамках которого развивается реализация языка программирования Python 3, предназначенная для выполнения на стороне web-браузера. Brython может использоваться вместо JavaScript для разработки скриптов для Web. Размер библиотеки brython.js около 300 Кб.

Подключив библиотеку brython.js, web-разработчик может использовать язык Python для определения логики работы сайта на стороне клиента, используя Python вместо JavaScript. Для включения Python-кода на страницы используется тег script с mime-типом "text/python". Из скрипта предоставляется полный доступ к элементам и событиям DOM. Метод работы Brython сводится к предварительной компиляции Python кода в представление на языке JavaScript с последующим его выполнением штатным JavaScript-движком браузера.

В версии 2.0 обеспечена поддержка базового синтаксиса языка Python и многих встроенных Python-модулей. Добавлена возможность обеспечения взаимодействия Python-кода с библиотеками на языке JavaScript. На сайте проекта можно найти коллекцию примеров, демонстрирующих возможности Brython для выполнения различных действий, например, типичных обработчиков форм, кириллической web-клавиатуры, поддержки Ajax, WebSockets и API для работы с локальным хранилищем, создания SVG и 3D-графики. Для экспериментов с Brython доступна работающая в web-браузера реализация интерактивной консоли Python.

  1. Главная ссылка к новости (http://permalink.gmane.org/gma...)
  2. OpenNews: Работа по интеграции языка Python в web-браузеры
  3. OpenNews: Реализация Ruby и Java на JavaScript
  4. OpenNews: Возможность разрабатывать скрипты для web-браузера на языках Си и Python
  5. OpenNews: Реализация языка Python на JavaScript и транслятор кода Python в JavaScript
  6. OpenNews: Вышел Pythonium 0.4.7, компилятор из Python в JavaScript
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/39102-python
Ключевые слова: python, web, javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (53) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 23:17, 16/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    наоборот, годнота
     
     
  • 2.3, Аноним (-), 23:32, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    ты видимо вообще не имеешь представление о клиентско-браузерных технологиях, чтобы оценить насколько это извращение. но увидел знакомое слово и сразу заимел мнение. ну-ну
     
     
  • 3.5, jvyjvyjvybvec (?), 23:47, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну-ка расскажи нам, чем же Python сильно отличается на js, да еще и таким образом, что не позволяет использовать его на стороне клиента.

    >клиентско-браузерных технологиях

    Ну а это отдельный лол.

     
     
  • 4.10, Аноним (-), 00:11, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > да еще и таким образом, что не позволяет использовать его на стороне клиента

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

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

     
     
  • 5.13, jOKer (ok), 00:30, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >так что да - эмуляция Python - извращение

    А "эмуляцию" сишных прог в js вы извращением не считаете, нет?

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

    А вы знаете другой способ заценить новинку?

     
     
  • 6.15, Аноним (-), 00:59, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > в качестве академического исследования еще идет

    мой ответ на оба вопроса

     
  • 3.7, Аноним (-), 23:52, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ты видимо вообще не имеешь представление о клиентско-браузерных технологиях, чтобы оценить
    > насколько это извращение. но увидел знакомое слово и сразу заимел мнение.
    > ну-ну

    мсье знает толк? ;)

     
  • 3.9, Аноним (-), 00:08, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >ты видимо вообще не имеешь представление о клиентско-браузерных технологиях

    Почитай сперва документ ECMA 262, если найдёшь хоть слово о клиентах или браузерах, тогда и будем сравнивать.

     
     
  • 4.11, Аноним (-), 00:12, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    надеваем очки, читаем новость:

    > предназначенная для выполнения на стороне web-браузера
    > web-разработчик может использовать язык Python для определения логики работы сайта на стороне клиента

    а потом придираемся, ага. нигде не написано про другое использование

     
  • 3.16, Аноним (-), 01:11, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Жаваскриптерам-фронтэндщикам отсутствие представления о серверном программировании не мешает писать под node.js.
     
     
  • 4.21, Аноним (-), 04:35, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    что из этого получается - всем известно
     
     
  • 5.40, Аноним (-), 10:27, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > что из этого получается - всем известно

    ага, paypal например

     

  • 1.8, jOKer (ok), 00:08, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Забавная штучка. И вроде все на месте, даже асинхронная подгрузка кастомных модулей заявлена. Разве что не совсем понятно как обойти политику одного источника... ну да это уже мелочи - в крайнем случае можно имортировать свои js-модули.

    А что до 300кб, так в если оно будет в СDN, то размеры его не очень-то кого и будут волновать.... при постройке Ынтерпрайз гуя - уж точно не будут.

    Надо будет что-нибудь дельное на нем попытаться накодить. Очень занимательно сделано... да.

    Хорошая новость - плюсую.

     
  • 1.12, Аноным (ok), 00:28, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Почему не препроцессор?
     
  • 1.14, web (?), 00:34, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    интересная штука, но если бы сорцы были на гитхабе то былоб заметнее для интересующейся публики.
     
     
  • 2.22, Аноним (-), 04:38, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    На гитхабе, очевидно, нет поддержки Mercurial.
     

  • 1.18, qwewewewewep (ok), 01:48, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    По-моему JS красивее и гибче.
    В чем цимес Питона ?
     
  • 1.19, Филипп Филиппович (ok), 02:22, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Что ж, во всяком случае, забавно. В будущую феерическую популярность этой технологии мне поверить довольно трудно, но всё равно молодцы. Может, где-нибудь для смеха и использую, хотя направление в целом всё же не кажется перспективным.
     
     
  • 2.28, Lain_13 (ok), 08:28, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А потом ещё вот этим воспользуйся: http://summerofgoto.com/
     
  • 2.63, Филипп Филиппович (ok), 21:04, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Какая красота в этой интерактивной консоли видна! Даже багрепорт сделал.

    >>> bytes #OK

    <class 'bytes'>
    >>> type(b"abcd") is None # Oops...

    True

     
     
  • 3.67, Филипп Филиппович (ok), 11:40, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Баг подтвердили, уже перевели в resolved.
     

  • 1.20, Аноним (-), 03:49, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Продолжают лепить жуткие костыли.
    С другой стороны, pyjs ещё страшнее и непонятнее. Непонятно, зачем делать эти костыли?
     
  • 1.23, Аноним (-), 05:39, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А как же значимые пробелы для отступов строк? Будет же трафик с преобладанием пробелов.
     
     
  • 2.29, Lain_13 (ok), 08:33, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну это не проблема. Код на питоне можно упаковать в зип-архив и распаковать его на стороне клиента при помощи unzip, написанном на js. Могу придумать ещё несколько не менее ужасающих способов.
     
     
  • 3.44, aikus (?), 11:08, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Дык без пробелов всё равно меньше будет, чем с пробелами.
    И в добавок gzip и unzip умеют все сервера и браузеры соответсвенно.
     
     
  • 4.48, Lain_13 (ok), 11:29, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > gzip и unzip умеют все сервера и браузеры соответсвенно

    Скажи это тем, кто изобрёл function(p,a,c,k,e,d) -_-

     
  • 2.54, Comrade_Flammpanzer (?), 13:08, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Табуляция же. Пробелы для плебеев. :3
     
  • 2.56, Аноним (-), 14:49, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А как же значимые пробелы для отступов строк? Будет же трафик с
    > преобладанием пробелов.

    А что, Сквид еще не изобрели?

     

  • 1.24, Аноним (-), 06:13, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    php.js
     
     
  • 2.27, бедный буратино (ok), 08:17, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Круто, а смысл? Синтаксис похож, а по возможностям, особенно если брать какую-нибудь версию 5.2, у php 5% возможностей javascript. Чтобы писать в три раза больше кода? :)
     
     
  • 3.31, Lain_13 (ok), 08:40, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чтоб можно было хостить php-страницы на хостинге без php и выполнять всё на стороне клиента, включая конструирование sql-запросов к локальной копии БД, так-как хостинг доступа к базе тоже не предоставил. В конце-концов почему бы не отдавать всю базу сайта каждому посетителю и синхронизировать её между всеми? Тему можно развивать.
     
     
  • 4.37, бедный буратино (ok), 09:18, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Чтоб можно было хостить php-страницы на хостинге без php и выполнять всё
    > на стороне клиента, включая конструирование sql-запросов к локальной копии БД, так-как
    > хостинг доступа к базе тоже не предоставил. В конце-концов почему бы
    > не отдавать всю базу сайта каждому посетителю и синхронизировать её между
    > всеми? Тему можно развивать.

    Тогда у меня возникает вопрос, зачем вообще использовать php? Потому что гибкая обработка этих данных (гибкая - это одна строка, а не десять многострочных функций на каждый чих) - это совсем не к php, уж лучше js использовать. Например, js + couchdb сэкономит очень-очень много времени. Какой смысл для данной задачи использовать php?

     
     
  • 5.47, Lain_13 (ok), 11:25, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ты что, это ж придётся JS изучать!

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

     
     
  • 6.50, бедный буратино (ok), 11:51, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А разве php.js ещё нет? По-моему, есть.

    Нет, js изучать не придётся. Придётся где-то скопировать функцию загрузки json/jsonp, а остальное, вроде можно мыЖкой накликать.

    Проблема php обычно именно в том, что для них весь мир - это php (и mysql), и они даже знать не хотят об очень простых решениях, которые валяются буквально под ногами и не требуют серьёзных усилий. :) Думаю, в мире уже стартовало не меньше 10000 проектов ядра ОС на php и mysql :)

     
     
  • 7.52, бедный буратино (ok), 11:55, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    http://phpjs.org/about/

    я вообще ничего не понял. нет, текст я перевести смог, но смысла от этого не прибавилось - что это, куда и почему?

     
  • 3.41, angra (ok), 10:30, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    5% говоришь? То есть одна двадцатая. Ну давай посмотрим. Я буду приводить пример того, что есть в обоих языках, а ты в ответ будешь показывать 19 примеров разных возможностей, которые есть только в js, но нет в php.

    1. В обоих языках можно работать с целыми числами

     
     
  • 4.42, бедный буратино (ok), 10:37, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я написал "5.2"

    Я могу привести примеры ченчлогов 5.3, 5.4, 5.5 и 5.6, когда я хватался за голову и говорил "а что, там и этого не было?", начиная от способа создания списков и заканчивая генераторами. При этом реализация большинства из этих вещей в js сделана более "человечно" (проблема написания/читаемости на js не в написании самих функций, а в модели их использования, когда колбек на колбеке сидит и колбеком погоняет)

    Я даже не знаю, как там будут все эти функции вводить - придётся, видимо, специально синтаксис уродоватЬ, чтобы было, как в php :)

    Нет, разумеется, можно и зайца научить курить, и на php написать простыню вместо одной строчки, и потом вторую простыню вместо использования той же самой строчки. Только зачем? Если нужен только механизм выборки из базы, то есть более вменяемые средства. Если нужно использовать legacy-код, то ещё неизвестно, что будет проще - переписать или адаптировать под php.js.

     
     
  • 5.59, angra (ok), 16:03, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Я написал "5.2"

    Да хоть четвертую версию. Ты перед тем как ляпать про 5% хотя бы пробовал представить что это такое? Вооружись теперь всеми списками изменений, посчитай все добавленные фичи и раздели их на двадцать. Потом подумай сколько только базовых особенностей языка я смогу назвать. Сравни эти два числа и осознай наконец какую глупость ты сморозил.

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

     
     
  • 6.60, бедный буратино (ok), 16:51, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    на любом языке можно написать всё. и мы считаем проблемность. если в языке A это делается очень легко, а в языке B это делается гораздо сложнее, то в языке B этого нет. Есть возможность (для всего), а реализации - нет, и именно это мы считаем. И начинаем по списку, такая то фича есть? Нет? Есть? Нет. Причём здесь базовые возможности? Написано же, ФИЧИ! Ты ещё размер кода посчитай, и на основании этого говори, что язык А круче языка Б (тогда, по способности свалить всё в кучу, пыху альтернатив точно не будет :).

    > ты продемонстрируешь как одна строчка на js заменяет простыню на php.

    А машину тебе не помыть? Если ты не читаешь ченчлоги 5.3, 5.4, 5.5 и 5.6 и не удивляешься, как то, что есть практически в любом современном динамическом языке, в php только появляется. Зато 8 способов вызвать запрос из mysql.

     
     
  • 7.65, angra (ok), 00:24, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Понятно. Буратинка слился по обоим пунктам, не приведя ни одного доказательства своих голословных утверждений, как впрочем и всегда. Даю последнюю возможность, исправь третью глупость и не сделай четвертой. Какие из следующих пунктов являются базовыми возможностями всех языков, а какие фичами только отдельных:
    1. Строки
    2. Юникод
    3. Итераторы
    4. first class functions
    5. Цикл foreach
    6. Цикл for
    7. Цикл while
    8. if
    9. case

     
     
  • 8.66, бедный буратино (ok), 01:13, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Клёво жить в мире своих фантазий Сам придумал, сам опроверг Кстати, тут в текс... текст свёрнут, показать
     

  • 1.25, бедный буратино (ok), 07:11, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Оно всё такое же медленное и печальное?

    Оно, конечно, удобнее pythonjs... хотя один фиг, и тому и тому большой js-модуль требуется, хоть pyjs и даёт нативный код.

    Но если нужно что-то приделать интерактивное, и после python на синтаксис js смотреть страшно - тогда можно выбрать... coffeescript :)

     
     
  • 2.53, Аноним (-), 13:03, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    вот coffescript вообще не вариант, свой синтаксис, свои заморочки - он вообще не нужен тем более в свете появлений сабжеподобных вещей.
     
     
  • 3.55, бедный буратино (ok), 13:28, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    coffeescript компилируется в js. и в таком режиме работы не требует сотен килобайт инклюдов. это будет СИЛЬНО быстрее.

    а язык прикольный. помесь python и ruby. мечта идиота :)

     

  • 1.26, бедный буратино (ok), 07:12, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    эксперты, эксперты, эксперты, тридцать пять тысяч одних экспертов...

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

     
     
  • 2.30, dxd (?), 08:38, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вся прелесть комментариев - в навязывании истины экспертам.
     
  • 2.33, Аноним (-), 09:01, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > когда же в комментариях можно будет обсудить что-то, а не слушать тридцать
    > пять тысяч человек с абсолютной истиной, навязывающей её другим...

    Например, когда [b]ты[/b] перестанешь этим заниматься. Начни с малого - с себя. А то от других требовать все горазды. Это проще.

     
     
  • 3.36, бедный буратино (ok), 09:16, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> когда же в комментариях можно будет обсудить что-то, а не слушать тридцать
    >> пять тысяч человек с абсолютной истиной, навязывающей её другим...
    > Например, когда [b]ты[/b] перестанешь этим заниматься. Начни с малого - с себя.
    > А то от других требовать все горазды. Это проще.

    я, вероятно, тем и отличаюсь от большинства здесь АКТИВНО пишуших тем, что ЭТИМ не занимаюсь. :)

     

  • 1.34, Аноним (-), 09:05, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да они со своими "динамическими" языками с ума посходили!
     
  • 1.38, Аноним (-), 09:55, 17/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    хм, если бы список примеров(готовые программы на python) был бы большим, вообще очень полезной была бы реализация. не надо было бы ничего писать на нелогичном яваскрипте.
    Вообще я бы мечтал что бы поддержка питона в браузерах была изначальна, а там и различные оптимизации подтянулись.
     
     
  • 2.46, Аноним (-), 11:24, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > хм, если бы список примеров(готовые программы на python) был бы большим, вообще
    > очень полезной была бы реализация. не надо было бы ничего писать
    > на нелогичном яваскрипте.
    > Вообще я бы мечтал что бы поддержка питона в браузерах была изначальна,
    > а там и различные оптимизации подтянулись.

    самая умная мысль, жаль гугл и мозилла до такого не додумались

     
     
  • 3.51, бедный буратино (ok), 11:53, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > самая умная мысль, жаль гугл и мозилла до такого не додумались

    Если тупо libpython, то тот же wesnoth его поддержку дропнул, ибо несекурно зело.

    А если делать свой, безопасный диалект python... даже не знаю...

     
     
  • 4.64, Аноним (-), 21:19, 17/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    к секьюрности это не имеет никакого отношения. libpython специфично написан, что иногда создаёт проблемы приложению.
     

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



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

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