Ну образ больше строился на нас самих — этак спокойно и кафно разрабатывать. Само название «Realaxy» эту идею отражает.
Еще я каждое утро вижу вполне такой прототип колобка («смайла») — www.facebook.com/photo.php?pid=370137&id=100000195071028
Практика показала, что без статей никак. Я люблю писать скринкасты, поверьте :)
Как я понял, в принципе нареканий по поводу статьи нет. Или есть?
Хочется увидеть место где действительно непонятно.
Первая страница — например «Быстрое создание методов, полей и других языковых конструкций одним нажатием клавиши Enter» — «кликаем» по ссылке и получаем видео.
Возможно use case не очень. Добавим пару иконок.
Спасибо, большое.
Я вернусь через пару часов и отвечу подробно.
Я думаю ваш отрицательный опыт был связан с плохой реализацией.
Может не сам подход плох — а просто было плохо сделано?
> Браво для начала :), но пока верю в MPS платформу как в кодогенератор, хотелось бы узнать ещё что есть:
вдвойне (вдесятерне, черт побери) услышать похвалу от коллеги :)
Ответы:
> есть ли компилятор и отладчик.
Это пока первая бета-версия и мы ждем выход MPS 1.5 в котором есть основа для разработки дебагера. Профайлер мы тоже планируем делать
>поддерживается ли mxml редактирование.
будет во второй бета-версии
>в каком контексте редактируются инклюды.
MPS среда не текстовая, поэтому инклуды редактором мы поддеживаем лишь на уровне специальной конструкции InternalStatement, которая позволяет воткнуть любой текст, на страх и риск разработчиков. Единственный профит от инклудов на мой взгляд — это миксинги, которые мы реализуем специальным языком.
> что с просмотром Flex SDK
Просмотр? пока есть стабы, можно «открыть» swc и поглядеть. По поводу просмотра исходного кода — мы над этим работаем.
> сколько памяти надо.
пока много memory leak-ов. Очень надеемся на версию 1.5 MPS.
Сейчас мы рекомендуем выделить один один гигабайт памяти.
В любом случае этот вопрос решаем.
По поводу быстродействия — мы тут оптимизируем и есть куда двигаться. Автокомплит у нас занимает 50 миллисекунд при наследовании класса от Canvas. С нейспейсами, Exclude аннотациями итд.
MPS предлагает немного другую концепцию расширения функциональности.
За счет языковых расширений.
Добавляешь язык-расширение к тому же AS. В расширении ты можешь добавить новое поведение для кода в целевом языке.
Язык-расширение может включать в себя дополнительные проверки — система типов (например, проверять какое исключение шлется и выводить предупреждение, либо указывать нарушени соглашения кодирования в вашей конкретной команде),
новое поведение в редакторе (клавиатурные сокращения либо альтернативное отображение кода),
mps-плагины,
правила автокомлита (запретить/добавить автокомлит, добавить темлейты) итд.
Расширить и дополнять можно практически все.
Плагины можно писать и обычные, Идейные, но лучше пользоваться MPS-инфраструктурой.
Конечный пользователь может добавить язык в проект (импортировать язык) и получить весь набор плюшек.
MPS основывается на Idea Platform.
Расширять ее можно как обычную Идею.
Плагины от Идеи можно устанавливать, но они там бесполезны.
Код то представлен несколько по другому.
Риторический вопрос — риторический ответ :)
Мы действительно заинтересованы, чтобы редактором пользовались.
Без нормальной документации это вряд ли возможно.
Писать код — это одно, писать языковые расширения — это другое.
Я сам прошел по пути изучения MPS и написания языковых расширений и знаю как это действительно не просто.
Простые расширения — семечки, капнул глубже — уже бетонная стена.
Поэтому, конечно же мы потратим максимальное количество усилий на документацию.
Первое и главное — это LOP (Language Oriented Programming) от MPS.
MPS — это среда созданная специально для использования языковых расширений в Java.
Мы заточили ее под AS3, добавив поддержку.
LOP позволяет писать языковые расширения — В RE будут включен набор языков, которые действительно могут облегчить жизнь разработчикам.
Языковые расширения «выгоняются» в AS виде обычного текста, который отдается компилятору.
Пока расширений не много — Generics, Enums, Closures, ObjectBuilder (декларативный язык позволяющий собирать объекты аналогично JavaFX), Logging Language,
Может быть успеем допилить Collection Language (запросы к колекциям и dynamic finders как в Groovy/Roby).
К релизу мы сделаем внушительный набор языков.
Второе. Набор рефакторингов уже сейчас в стадии беты превосходит все существующие AS-радакторы.
Третье. Совершенно другой способ работы с кодом. Например, чтобы добавить метод или поле нужно только нажать энтер.
По началу не совсем привычно, но запомнив принципы редактора и небольшой набор клавиатурных сокращений это становится действительно удобно и эффективно.
В скринкастах это можно увидеть.
Четвертое. Мы хотим выгонять это не только в AS. HTML5/JS и Object-C. Но в текущей бете этого пока не будет.
Спасибо. Некоторым скринкастам уже гдето полгода. XML/E4X относительно свежие.
Было столько работы, что просто не было времени их записывать.
Сейчас записываем скринкасты по новой для нашего сайта.
Теперь эмоции —
Уфф… честно говоря мне очень страшно :)
Еще я каждое утро вижу вполне такой прототип колобка («смайла») — www.facebook.com/photo.php?pid=370137&id=100000195071028
Как я понял, в принципе нареканий по поводу статьи нет. Или есть?
Хочется увидеть место где действительно непонятно.
Возможно use case не очень. Добавим пару иконок.
Спасибо, большое.
Есть задача и идея некого компилятора, который сможет выгонять в бинарное представление — AST -> ByteCode
второй урок будет именно по ним.
уже пишу.
Я думаю ваш отрицательный опыт был связан с плохой реализацией.
Может не сам подход плох — а просто было плохо сделано?
вдвойне (вдесятерне, черт побери) услышать похвалу от коллеги :)
Ответы:
> есть ли компилятор и отладчик.
Это пока первая бета-версия и мы ждем выход MPS 1.5 в котором есть основа для разработки дебагера. Профайлер мы тоже планируем делать
>поддерживается ли mxml редактирование.
будет во второй бета-версии
>в каком контексте редактируются инклюды.
MPS среда не текстовая, поэтому инклуды редактором мы поддеживаем лишь на уровне специальной конструкции InternalStatement, которая позволяет воткнуть любой текст, на страх и риск разработчиков. Единственный профит от инклудов на мой взгляд — это миксинги, которые мы реализуем специальным языком.
> что с просмотром Flex SDK
Просмотр? пока есть стабы, можно «открыть» swc и поглядеть. По поводу просмотра исходного кода — мы над этим работаем.
> сколько памяти надо.
пока много memory leak-ов. Очень надеемся на версию 1.5 MPS.
Сейчас мы рекомендуем выделить один один гигабайт памяти.
В любом случае этот вопрос решаем.
По поводу быстродействия — мы тут оптимизируем и есть куда двигаться. Автокомплит у нас занимает 50 миллисекунд при наследовании класса от Canvas. С нейспейсами, Exclude аннотациями итд.
За счет языковых расширений.
Добавляешь язык-расширение к тому же AS. В расширении ты можешь добавить новое поведение для кода в целевом языке.
Язык-расширение может включать в себя дополнительные проверки — система типов (например, проверять какое исключение шлется и выводить предупреждение, либо указывать нарушени соглашения кодирования в вашей конкретной команде),
новое поведение в редакторе (клавиатурные сокращения либо альтернативное отображение кода),
mps-плагины,
правила автокомлита (запретить/добавить автокомлит, добавить темлейты) итд.
Расширить и дополнять можно практически все.
Плагины можно писать и обычные, Идейные, но лучше пользоваться MPS-инфраструктурой.
Конечный пользователь может добавить язык в проект (импортировать язык) и получить весь набор плюшек.
MPS основывается на Idea Platform.
Расширять ее можно как обычную Идею.
Плагины от Идеи можно устанавливать, но они там бесполезны.
Код то представлен несколько по другому.
Мы действительно заинтересованы, чтобы редактором пользовались.
Без нормальной документации это вряд ли возможно.
Писать код — это одно, писать языковые расширения — это другое.
Я сам прошел по пути изучения MPS и написания языковых расширений и знаю как это действительно не просто.
Простые расширения — семечки, капнул глубже — уже бетонная стена.
Поэтому, конечно же мы потратим максимальное количество усилий на документацию.
Ко второй бете будем парсить файлы билдера, fdt, и idea
Чем отличаемся.
Первое и главное — это LOP (Language Oriented Programming) от MPS.
MPS — это среда созданная специально для использования языковых расширений в Java.
Мы заточили ее под AS3, добавив поддержку.
LOP позволяет писать языковые расширения — В RE будут включен набор языков, которые действительно могут облегчить жизнь разработчикам.
Языковые расширения «выгоняются» в AS виде обычного текста, который отдается компилятору.
Пока расширений не много — Generics, Enums, Closures, ObjectBuilder (декларативный язык позволяющий собирать объекты аналогично JavaFX), Logging Language,
Может быть успеем допилить Collection Language (запросы к колекциям и dynamic finders как в Groovy/Roby).
К релизу мы сделаем внушительный набор языков.
Второе. Набор рефакторингов уже сейчас в стадии беты превосходит все существующие AS-радакторы.
Третье. Совершенно другой способ работы с кодом. Например, чтобы добавить метод или поле нужно только нажать энтер.
По началу не совсем привычно, но запомнив принципы редактора и небольшой набор клавиатурных сокращений это становится действительно удобно и эффективно.
В скринкастах это можно увидеть.
Четвертое. Мы хотим выгонять это не только в AS. HTML5/JS и Object-C. Но в текущей бете этого пока не будет.
Было столько работы, что просто не было времени их записывать.
Сейчас записываем скринкасты по новой для нашего сайта.
Теперь эмоции —
Уфф… честно говоря мне очень страшно :)