войти зарегистрироваться

Web-разработка whois

индекс
184,85

Проект Gestalt – пишите на Ruby, Python и XAML прямо в HTML на стороне клиента

imageGestalt – это open source фреймворк, который позволит вам включить в обыкновенный html-код страницы коды на Ruby или Pyhton и даже XAML-разметку. И все это будет работать на стороне клиента! Если вы хотите написать клиентский код подобный следующему,
<script language=«python»> или <script language=«ruby»>
то Gestalt сделан специально для вас. Быстрый старт и простейшую демонстрацию можно посмотреть по адресу http://www.visitmix.com/labs/gestalt/getstarted/.

* внимание, исполняющая среда запускается не мгновенно, при самой первой загрузке стоит подождать пару секунд и все заработает


Что такое Gestalt?


Проект Gestalt – это новое детище креативной команды MIX Online. Ранее они уже отличились выпуском библиотеки микроформатов Oomph, движка для блогов Oxite и необычного проекта Glimmer, который позволяет создавать анимации на базе jQuery.
Разберем этот проект на основе официальных примеров.

Первый пример


Самый первый пример, который предлагает проект – это демонстрация сразу всех способностей фреймворка. Вот как выглядит пример использования кода на Ruby в html:
image
Следующее окно уже демонстрирует пример с использованием Python в html:
image
Как вы видите, в коде html создается обычный Ruby и Python код, который работает с DOM-деревом, в том числе реагирует на события. Разве не великолепно?
Последняя страница показывает совместную работу кода на Python и XAML-анимации написанной во все том же обыкновенном html:
image
Примеры слишком простые? Давайте смотреть далее.

XAML графика


Следующие примеры показывают построение сложных векторных изображений прямо из html с помощью XAML-кода, который вы можете создать, например, в дизайнере Visual Studio или Expression Blend. Все они написаны на XAML и строятся из разметки прямо на клиенте!
image imageimage image image

* www.visitmix.com/labs/gestalt/samples/big.xaml/big.xaml.bedlam.html
* www.visitmix.com/labs/gestalt/samples/big.xaml/big.xaml.cheshire.html
* www.visitmix.com/labs/gestalt/samples/big.xaml/big.xaml.crystal.html
* www.visitmix.com/labs/gestalt/samples/big.xaml/big.xaml.ruffmouse.html
* www.visitmix.com/labs/gestalt/samples/big.xaml/big.xaml.yellowstone.html

Python и анимация


Следующие примеры показывают как Python может работать с графикой, анимацией и управлением со стороны пользователя. Например в примерах с красным глобусом показано как использовать анимацию на базе фреймов и реагировать на события пользователя. В первом примере пользователь может вращать землю, во втором она сама вращается, а пользователь управляет местоположением.
image image

* www.visitmix.com/labs/gestalt/samples/image.sequencer/image.sequencer.simple.python.html
* www.visitmix.com/labs/gestalt/samples/image.sequencer/image.sequencer.advanced.python.html

Python и тригонометрия


Следующие примеры показывают использование Python для расчета в геометрических задачах. Например в первом примере рассчитывается движение элемента по окружности, а во втором самом шикарном примере рассчитывается трехмерная модель связанных сущностей, выглядит она очень эффектно и полностью управляется мышью:
image image

* www.visitmix.com/labs/gestalt/samples/trigonometry/trigonometry.simple.python.html
* www.visitmix.com/labs/gestalt/samples/trigonometry/trigonometry.advanced.python.html

Python и трансформации


Очередные примеры очень эффектны, очень рекомендую на них посмотреть. На первом примере, в зависимости от местоположения мыши меняется ориентация в пространстве трехмерных объектов, они как бы следят за мышью. На втором происходит тоже самое, только трансформируется кусочки исходного изображения. Выглядит очень классно, особенно если учесть что все это – простой код на Python и XAML прямо в теле html.
image image

* www.visitmix.com/labs/gestalt/samples/transforms/transform.simple.python.html
* www.visitmix.com/labs/gestalt/samples/transforms/transform.advanced.python.html

