The OpenNET Project / Index page

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

Вышел Pythonium 0.4.7, компилятор из Python в JavaScript

05.12.2013 01:08

Доступен новый выпуск проекта Pythonium 0.4.7, в рамках которого развивается компилятор, способный преобразовывать написанные с использованием языка Python 3 скрипты в представление на языке JavaScript, пригодное для выполнения в web-браузерах. Pythonium доступен в двух вариантах: Pythonium Compliant, полностью совместимый с CPython 3 и подходящий для трансляция существующих пректов для работы в Web, и Pythonium Veloce, предоставляющий средства для написания web-приложений на языке Python. Код Pythonium написан на языке Python и распространяется под лицензией LGPLv2.1.

Pythonium Veloce полностью совместим с существующими JavaScript-библиотеками и позволяет добиться производительности обычных JavaScript-приложений. Для манипулирования html-объектами и доступа к браузерным технологиям в изначальном скрипте на языке Python можно использовать возможности библиотеки jQuery или напрямую вызывать JavaScript-блоки, для чего предлагается использовать специальную функцию-враппер 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 и наследования классов через библиотеку classy.

  1. Главная ссылка к новости (https://pypi.python.org/pypi/p...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/38588-ythonium
Ключевые слова: ythonium, python, javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (39) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, sKotenok (?), 10:59, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Всего один вопрос, если есть хоть кто-то это дело ковырявший - как код дебажить? Ну и сюда же - как тесты писать?
    Ну т.е. - будет ли как-то работать код в питонячей среде без трансляции в JS?
     
  • 1.2, dxd (?), 11:21, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пишут про полную совместимость с третьим питоном. Так что, видимо, отлаживаем с CPython, компилим, если не работает - пишем багрепорт.
     
  • 1.3, бедный буратино (ok), 11:44, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ура! Мечты сбываются!
     
     
  • 2.9, Аноним (-), 13:36, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Ты всю жизнь мечтал чесать правое ухо левой пяткой?
     
     
  • 3.13, Led (ok), 14:15, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Ты всю жизнь мечтал чесать правое ухо левой пяткой?

    Это ты можешь об этом мечтать, а он он это всю жизнь делает.

     
     
  • 4.38, Аноним (-), 04:39, 06/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    пустотрёпщики не по теме, бесят больше чем чайники
     

  • 1.4, Аноним (-), 12:44, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    JavaScript — ассемблер 21 века.
     
     
  • 2.6, Пиу (ok), 13:20, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +5 +/
    к сожалению
     
  • 2.8, dxd (?), 13:30, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > JavaScript — ассемблер 21 века.

    Обсуждали же в своё время идею функционального ассемблера. Вот, получите, распишитесь. И не жалуйтесь.

     
     
  • 3.17, Аноним (-), 15:21, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • –7 +/
    1) JS - не ассемблер. Если вы с этим спорите, то вы не понимаете, что такое ассемблер.
    2) JS можно назвать функциональным с бооольшой натяжкой. Упор в дизайне там делается совершенно не на то.
    3) И уж тем более, JS - не функциональный ассемблер.
     
     
  • 4.26, омнонимус (?), 19:56, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Твоя не мочь в ассоциации?
     
     
  • 5.29, Аноним (-), 20:46, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Информатика - это точная наука, а не игра в ассоциации.

    Ассемблер - это низкоуровневый язык, он должен отражать особенности архитектуры компьютера. Какие особенности какой архитектуры отражает JS?

     
     
  • 6.32, dxd (?), 23:43, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Информатика - это точная наука, а не игра в ассоциации.
    > Ассемблер - это низкоуровневый язык, он должен отражать особенности архитектуры компьютера.
    > Какие особенности какой архитектуры отражает JS?

    Особенности архитектуры V8?

     
     
  • 7.35, Аноним (-), 00:21, 06/12/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Аргументируйте, пожалуйста, ссылкой на описание "архитектуры V8" и ответом на вопрос "каким образом и какие особенности архитектуры V8 отражает JavaScript?".
     
  • 2.14, некто (ok), 14:20, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    21 век кругом один сплошной javascript, думая что это и есть ассемблер :) Главное чтобы не расплодилось такой гадости как ie6 и тому подобное, включая -webkit-* и UA-программинг. Хотя похоже на то, что сейчас никто всерьез с этой гадостью не считается...
     
  • 2.18, Аноним (-), 15:24, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > JavaScript — ассемблер 21 века.

    Повторяйте каждый раз, когда идете по дороге домой из школы: "JavaScript - это не ассемблер".

     
     
  • 3.20, Пиу (ok), 16:05, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    повторяйте по дороге из детского сада: "я знаю и понимаю, что такое сарказм"
     
     
  • 4.24, Аноним (-), 19:08, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вы его не знаете и не понимаете подавно. Хотя, судя по расстановке плюсиков, вы не один, кто считает формулу "сморозил чушь - скажи что сарказм" корректной.
     
     
  • 5.34, dxd (?), 00:18, 06/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Трудно объяснять людям, которые понимают сарказм, что они его не понимают, правда?
     
     
  • 6.36, Аноним (-), 00:25, 06/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Трудно объяснять людям, которые понимают сарказм, что они его не понимают, правда?

    Хорошо, если вы умнее, то объясните тогда мне, пожалуйста, где во фразе "JavaScript — ассемблер 21 века" сарказм. Объясните, на чем в данном конкретном случае он тут построен.

     

  • 1.5, maliit (ok), 12:58, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    http://pyjs.org/Translator.html ещё сто лет назад нафигачили, на волне хайпа вокруг GWT. И чё? Поигралися и забросили. Гугол сам со своего GWT потихоньку слезает. Причины всё те же: протекающие абстракции и адовая отладка. Алсо, хайп вокруг JS рано или подно тоже пройдёт, потому что корпорации, в отличие от хипстеров, дано поняли, что разработка на этом убогоньком язычке с родовыми травмами обходится им неоправданно дорого. И не надо тут говорить про толпы быдлокодеров из бывших уёб-дезигнеров. Это дешёвая посадка на иглу, они вам за 10 баксов в час нахерачат первую дозу, но потом за поддержку и развитие этого говна вы будете платить совсем другие деньги и другим людям. В конце выживет что-то типа Asm.js или байт-кода типа PNaCl. Не то, чтоб мне это очень нравилось, просто жизнь такая.
     
     
  • 2.7, a (??), 13:24, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    да не переживайте так, все будет хорошо
     
  • 2.16, Аноним (-), 14:42, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >>они вам за 10 баксов в час н а х ер а ч ат первую дозу, но потом за поддержку и развитие этого го в на вы будете платить совсем другие деньги и другим людям

    А на СИ вам напишут за 100 баксов в час за 10 часов идеальную программу, которая будет всегда хорошо работать, а дорабатываться за 10 баксов в час эник ейщиком.

     

  • 1.10, slowpoke (?), 13:37, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    лучше бы для PHP компилятор в LLVM нормальный сделали
     
     
  • 2.12, Led (ok), 14:14, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >лучше бы для PHP компилятор в LLVM нормальный сделали

    Для этого сначала нужно сделать нормальный PHP и нормальный LLVM.

     

  • 1.11, Аноним (-), 13:48, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    "Все, что угодно, становится лучше, если добавить компиляцию в JS!"
     
  • 1.15, некто (ok), 14:35, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    ребята, насчет отладки js:
    используйте jshint or jslint + emacs + flymake + js2-mode например. И все будет гораздо проще. Занудство линтинга окупается с лихвой потом.
     
  • 1.21, GoTLiuM (ok), 17:20, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    мне больше нравится brython:)
     
  • 1.22, Lain_13 (ok), 17:22, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    С каких пор трансляция кода на одном языке в код на другом языке именуется компиляцией? Или оно в AsmJS выгоняет? Так вроде ж нет.
     
     
  • 2.25, Xasd (ok), 19:40, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Или оно в AsmJS выгоняет

    проект CPython на AsmJS уже давно есть :)

    но правда лишь говновторая версия :(

     
  • 2.31, Я (??), 22:57, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А что по вашему означает компиляция?
     
     
  • 3.37, Lain_13 (ok), 04:32, 06/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > А что по вашему означает компиляция?

    Ну, собственно, да. Ты прав. Просто обычно это означает преобразование в более низкоуровневый язык вроде ассемблера или в одну из разновидностей бинарных представлений вроде платформозависимого машинного кода или независимого байткода. В любом случае это преобразование из языка высокого уровня в язык низкого уровня. Я ещё могу понять преобразование в AsmJS — эта разновидность JS мало чем отличается от байткода, но не в сам же JS!

     

  • 1.23, Аноним (-), 18:31, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Я не понимаю, ЗАЧЕМ? Не лучше ли было плагин к тойже мозилке сделать?
     
     
  • 2.28, Xasd (ok), 20:01, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Я не понимаю, ЗАЧЕМ? Не лучше ли было плагин к тойже мозилке
    > сделать?

    всё что угодно -- но уж точно НЕ надо нам этих ваших плугинов и ActiveX.

    слава богам что вроде бы появилась тенденция отправления плугинов на свалку истории.

    Firefox будет все плугины (жалко что кроме Adobe Flash Player) отключать по умолчанию на сайтах, начиная со следующей стабильной версии Firefox.

    а Google Chrome вообще аннонсировал отказ от подержки плугинов, которые написанны в формате Firefox.

     
     
  • 3.30, Андрей (??), 22:02, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я к тому, чтобы py-код выполнять наравне с java-кодом. Про ActiveX ни буквы не было.
     
     
  • 4.33, dxd (?), 23:45, 05/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Я к тому, чтобы py-код выполнять наравне с java-кодом. Про ActiveX ни
    > буквы не было.

    Сейчас набегут прибитые жабоскриптеры с воплем: "петоннеминимизируетсятабытабытабы!"

     
  • 3.40, Пиу (ok), 14:56, 06/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >слава богам что вроде бы появилась тенденция отправления плугинов на свалку истории

    к сожалению, происходит замена более быстрых нативных плагинов тормозами на js
    за тормозами - будущее!

    >а Google Chrome вообще аннонсировал отказ от подержки плугинов, которые написанны в формате Firefox.

    1. нет "формата firefox", есть "формат netscape", он же npapi, ему уже овер 9000 лет
    2. в хроме будет свой собственный оригинальный vendor-lock-in формат (ppapi) -- за костылями будущее!

     

  • 1.27, Xasd (ok), 19:58, 05/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    yield -- работает?
     
  • 1.39, bw (ok), 06:22, 06/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ересь какая, Skulpt наше всё :-).
    А вообще, были уже эксперименты с трансляцией Python в JS, как выше сказали, pyjamas (pyjs). Как-то не очень пошло в массы. Полагаю и эта академическая работа будет пользоваться популярностью у двух с половиной разработчиков. В конце концов вреда оно точно никому не принесёт, это же не Dart.

    ..bw

     

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



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

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