Доступен (https://pypi.python.org/pypi/pythonium/0.4.7) новый выпуск проекта Pythonium 0.4.7, в рамках которого развивается компилятор, способный преобразовывать написанные с использованием языка Python 3 скрипты в представление на языке JavaScript, пригодное для выполнения в web-браузерах. Pythonium доступен в двух вариантах: Pythonium Compliant, полностью совместимый с CPython 3 и подходящий для трансляция существующих пректов для работы в Web, и Pythonium Veloce, предоставляющий средства для написания web-приложений на языке Python. Код Pythonium написан на языке Python и распространяется (https://github.com/pythonium/pythonium) под лицензией LGPLv2.1.
Pythonium Veloce полностью совместим с существующими JavaScript-библиотеками и позволяет добиться производительности обычных JavaScript-приложений. Для манипулирования html-объектами и доступа к браузерным технологиям в изначальном скрипте на языке Python можно использовать возможности библиотеки jQuery или напрямую вызывать JavaScript-блоки, для чего предлагается (https://github.com/pythonium/pythonium/tree/master/examples/...) использовать специальную функцию-враппер JS().
Например, можно указать в Python-скрипте "now = JS('new Date()')", после чего в Python-коде обращаться к созданному объекту напрямую "year = now.getFullYear()". Для преобразования Python-типов в объекты JavaScript подготовлена функция jstype, которую, например, можно использовать для привязки к объектам jQuery ("input = jQuery(jstype('[type="text"]'))"). Для создания объектов можно использовать функцию new(SomeObject, arg0, arg1), которая транслируется в JavaScript-аналог "new SomeObject(arg0, args1)". Поддерживается привязка callback-вызовов к поступлению событий (например, для обработки onClick), работа с массивами JavaScript в циклах for, эмуляция from и import через библиотеку requirejs (http://requirejs.org/) и наследования классов через библиотеку classy (http://classy.pocoo.org/).URL: https://pypi.python.org/pypi/pythonium/0.4.7
Новость: http://www.opennet.me/opennews/art.shtml?num=38588
Всего один вопрос, если есть хоть кто-то это дело ковырявший - как код дебажить? Ну и сюда же - как тесты писать?
Ну т.е. - будет ли как-то работать код в питонячей среде без трансляции в JS?
Пишут про полную совместимость с третьим питоном. Так что, видимо, отлаживаем с CPython, компилим, если не работает - пишем багрепорт.
Ура! Мечты сбываются!
Ты всю жизнь мечтал чесать правое ухо левой пяткой?
>Ты всю жизнь мечтал чесать правое ухо левой пяткой?Это ты можешь об этом мечтать, а он он это всю жизнь делает.
пустотрёпщики не по теме, бесят больше чем чайники
JavaScript — ассемблер 21 века.
к сожалению
> JavaScript — ассемблер 21 века.Обсуждали же в своё время идею функционального ассемблера. Вот, получите, распишитесь. И не жалуйтесь.
1) JS - не ассемблер. Если вы с этим спорите, то вы не понимаете, что такое ассемблер.
2) JS можно назвать функциональным с бооольшой натяжкой. Упор в дизайне там делается совершенно не на то.
3) И уж тем более, JS - не функциональный ассемблер.
Твоя не мочь в ассоциации?
Информатика - это точная наука, а не игра в ассоциации.Ассемблер - это низкоуровневый язык, он должен отражать особенности архитектуры компьютера. Какие особенности какой архитектуры отражает JS?
> Информатика - это точная наука, а не игра в ассоциации.
> Ассемблер - это низкоуровневый язык, он должен отражать особенности архитектуры компьютера.
> Какие особенности какой архитектуры отражает JS?Особенности архитектуры V8?
Аргументируйте, пожалуйста, ссылкой на описание "архитектуры V8" и ответом на вопрос "каким образом и какие особенности архитектуры V8 отражает JavaScript?".
21 век кругом один сплошной javascript, думая что это и есть ассемблер :) Главное чтобы не расплодилось такой гадости как ie6 и тому подобное, включая -webkit-* и UA-программинг. Хотя похоже на то, что сейчас никто всерьез с этой гадостью не считается...
> JavaScript — ассемблер 21 века.Повторяйте каждый раз, когда идете по дороге домой из школы: "JavaScript - это не ассемблер".
повторяйте по дороге из детского сада: "я знаю и понимаю, что такое сарказм"
Вы его не знаете и не понимаете подавно. Хотя, судя по расстановке плюсиков, вы не один, кто считает формулу "сморозил чушь - скажи что сарказм" корректной.
Трудно объяснять людям, которые понимают сарказм, что они его не понимают, правда?
> Трудно объяснять людям, которые понимают сарказм, что они его не понимают, правда?Хорошо, если вы умнее, то объясните тогда мне, пожалуйста, где во фразе "JavaScript — ассемблер 21 века" сарказм. Объясните, на чем в данном конкретном случае он тут построен.
http://pyjs.org/Translator.html ещё сто лет назад нафигачили, на волне хайпа вокруг GWT. И чё? Поигралися и забросили. Гугол сам со своего GWT потихоньку слезает. Причины всё те же: протекающие абстракции и адовая отладка. Алсо, хайп вокруг JS рано или подно тоже пройдёт, потому что корпорации, в отличие от хипстеров, дано поняли, что разработка на этом убогоньком язычке с родовыми травмами обходится им неоправданно дорого. И не надо тут говорить про толпы быдлокодеров из бывших уёб-дезигнеров. Это дешёвая посадка на иглу, они вам за 10 баксов в час нахерачат первую дозу, но потом за поддержку и развитие этого говна вы будете платить совсем другие деньги и другим людям. В конце выживет что-то типа Asm.js или байт-кода типа PNaCl. Не то, чтоб мне это очень нравилось, просто жизнь такая.
да не переживайте так, все будет хорошо
>>они вам за 10 баксов в час н а х ер а ч ат первую дозу, но потом за поддержку и развитие этого го в на вы будете платить совсем другие деньги и другим людямА на СИ вам напишут за 100 баксов в час за 10 часов идеальную программу, которая будет всегда хорошо работать, а дорабатываться за 10 баксов в час эник ейщиком.
лучше бы для PHP компилятор в LLVM нормальный сделали
>лучше бы для PHP компилятор в LLVM нормальный сделалиДля этого сначала нужно сделать нормальный PHP и нормальный LLVM.
"Все, что угодно, становится лучше, если добавить компиляцию в JS!"
ребята, насчет отладки js:
используйте jshint or jslint + emacs + flymake + js2-mode например. И все будет гораздо проще. Занудство линтинга окупается с лихвой потом.
мне больше нравится brython:)
С каких пор трансляция кода на одном языке в код на другом языке именуется компиляцией? Или оно в AsmJS выгоняет? Так вроде ж нет.
> Или оно в AsmJS выгоняетпроект CPython на AsmJS уже давно есть :)
но правда лишь говновторая версия :(
А что по вашему означает компиляция?
> А что по вашему означает компиляция?Ну, собственно, да. Ты прав. Просто обычно это означает преобразование в более низкоуровневый язык вроде ассемблера или в одну из разновидностей бинарных представлений вроде платформозависимого машинного кода или независимого байткода. В любом случае это преобразование из языка высокого уровня в язык низкого уровня. Я ещё могу понять преобразование в AsmJS — эта разновидность JS мало чем отличается от байткода, но не в сам же JS!
Я не понимаю, ЗАЧЕМ? Не лучше ли было плагин к тойже мозилке сделать?
> Я не понимаю, ЗАЧЕМ? Не лучше ли было плагин к тойже мозилке
> сделать?всё что угодно -- но уж точно НЕ надо нам этих ваших плугинов и ActiveX.
слава богам что вроде бы появилась тенденция отправления плугинов на свалку истории.
Firefox будет все плугины (жалко что кроме Adobe Flash Player) отключать по умолчанию на сайтах, начиная со следующей стабильной версии Firefox.
а Google Chrome вообще аннонсировал отказ от подержки плугинов, которые написанны в формате Firefox.
Я к тому, чтобы py-код выполнять наравне с java-кодом. Про ActiveX ни буквы не было.
> Я к тому, чтобы py-код выполнять наравне с java-кодом. Про ActiveX ни
> буквы не было.Сейчас набегут прибитые жабоскриптеры с воплем: "петоннеминимизируетсятабытабытабы!"
>слава богам что вроде бы появилась тенденция отправления плугинов на свалку историик сожалению, происходит замена более быстрых нативных плагинов тормозами на js
за тормозами - будущее!>а Google Chrome вообще аннонсировал отказ от подержки плугинов, которые написанны в формате Firefox.
1. нет "формата firefox", есть "формат netscape", он же npapi, ему уже овер 9000 лет
2. в хроме будет свой собственный оригинальный vendor-lock-in формат (ppapi) -- за костылями будущее!
yield -- работает?
Ересь какая, Skulpt наше всё :-).
А вообще, были уже эксперименты с трансляцией Python в JS, как выше сказали, pyjamas (pyjs). Как-то не очень пошло в массы. Полагаю и эта академическая работа будет пользоваться популярностью у двух с половиной разработчиков. В конце концов вреда оно точно никому не принесёт, это же не Dart...bw