Представлен (http://permalink.gmane.org/gmane.comp.python.announce/11367) релиз проекта Brython 2.0 (http://www.brython.info/) (Browser Python), в рамках которого развивается реализация языка программирования Python 3, предназначенная для выполнения на стороне web-браузера. Brython может использоваться вместо JavaScript для разработки скриптов для Web. Размер библиотеки brython.js около 300 Кб.
Подключив библиотеку brython.js (https://bitbucket.org/olemis/brython/src/), web-разработчик может использовать язык Python для определения логики работы сайта на стороне клиента, используя Python вместо JavaScript. Для включения Python-кода на страницы используется (http://www.brython.info/doc/en/index.html#) тег script с mime-типом "text/python". Из скрипта предоставляется полный доступ к элементам и событиям DOM. Метод работы Brython сводится к предварительной компиляции Python кода в представление на языке JavaScript с последующим его выполнением штатным JavaScript-движком браузера.
В версии 2.0 обеспечена поддержка базового синтаксиса языка Python и многих встроенных Python-модулей. Добавлена возможность обеспечения взаимодействия Python-кода с библиотеками на языке JavaScript. На сайте проекта можно найти коллекцию (http://www.brython.info/gallery/gallery_en.html) примеров, демонстрирующих возможности Brython для выполнения различных действий, например, типичных обработчиков форм, кириллической web-клавиатуры (http://www.brython.info/gallery/ruskey.html), поддержки Ajax, WebSockets и API для работы с локальным хранилищем, создания SVG и 3D-графики. Для экспериментов с Brython доступна (http://www.brython.info/console.html) работающая в web-браузера реализация интерактивной консоли Python.URL: http://permalink.gmane.org/gmane.comp.python.announce/11367
Новость: https://www.opennet.ru/opennews/art.shtml?num=39102
наоборот, годнота
ты видимо вообще не имеешь представление о клиентско-браузерных технологиях, чтобы оценить насколько это извращение. но увидел знакомое слово и сразу заимел мнение. ну-ну
Ну-ка расскажи нам, чем же Python сильно отличается на js, да еще и таким образом, что не позволяет использовать его на стороне клиента.>клиентско-браузерных технологиях
Ну а это отдельный лол.
> да еще и таким образом, что не позволяет использовать его на стороне клиентая этого не говорил. речь о том, что js хоть и полон неоднозначностей, но их понять и запомнить не так уж сложно. а неосиляторы js, в силу скудности ума не понимающие прототипное наследование, плачутся и молятся, чтобы им сделали интерпретаторы на другие языки
так что да - эмуляция Python - извращение. в качестве академического исследования еще идет, а те кто кричат, что это годнота, видимо, всерьез собираются на нем писать свои поделки
>так что да - эмуляция Python - извращениеА "эмуляцию" сишных прог в js вы извращением не считаете, нет?
>те кто кричат, что это годнота, видимо, всерьез собираются на нем писать свои поделки
>собираются .... писатьА вы знаете другой способ заценить новинку?
> в качестве академического исследования еще идетмой ответ на оба вопроса
> ты видимо вообще не имеешь представление о клиентско-браузерных технологиях, чтобы оценить
> насколько это извращение. но увидел знакомое слово и сразу заимел мнение.
> ну-нумсье знает толк? ;)
>ты видимо вообще не имеешь представление о клиентско-браузерных технологияхПочитай сперва документ ECMA 262, если найдёшь хоть слово о клиентах или браузерах, тогда и будем сравнивать.
надеваем очки, читаем новость:> предназначенная для выполнения на стороне web-браузера
> web-разработчик может использовать язык Python для определения логики работы сайта на стороне клиентаа потом придираемся, ага. нигде не написано про другое использование
Жаваскриптерам-фронтэндщикам отсутствие представления о серверном программировании не мешает писать под node.js.
что из этого получается - всем известно
> что из этого получается - всем известноага, paypal например
Забавная штучка. И вроде все на месте, даже асинхронная подгрузка кастомных модулей заявлена. Разве что не совсем понятно как обойти политику одного источника... ну да это уже мелочи - в крайнем случае можно имортировать свои js-модули.А что до 300кб, так в если оно будет в СDN, то размеры его не очень-то кого и будут волновать.... при постройке Ынтерпрайз гуя - уж точно не будут.
Надо будет что-нибудь дельное на нем попытаться накодить. Очень занимательно сделано... да.
Хорошая новость - плюсую.
Почему не препроцессор?
интересная штука, но если бы сорцы были на гитхабе то былоб заметнее для интересующейся публики.
На гитхабе, очевидно, нет поддержки Mercurial.
По-моему JS красивее и гибче.
В чем цимес Питона ?
Что ж, во всяком случае, забавно. В будущую феерическую популярность этой технологии мне поверить довольно трудно, но всё равно молодцы. Может, где-нибудь для смеха и использую, хотя направление в целом всё же не кажется перспективным.
А потом ещё вот этим воспользуйся: http://summerofgoto.com/
Какая красота в этой интерактивной консоли видна! Даже багрепорт сделал.>>> bytes #OK
<class 'bytes'>
>>> type(b"abcd") is None # Oops...True
Баг подтвердили, уже перевели в resolved.
Продолжают лепить жуткие костыли.
С другой стороны, pyjs ещё страшнее и непонятнее. Непонятно, зачем делать эти костыли?
А как же значимые пробелы для отступов строк? Будет же трафик с преобладанием пробелов.
Ну это не проблема. Код на питоне можно упаковать в зип-архив и распаковать его на стороне клиента при помощи unzip, написанном на js. Могу придумать ещё несколько не менее ужасающих способов.
Дык без пробелов всё равно меньше будет, чем с пробелами.
И в добавок gzip и unzip умеют все сервера и браузеры соответсвенно.
> gzip и unzip умеют все сервера и браузеры соответсвенноСкажи это тем, кто изобрёл function(p,a,c,k,e,d) -_-
Табуляция же. Пробелы для плебеев. :3
> А как же значимые пробелы для отступов строк? Будет же трафик с
> преобладанием пробелов.А что, Сквид еще не изобрели?
php.js
Круто, а смысл? Синтаксис похож, а по возможностям, особенно если брать какую-нибудь версию 5.2, у php 5% возможностей javascript. Чтобы писать в три раза больше кода? :)
Чтоб можно было хостить php-страницы на хостинге без php и выполнять всё на стороне клиента, включая конструирование sql-запросов к локальной копии БД, так-как хостинг доступа к базе тоже не предоставил. В конце-концов почему бы не отдавать всю базу сайта каждому посетителю и синхронизировать её между всеми? Тему можно развивать.
> Чтоб можно было хостить php-страницы на хостинге без php и выполнять всё
> на стороне клиента, включая конструирование sql-запросов к локальной копии БД, так-как
> хостинг доступа к базе тоже не предоставил. В конце-концов почему бы
> не отдавать всю базу сайта каждому посетителю и синхронизировать её между
> всеми? Тему можно развивать.Тогда у меня возникает вопрос, зачем вообще использовать php? Потому что гибкая обработка этих данных (гибкая - это одна строка, а не десять многострочных функций на каждый чих) - это совсем не к php, уж лучше js использовать. Например, js + couchdb сэкономит очень-очень много времени. Какой смысл для данной задачи использовать php?
Ты что, это ж придётся JS изучать!Ты правда подумал, что я хотел предложить разумную идею? Естественно оно нафиг не нужно, но я не удивлюсь если кто-нибудь сделает и кто-то этим потом будет пользоваться. Если от питона хоть какой-то прок, то это уже за гранью добра и зла.
А разве php.js ещё нет? По-моему, есть.Нет, js изучать не придётся. Придётся где-то скопировать функцию загрузки json/jsonp, а остальное, вроде можно мыЖкой накликать.
Проблема php обычно именно в том, что для них весь мир - это php (и mysql), и они даже знать не хотят об очень простых решениях, которые валяются буквально под ногами и не требуют серьёзных усилий. :) Думаю, в мире уже стартовало не меньше 10000 проектов ядра ОС на php и mysql :)
http://phpjs.org/about/я вообще ничего не понял. нет, текст я перевести смог, но смысла от этого не прибавилось - что это, куда и почему?
5% говоришь? То есть одна двадцатая. Ну давай посмотрим. Я буду приводить пример того, что есть в обоих языках, а ты в ответ будешь показывать 19 примеров разных возможностей, которые есть только в js, но нет в php.1. В обоих языках можно работать с целыми числами
Я написал "5.2"Я могу привести примеры ченчлогов 5.3, 5.4, 5.5 и 5.6, когда я хватался за голову и говорил "а что, там и этого не было?", начиная от способа создания списков и заканчивая генераторами. При этом реализация большинства из этих вещей в js сделана более "человечно" (проблема написания/читаемости на js не в написании самих функций, а в модели их использования, когда колбек на колбеке сидит и колбеком погоняет)
Я даже не знаю, как там будут все эти функции вводить - придётся, видимо, специально синтаксис уродоватЬ, чтобы было, как в php :)
Нет, разумеется, можно и зайца научить курить, и на php написать простыню вместо одной строчки, и потом вторую простыню вместо использования той же самой строчки. Только зачем? Если нужен только механизм выборки из базы, то есть более вменяемые средства. Если нужно использовать legacy-код, то ещё неизвестно, что будет проще - переписать или адаптировать под php.js.
> Я написал "5.2"Да хоть четвертую версию. Ты перед тем как ляпать про 5% хотя бы пробовал представить что это такое? Вооружись теперь всеми списками изменений, посчитай все добавленные фичи и раздели их на двадцать. Потом подумай сколько только базовых особенностей языка я смогу назвать. Сравни эти два числа и осознай наконец какую глупость ты сморозил.
После осознания тобой первой глупости, перейдем к следующей - ты продемонстрируешь как одна строчка на js заменяет простыню на php.
на любом языке можно написать всё. и мы считаем проблемность. если в языке A это делается очень легко, а в языке B это делается гораздо сложнее, то в языке B этого нет. Есть возможность (для всего), а реализации - нет, и именно это мы считаем. И начинаем по списку, такая то фича есть? Нет? Есть? Нет. Причём здесь базовые возможности? Написано же, ФИЧИ! Ты ещё размер кода посчитай, и на основании этого говори, что язык А круче языка Б (тогда, по способности свалить всё в кучу, пыху альтернатив точно не будет :).> ты продемонстрируешь как одна строчка на js заменяет простыню на php.
А машину тебе не помыть? Если ты не читаешь ченчлоги 5.3, 5.4, 5.5 и 5.6 и не удивляешься, как то, что есть практически в любом современном динамическом языке, в php только появляется. Зато 8 способов вызвать запрос из mysql.
Понятно. Буратинка слился по обоим пунктам, не приведя ни одного доказательства своих голословных утверждений, как впрочем и всегда. Даю последнюю возможность, исправь третью глупость и не сделай четвертой. Какие из следующих пунктов являются базовыми возможностями всех языков, а какие фичами только отдельных:
1. Строки
2. Юникод
3. Итераторы
4. first class functions
5. Цикл foreach
6. Цикл for
7. Цикл while
8. if
9. case
> Понятно. Буратинка слился по обоим пунктам, не приведя ни одного доказательства своих голословных утвержденийКлёво жить в мире своих фантазий? Сам придумал, сам опроверг.
Кстати, тут в тексте есть одна офигенная ссылка, которая тебя просто морально унизит :) Найди её сам. :)
Оно всё такое же медленное и печальное?Оно, конечно, удобнее pythonjs... хотя один фиг, и тому и тому большой js-модуль требуется, хоть pyjs и даёт нативный код.
Но если нужно что-то приделать интерактивное, и после python на синтаксис js смотреть страшно - тогда можно выбрать... coffeescript :)
вот coffescript вообще не вариант, свой синтаксис, свои заморочки - он вообще не нужен тем более в свете появлений сабжеподобных вещей.
coffeescript компилируется в js. и в таком режиме работы не требует сотен килобайт инклюдов. это будет СИЛЬНО быстрее.а язык прикольный. помесь python и ruby. мечта идиота :)
эксперты, эксперты, эксперты, тридцать пять тысяч одних экспертов...когда же в комментариях можно будет обсудить что-то, а не слушать тридцать пять тысяч человек с абсолютной истиной, навязывающей её другим...
Вся прелесть комментариев - в навязывании истины экспертам.
> когда же в комментариях можно будет обсудить что-то, а не слушать тридцать
> пять тысяч человек с абсолютной истиной, навязывающей её другим...Например, когда ты перестанешь этим заниматься. Начни с малого - с себя. А то от других требовать все горазды. Это проще.
>> когда же в комментариях можно будет обсудить что-то, а не слушать тридцать
>> пять тысяч человек с абсолютной истиной, навязывающей её другим...
> Например, когда ты перестанешь этим заниматься. Начни с малого - с себя.
> А то от других требовать все горазды. Это проще.я, вероятно, тем и отличаюсь от большинства здесь АКТИВНО пишуших тем, что ЭТИМ не занимаюсь. :)
Да они со своими "динамическими" языками с ума посходили!
хм, если бы список примеров(готовые программы на python) был бы большим, вообще очень полезной была бы реализация. не надо было бы ничего писать на нелогичном яваскрипте.
Вообще я бы мечтал что бы поддержка питона в браузерах была изначальна, а там и различные оптимизации подтянулись.
> хм, если бы список примеров(готовые программы на python) был бы большим, вообще
> очень полезной была бы реализация. не надо было бы ничего писать
> на нелогичном яваскрипте.
> Вообще я бы мечтал что бы поддержка питона в браузерах была изначальна,
> а там и различные оптимизации подтянулись.самая умная мысль, жаль гугл и мозилла до такого не додумались
> самая умная мысль, жаль гугл и мозилла до такого не додумалисьЕсли тупо libpython, то тот же wesnoth его поддержку дропнул, ибо несекурно зело.
А если делать свой, безопасный диалект python... даже не знаю...
к секьюрности это не имеет никакого отношения. libpython специфично написан, что иногда создаёт проблемы приложению.