Python, Ruby и частицы


Следующие примеры показывают работу фреймворка с анимацией частиц. Так первый, самый простой представляет собой падающий снег, второй рисованные мышью осыпающиеся линии, а третий самый сложный демонстрирует сразу несколько техник: рисование, частицы, анимацию, движение, исчезновение частиц. Выглядит эффектно:
image image image

К сожалению, в статике все это не показать, нужно смотреть в динамике. Все примеры написаны на Python, но скачав исходники вы найдете первый пример на Ruby.

* www.visitmix.com/labs/gestalt/samples/particles/particles.simple.python.html
* www.visitmix.com/labs/gestalt/samples/particles/particles.medium.python.html
* www.visitmix.com/labs/gestalt/samples/particles/particles.advanced.python.html

Python и canvas


Для следующего примера вам понадобится что-нибудь отличное от Internet Explorer, поскольку речь пойдет о работе с canvas с помощью Python. Простой пример показывает как рисовать простейшие фигуры.
image

* www.visitmix.com/labs/gestalt/samples/canvas.2d.drawing/canvas.2d.drawing.html

Python и Twitter


И, наконец, последняя демонстрация и это, наверное, самая лучшая из них, поскольку предлагает посмотреть на реализацию работы с Twitter в простом html-коде используя Python для логики и XAML для приятной визуализации.
image

* www.visitmix.com/labs/gestalt/samples/twitter.badge/twitter.badge.python.html

Как все это работает


Конечно, чудес не бывает и все это должно работать с помощью чего-то. Этим “что-то” в данном случае является Silverlight – замечательная технология, не привязанная ни к одному языку, которая позволяет писать приложения хоть на C#, хоть на Python, хоть на Ruby. Когда Gestalt начинает свою работу, он инициализирует элемент Silverlight и использует его чтобы исполнять Ruby и Pyhton код или рисовать XAML-разметку.
Gestalt – это кроссплатформенная технология, работа гарантируется на Windows и Mac. Для пользователей Mac группа разработчиков Gestalt подготовила дополнительный бонус:
  • TextMate Bundles – дополнения для TextMate помогающие работать с Gestalt;

Кроме того, доступны следующие утилиты и средства:
  • XAML Fix-up Tool – утилита которая обрабатывает xaml-код для его правильного понимания Firefox;
  • XAML Playground – целый редактор XAML с визуальным дизайнером и редактором кода, стоит посмотреть.

А как же Linux?


Мигель Де Иказа руководитель разработки Mono и Moonlight уже откликнулся на появления проекта Gestalt. В своем блоге он написал буквально следующее:
All four pieces (Gestalt, the Dynamic Language Runtime, IronRuby and IronPython) are open source technologies that run on either Microsoft's Silverlight or our own open source Moonlight.

Таким образом Мигель подтверждает, что Gestalt доступен и для linux-пользователей. Пробуйте.

Полезные ссылки




Заключение


По данным riastats.com Silverlight установлен уже на треть компьютеров в интернет. Это огромное число клиентов и доля растет с каждым днем. Я очень рад тому, что эта технология позволяет делать такие уникальные вещи, создавать свой Ruby и Python код прямо в разметке. По моему это грандиозный пример того, как смешиваются и дружат технологии сегодня, как разработчики свободные от лишней идеологии могут использовать для своей пользы целый набор техник, чтобы делать потрясающие вещи совершенно новым способом. И, конечно, у вас всегда остается выбор: не нравится XAML используйте canvas, как показано на примере выше.
Так, с помощью проекта Gestаlt уже были подружены Silverlight и Google Wave! Отличное начало классной технологии!

Progg it
_________
Текст подготовлен в ХабраРедакторе

комментарии (56)

  • Если б не всякие *light то можно было бы поиграться.
    • А вы все-таки попробуйте, может в следующий раз не будет такого негативного отношения к *light
      • Пробовал как-то. Сказали, что мои браузер и операционка не поддерживается.
      • платить кучу денег чтобы поставить винду? Ни один пример выше не поддерживает moonlight 1.x, а 2.х ещё в природе нет.
        • У каждого свой выбор, можно не платить и ждать пока появится нужная функциональность в Мунлайте.
          Кстати, человек, на коммент которого я ответил, ничего не писал про несовместимость ОС и браузера — поэтому я сделал вывод об идейном оторжении данной технологии. С такими людьми я не согласен, надо пробывать, чтобы делать выводы, вот и все.
          • да идейное отторожение есть и у меня тоже. И вообще у меня все разработчики вокруг этот *light отторгают). Как минимум — ну зачем ОПЯТЬ дробить рынок на куски? Опять проприетарщина, опять абсолютно идиотская.
  • Интересно, а запуститься ли эта штука на Moonlight? Пошел проверять.
    • «Таким образом Мигель подтверждает, что Gestalt доступен и для linux-пользователей. Пробуйте.»
      • Нормально работает, фактически, только Hello word и Image Sequencer Pack.
        Остальное или виснет, или не работает. На самом деле, очень жаль. Для меня это, выходит, не доступно.
      • Moonlight в текущем состоянии это SL1.0. Moonlight 2.0 и соответственно поддержку SL2 обещают к концу сентября. О SL3 речь пока не идет. А так, конечно, «Пробуйте». :)
        • moonlight 2.0 поддерживает многие функции SL3.0, срвнивать их по версиям — не корректно. они развиваются параллельно и не соответствуют друг другу по цифрам версий
          • Вы можете заявлять что угодно, но Moonlight 2.0 на текущий момент не рабочий, те он не то что SL3 не запустит, он подвиснет и на SL2. Из тех проектов на Silverlight, что публикуются на Хабре ни один не работает, хорошо если тебе не сразу черный экран показывают с надписью «Waiting for video»(недавний причер с очередной web os).

            Можете запустить и убедиться.
            • проблемы moonlight — это проблемы опенсорс-сообщества linux, вы как член сообщества можете внести свой посильный вклад к развитие опенсорса Moonlight. известно ведь, что сообщество — это большая сила.
              • Если вы его даже не запускаете(как я понимаю), те не в курсе текущего положения дел, зачем каждый раз писать о некорректности версий?

                Mooonlight 2.0 — Silverlight 2.0 compatible engine. Даже если там есть часть функций SL3, фактичекая совместимость будет только с SL2. Вам люди все правильно пишут, версии сравнивать корректно.

  • Silverlight установлен, но не все демки работают.
    • досадно, я проверял на FF 3.0 — все работали
      у вас стоит SL3 RTM?
    • Ни одна демка толком не заработала на WinXP + IE7.
      • silverlight третий RTM стоит?
        • Нужен именно третий? А то в вашем посте я не увидел информации о том, какая версия именно нужна.
          У меня второй.
          • нужен третий, в нем реализована поддержка DLR — динамических языков
        • Установил последнюю версию. Заработала лишь половина демок: XAML, анимация.
      • Разработчики написали, что всё будет стабильно работать в Firefox/Safari/Chrome. Оперы и ИЕ в списке нет :(
        • У меня ФФ 3.5 особой стабильности не наблюдаю. То работает, то нет.
  • Очень забавно. Если б это было еще не привязано к silverlight — было вообще отлично. =))
  • Интересная штука. Помнится, у майкрософта уже было что-то подобное, кажется, script host называлось.
  • Генеалогическое древо рода Атридесов на Python — всегда мечтал…
    • А, пардон, не генеалогическое. Но Атридесы там есть %). Правда не совсем понятна взаимосвязь, почему все из одной точки? Возможно скрытый смысл в форме спирали…

      PS: пардон за оффтоп.
  • Ойойой, это же ASP, только под другим соусом!

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

    • Вы не правы, это скорей Javascript, под другим соусом.
      • Ну не Javascript, а Flash/Java.
  • Вкратце — работа с HTML DOM из Silverlight?
  • НЛО прилетело и опубликовало эту надпись здесь.
  • интересное решение, похоже что такое же можно сделать и на базе Java, которая может выполнять код скриптовых языков (https://scripting.dev.java.net/).
  • эхх… вот бы тоже самое, но под flash/flex…
  • Хм, а ведь значит можно что то аналогичное на основе JRuby сделать…
    [ Глубоко задумался ]
  • Включать скрипты в html, где то я это видел, кого то за это уже ругали.
    (Хинт: PHP)
    • не понимаю за что ругать.
      замена Javascript на Python или Ruby — это замечательно, разве нет?
      • Да, вы правы действительно замечательно.
        (Если бы еще не сильверлайт, вообще было бы круто).
        • это неприязнь к SL или просто мнение о лишней части?
          просто интересуюсь. по моему такие возможности SL должны хотя бы немного изменять в лучшую сторону мнение о нем
          • Неприязнь к СЛ. Такие возможности изменили в лучшую сторону мнение о нем, но недостаточно.
          • Неприязнь к SL, потому что он не работает в *nix, а Microsoft на каждом углу говорит что он кроссплатформенный. Каким-то наи… обманом все это отдает, поэтому к нему отношусь с опаской.
            Adobe как-то не запаривается и поддерживает Flash под все платформы, а MS вот почему-то не хочет, поэтому Flash рулит :-)
            • любой дистрибутив линукс — это набор разрозненного опенсорса, тут мунлайт ничем не отличается от всего линукса — пилите его, шлите фидбэки. глядишь и у вас будет праздник.
              • Эммм, Adobe все-таки выпускает flash как-то без моих фидбеков. Почему? Наверное потому что считает, что это конкурентное преимущество их платформы Flash.
                Зачем мне надо пилить Мунлайт? Я без него жил до этого, и думаю что после этого тоже как-нибудь проживу. Допиливание мунлайта более в интересах MS, чем в моих, пусть они этим и занимаются.
                Я лучше внесу вклад в другие, более полезные и нужные опенсорс проекты :)
      • да какая разница на чём писать — js, ruby, python — всё одинаковое. А вот то что это ещё какая-то экспериментальная связка — вот где жопа.

        если охота вечером запарится — можно.
        если охота сделать какой-то проект — нахрен не нужно даже пытаться время тратить на такое.

        и такими «пинковыми» проектами сей баланс никогда не изменится
      • Ну многих и Javascript устраивает. Другое дело — какова производительность такого дела(работа с HTML DOM) по сравнению с чистым Javascript?
      • Нет, не замечательно. Универсальные технологии такие универсальные.
  • А название как-нибудь связано с гештальт-психологией?
  • В общем СУПЕР!!! Хотя глючит, скрипит, крихтит… но если они это доведут до ума… Ух…

    PS: Как только доделают Moonlight — попробую перейти на Ubuntu :)
    • > но если они это доведут до ума… Ух…

      то что, например, будет?

      мне действительно интересно, где всерьёз это может понадобится. Как just for fun и proof-of-concept я это всячески поддерживаю и одобряю. но, имхо, сколько-нибудь массового применения у этой технологии не будет.
      • Не знаю как вы но Python мне нравится больше чем Javascript… ИМХО…
        • Это вопрос личных предпочтений, т.е. субъективный. А мне интересно, что случиться объективно, «что ух!»?
  • >эта технология позволяет делать такие уникальные вещи, создавать свой Ruby и Python код прямо в разметке. По моему это грандиозный…

    … велосипед
  • Уф… хотел было сказать, что странно, что они выбрали сильверлайт вместо флеша, который популярней.

    Внизу сайта www.visitmix.com написано

    This site is hosted for Microsoft by ORCSWEB Copyright 2007-2009 Microsoft

    В общем, они и не выбирали.

    P.S.: У орков есть веб и он закопирайчен мелкософтом =)
Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.