Заинтересовал тут меня тутор по дополнительной реальности, уселся
смотреть. Автор (долгих лет жизни ему) использует FlashDevelop. И тут
у меня случилось ощущение как посте скрипа железом по стеклу.
Отреагировал я так на процедуру создание методов.
К слову сказать, FlashDevelop я никогда не юзал и даже ниразу не видел
как он работает. И вот увидел.
Так вот: меня потрясло в каком каменном веке там всё находится.
Неоднократно я слышал, что то, какой хороший FlashDevelop и возразить
по вышеозначенным причинам я не мог. Но вот теперь, вооруженный
конкретными примерами камня на камне не оставлю на нем.
Итак, создание метода с одним параметром во FlashDevelop занимает 15 секунд:
http://vimeo.com/16093919
10:55 - 11:10
Создание метода с одним параметром в RASE занимает 7 секунд:
http://johnlindquist.com/
00:47 - 00:54
Что более чем в 2 раза быстрее.
При этом, в RASE время тратится исключительно на то, что абсолютно
необходимо. И то, будем ещё делать модный автокомплит, который поможет
создавать имена новых переменных и функций. Во FlashDevelop нужно всё
прописать ручками с обычным автокомплитом.
Так вот, это не 8 секунд разницы. Это ДВЕ НЕДЕЛИ вашего рабочего
времени в месяце, это ШЕСТЬ МЕСЯЦЕВ вашего рабочего времени в году.
Потому, что речь идёт не только о создании методов, во всём такая
разница. Во всём.
50% времени на холостом ходу. И чем сложнее проект, тем этот процент выше.
На месте работодателей, я бы объявления о найме писал так:
Требуется Flash-разработчик [...], использующим FlashDevelop в своей
работе установлен коэффициент 0,5 к указанной зарплате.
FlashDevelop - какашка.
--
Ivan Dembicki
http://realaxy.com
С другой стороны FD (которым я, кстати говоря тоже не пользуюсь)
бесплатен, что для многих разработчиков вполне понятная причина
использовать именно его. Конечно, $99 это очень хорошая цена и низкий
вам поклон за ваши труды, но оглянись вокруг (хотя нет, в Черногории
тебе это не поможет) и увидишь, что людей не готовых платить за
инструменты много больше.
--
A!ziz Zaynutdinoff
flash-технолог
______________________________________________________________________
aziz.zay...@gmail.com | http://www.actionsmile.ru
> а FDT?
- следует признать объективно, что FDT на сегодняшний день развит
лучше чем RASE. Но тоже уже не везде и во всём.
У меня нет последней версии FDT, подскажите, как дела там с поддержкой XML?
Если до сих пор нет, то стыд и позор - столько лет на рынке, а такую
вещь не сделать.
Что касается скорости ввода нового метода в FDT, то там проблема почти
аналогична FlashDevelop. Но у них есть другие вещи, которые мы еще не
реализовали.
Думаю, что по функциональности мы обгоним FDT меньше чем за пол года.
ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ
блин я 70% времени решаю задачу и только 30% шлепаю по кнопкам
и чем сложнее проект тем меньше времени буду тратить на шлепанье
с помощью RASE женщина сможет родить ребенка за 4,5 месяца УРА!!!!
кстати интересно бы провести эксперимент взять двух (круче две группы)
программеров, умеющих пользоватся обоими тулзами
одного посадить за RASE другого за FD
поставить конкретную задачу и засечь время
потом поменяться и поставить вторую задачу (аналогичную по сложности)
и опять засесь время
вот тут то и будет более реальный процент холостого хода я не думаю
что он будет очень большой
но с другой стороны потом оценить отзывы этих программеров
это как доехать из пункта А в пункт Б на лексусе и калине, ограничения
скорости по трассе одинаковы ))))
// я не юзал FD, и RASE только пробовал чуть чуть. ))
> У меня ушло почти неделю (если не больше) на то, чтобы привыкнуть к
> RASE и то до сих пор руки тянутся к "неправильным" кнопкам.
- отличная статистика!
По твоим словам получается, что у тебя уже выигрыш неделя :)
Ну или, как минимум, ты не в проигрыше.
Попробуй через месяц работы на RASE написать код во FlashDevelop и
поделись ощущениями.
В свое время, когда я перешел с Flash IDE на FDT, примерно месяц
приходилось привыкать. Но однажды вернувшись обратно, чтобы поправить
старый проект, я был потрясён насколько тупо всё там сделано и как
много времени я трачу на механическую работу.
> Так что это не холивар, это рекламный трюк =)
- давай договоримся, что любое упомининие мной RASE в письме или при
личном разговоре является рекламой RASE. Впрочем, как и упоминание
любых других продуктов и услуг. Ну, чтобы не возвращаться к этой теме.
С другой стороны, я ведь рекламирую то, что знаю, а не неизвестную мне
клинику по увеличению пениса.
> Конечно, $99 это очень хорошая цена
- я не знаю Flash-разработчиков в России, зарабатывающих меньше 1000
долларов. Такие скорее всего есть, но их никак не большинство и это,
как правило, начинающие.
И сумма меньше, чем одна десятая от одной зарплаты, мне кажется
приемлемой для подавляющего большинства. Ста процентам конечно никогда
не угодим.
PS:
Но я что-то не слышу возражений со стороны пропагандистов FD.
Вспоминается мне анекдот про секретаршу, которая печатает со скоростью
в тыщу знаков в минуту.
"Правда, сплошная фигня получается..."
Странные у вас предпосылки к выводам, право. Я сейчас попробовал
просто в нотепаде руками создать метод с одним параметром. Оопс -
вышли те же семь секунд. Сделаем вывод, что RASE ацтой? :)
Кодинг занимает едва ли 30% рабочего времени. По оценкам Холтстеда
хороший разработчик производит приблизительно 30 строчек кода в день.
В свете этой метрики я хотел бы задать вопрос - вы уверены, что ваши
восемь секунд экономии вообще стоят рассмотрения?
--
Alexander Nemtsov
> RASE как вариант, но без метапрограммирования. Сорри, но завязывать
> проект на неимеющей оффициальной поддержки IDE я считаю стратегически
> неверным шагом. Без метапрограмминга ок можно попробовать.
- любой проект с метапрограммированием сначала выгоняется в обычный AS
и только потом компилится.
В любой момент можно взять сгенеренный код и уйти с ним на другой редактор.
В чем проблема-то?
> а в RASE можно кастомить стилистику?
- пока нет. Но будет.
----------------------------
О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫тёО©╫.
> Использую снипет у меня на набор аналогичного метода ушло 8 секунд.
- речь ведь не только о наборе метода. Идеология другая и она везде.
На всё сниппетов не хватит.
> В свете этой метрики я хотел бы задать вопрос - вы уверены, что ваши
> восемь секунд экономии вообще стоят рассмотрения?
- если бы я писал код по 30 строчек в день, то был бы выкинут с первой
же работы и со второй и с третьей.
И любой из здесь присутствующих.
Я понимаю, когда решается сложная математическая проблема, много
считаешь на бумажке, выводишь формулы и потом переводишь это в код, то
30 строк нормально.
Но когда работаешь с интерфейсами, описываешь поведение обхектов, ито
код льется как из ведра.
Поэтому метрика неверная. Не для Flash.
О я попал под статистику ))) и я хороший )))
--
отменить подписку: ruFlash-u...@googlegroups.com
сообщение в группу: ruF...@googlegroups.com
страница группы: http://groups.google.com/group/ruFlash
правила группы: http://groups.google.com/group/ruFlash/web/rules
на facebook: http://www.facebook.com/home.php?sk=group_163903643627621
Иван открой код любого твоего проекта того-же RASE ))
сосчитай строчки потом подели на время будеш удивлен
не кодом единым сыт программист
да и прошли те времена когда качество программиста определялось
количеством строк
эти сишники досихпор скобочки
{
переносят
}
суки
Ну что ж, в ответ я могу лишь только предложить еще раз прочитать
анекдот про секретаршу :)
> - если бы я писал код по 30 строчек в день, то был бы выкинут с первой
> же работы и со второй и с третьей.
> И любой из здесь присутствующих.
>
> Я понимаю, когда решается сложная математическая проблема, много
> считаешь на бумажке, выводишь формулы и потом переводишь это в код, то
> 30 строк нормально.
> Но когда работаешь с интерфейсами, описываешь поведение обхектов, ито
> код льется как из ведра.
> Поэтому метрика неверная. Не для Flash.
--
Alexander Nemtsov
Итак, создание метода с одним параметром во FlashDevelop занимает 15 секунд:
http://vimeo.com/16093919
10:55 - 11:10
По оценкам Холтстеда
хороший разработчик производит приблизительно 30 строчек кода в день.
ахахах, ну ты негодяй
а если тут есть кто-то сишник? не боишься нанести ему батхарт?!
вот тут то выскакивает расе на белом коне, и говорит "зачем вам
долбанные скобки, пишите в пайтон стиле"
или вообще можно будет настроить так что скобка будет не на следующей
строке, а на третьей после, а закрывающаяся будет не после всего куска
кода, а на последней строке кода в конце через два таба
в этом и фишка что в расе не код а мета, форматируй как хочешь, без
всеобщего replace with по всему проекту
--
С уважением,
iNils mailto:in...@mail.ru
>> Так вот, это не 8 секунд разницы. Это ДВЕ НЕДЕЛИ вашего рабочего
>> времени в месяце, это ШЕСТЬ МЕСЯЦЕВ вашего рабочего времени в году.
>
> http://www.youtube.com/watch?v=E8YqqwdB8Es
- огромное и искреннее спасибо!
> Вань ты видел что генерирует mxmlc флексовый? Там без бутылки водки и хвоста
> селедки не разберешься. Но то ок, т.к. поддерживается adobe и грамотными
> индусами.
- тут другая ситуация. Всё, что генерирует RASE, ты контролируешь.
Не нравится? Переписал.
Все языковые расширения - opensource.
> А, ну-ну. Рекламирую дальше, а я буду релаксировать в фд :)
- ну блин, мог бы хоть из чувства солидарности, что ли.
Нет пророка в своем отечестве.
Ну как может этот Потапенко, которого я лично знаю и видел много раз,
сделать что-то заслуживающего внимания? Я же его видел, знаю, он
обыкновенный - из мяса и костей. Крутые вещи делать могут только
небожители. У них американское гражданство, они учились в
Массачусетском Технологическом, они умеют так с прононсом говорить
Эсс...Дабл...Ю...Эффф..
iNils, я уважительно к тебе отношусь, но твои расистские взгляды
сейчас мешают тебе воспользоваться уникальной ситуацией. Правктически
впервые в истории Flash технологии русские разработчики получают
информацию первыми и из первых рук.
Не хочешь? Твое дело.
Переносить или не переносить это личное дело каждого, пытаться навязать свое мнение в данном вопросе, тем более используя подобные выражения "увеличить читабельность" ничем толковым не закончится, зато породит очередной холивар.
> А, ну-ну. Рекламирую дальше, а я буду релаксировать в фд :)
- и вдогонку: в тему языковых расширений AS уже впряглись давно
знакомые тебе люди. Имена, которые ты знаешь (и весь мир) уже лет 10
(я их лет 10 знаю точно, не знаю как ты). Сейчас они колупают RASE и
долбят нас детскими вопросами. Через месяц они сваяют своё первое
языковое расширение. Через полгода они будут кататься по миру и
рассказывать как это круто, писать статьи и книги.
Но на этот раз у тебя не будет отмазки, что это где-то там, где-то у
них, и они все повязаны и поэтому ты за бортом.
МЫ все повязаны.
И сейчас как раз ОНИ, прорываются через наши ответы, переведенные
через гугл транслейт.
ОНИ узнают всё позже тебя, только после того как переведена очередная статья.
Ты что, протухаешь старик?
Лень поднять жопу и посмотреть, разобраться что это?
Не узнаю тебя.
> Обязательно буду пробовать и пользоваться RASE, готов даже купить, но только
> после того как это будет действительно такая революция как о ней говорят его
> разработчики :)
- напиши мне письмо отдельно, как купишь.
Мы бухнём по этому поводу.
> Иван открой код любого твоего проекта того-же RASE ))
> сосчитай строчки потом подели на время будеш удивлен
- ок, давай исходить из того, что мы все пишем одну строчку в день и
валим бухать. Я согласен даже с такой постановкой вопроса.
Расскажи мне, сколько проектов ты сделал, в которых активно
применялось разделение проекта на песочницы? Пусть даже по строчке в
день вы это писали.
НОЛЬ.
И я сейчас тебе НАМЕКАЮ. Первому. По секрету.
Будет, например, фрейворк, который позволит нормально работать с
песочницами и делать модульные проекты.
Если это тебе ни о чем не говорит, то это ни о чем тебе не говорит, и
я ничем больше помочь тебе не могу.
где вы увидели избыточное цитирование
избыточное это когда оставляют "отменить подписку" и прочие ссылки, я
лишь оставил только то что нужно было для моего сообщения
по теме, вы импортите код в расе, он парсит его и показывает его в том
виде в котором вы привыкли видеть код - со скобкой на след строке
если я заимпорчу себе код, то увижу его в пайтон стиле, и мне не нужно
будет ничего править
> Вы же наверняка знакомы с методикой? Вы же понимаете, какие именно эти
> средние 30 строчек?
> И все равно небрежно отмахиваетесь от очень серьезных академических
> исследований?
- да, в КОНЕЧНОМ продукте их может быть и даже меньше.
Но это 20 раз переписанные, прорефакторенные, прооптимизированные строчки.
Но этот путь нужно пройти, не так ли?
> Ну что ж, в ответ я могу лишь только предложить еще раз прочитать
> анекдот про секретаршу :)
- так может не стоит уподобляться этой секретарше?
Может не стоит тащить на себе печатанье херни там, где достаточно нажать Enter?
и может заодно сесть да почитать про DSL. У Фаулера есть прекрасные
статьи, переведенные даже на русский. И книжка на подходе.
отменить подписку: ruFlash-u...@googlegroups.com
сообщение в группу: ruF...@googlegroups.com
страница группы: http://groups.google.com/group/ruFlash
правила группы: http://groups.google.com/group/ruFlash/web/rules
на facebook: http://www.facebook.com/home.php?sk=group_163903643627621
> по теме, вы импортите код в расе..
Я не хочу ничего импортировать, я хочу открыть код в
блокноте и увидеть код. Так яснее? Или вы считаете, что лучше меня
знаете что я хочу?
> Метапрограмминг меня пока сильно смущает.
> Например второй коммент тут
> http://johnlindquist.com/2010/10/23/what-is-realaxy/ просто в точку:
> «The generated code has nested functions????
- да, это процесс.
Тебя же не смущает, что твой код на AS компилируется в байткод? А там,
поверь, столько всего компилятор наливает, что nested functions
покажутся детской забавой. Но ты же не пишешь на байткоде?
Или ты берешь swc либу и юзаешь ее. А там, АААААААА! nested functions!
А ты даже не знаешь об этом.
Ты удивишься, но, как это ни странно, сгенеренный код НАДЁЖНЕЕ, чем
ручками написанный. Библиотеки надёжнее, чем собственное решение. Как
система. Причина проста и очевидна. Объяснять нужно?
К слову сказать, Object Builder был написан Женей Потапенко за пару
дней, как пример языкового расширения. Если что-то там не так,
повалится серия багрепортов и он будет исправлен за пару дней. И тебе
понадобится только нажакть кнопку Update, а не удивиться через пол
года на багрепорты готового продукта.
Я верно говорю?
> То-есть если бы и пользовался RASE то как просто редактором, без
> метапрограммирования (при этом как как бы теряется половина кайфа RASE как я
> понимаю).
- да, но задача сейчас наша в том, чтобы кайф без метапрограммирования
был равен или даже большим, чем в других редакторах.
> Очень мало есть желания ловить метабаги, а потом плюнув лезть в сгенеренный
> код, а там уже копаться в очень страшном сгенеренном коде, где эти метабаги
> ставшие уже просто багами будет найти еще сложнее...
- тебе не понадобится это делать. Я про это выше написал.
> А чего, собственно, AS? Не самый лучший язык. Да и флэш платформа -- не
> самая лучшая платформа.
- просто потому, что мы его любим.
> Чтобы изучить и потом применять все фишки вашего редактора понадобится время
> и терпение. А как известно, у большинства его нет и не будет.
- да, ты прав.
Именно поэтому мы много копий ломаем на тему низкого порога входа.
Мы понимаем, что времени учиться нет или совсем немного.
Тут мы еще в пути.
Но уже есть находки. И будут еще.
Ведь тебе не сложно создать метод, нажав Enter?
Ведь тебе помогает подсказка сереньким цветом возможных параметров при
вызове метода?
А для этого не понадобилось ничего изучать.
Хотя не скрою, в этом направлении нам еще многое предстоит.
> И я сейчас тебе НАМЕКАЮ. Первому. По секрету.
> Будет, например, фрейворк, который позволит нормально работать с
> песочницами и делать модульные проекты.
я очень даже понимаю концепцию
но начало холивара - некоректное, вот что я имею ввиду
скорость написания строчки кода - не самое главное
а вот метапрограммирование - есть блин следущая ступень и странно что
многие не понимают
Взять к примеру тот-же MXML сраный биндинг
его все используют и нормуль
потомучто это реально ускоряет разработку ибо заменяет туеву кучу строк.
кстате в RASE будет биндинг ?
> Переносить или не переносить это личное дело каждого, пытаться навязать свое
> мнение в данном вопросе, тем более используя подобные выражения "увеличить
> читабельность" ничем толковым не закончится, зато породит очередной холивар.
- согласен на все 100%.
Особенно учитывая, что это несложно автоматизируется, и холивар может
быть только там, где нет автоматики.
> В Java мире подобный продукт скорее занял бы свою нишу, как заняли нишу
> Scala, Scheme, Groovy и т.д. AS мир ну просто слишком мал.
- ну, мы просто всех под себя заберем, никаких других редакторов не останется :)
> Впрочем, в Java мире можно использовать непосредственно MPS, а не RASE.
- сейчас MPS суров как препод на экзамене. Но да, думаю, что и наши
потуги в том числе (малом) выведут MPS в свобю нишу.
> MPS можно использовать внутри привычной среды,
> только для небольшой части проекта. И переходить с обычной IDE на MPS
> постепенно.
>
> Для RASE такого не получится, увы.
- отчего же?
Я что-то разницы не уловил.
Юзай языковые расширения только в одной в части проекта, кто мешает?
Или я чего-то не понял?
> вот тут то выскакивает расе на белом коне, и говорит "зачем вам
> долбанные скобки, пишите в пайтон стиле" [....]
- дай я тебя расцелую!
Сказал даже лучше, чем я сам сообразил бы.
Код, который все сейчас пишут, это условность определенная синтаксисом
конкретного языка. Программиста вгоняют в рамки "делай так, а не так".
Иначе не получится - не поймет компилятор - у него жесткие правила.
Метапрограмминг позволяет эти правила менять. Менять настолько, что
вашу программу можно представить набором смайликов или в виде письма
турецкому султану на идиш. Вопрос лишь в том, как это лучше НУЖНО
представить.
Вот смотрите: Adobe решила, что код надо писать так. И никак иначе. Но
кроме Adobe есть еще десятки компаний, которые создали свои языки и
правила. И вы должны знать их все, если хотите писать код под них.
Вас ничего не удивляет?!!
Вы, написав программу (не код, а программу, которая работает),
сообщили этой долбаной железке 100% информации для исполнения этой
программы. Но тут выползает другая система или железка, которая вас не
понимает!
Вам это не удивительно?
Вы ведь сделали всё, что нужно. И тут вам приходится портировать на
другой язык, чтобы другой железке это объяснить.
Меня больше удивляет то, что до сих пор это есть. И этому я находу
единственное объяснение - монополия Microsoft, которая сняла остроту
этой проблемы. Ну и еще наличие Java, которая везде работает.
Но мир меняется.
Через пару лет с телефонов в тырнет будут ходить больше чем с компов.
И там нет монополии кого бы то нибыло.
Вы готовы портировать свои игры под 10 платформ?
Метапрограмминг позволяет эту проблему снять.
Не сегодня, да. Но он В ПРИНЦИПЕ в состоянии это сделать.
Сорри, тут еще много текста планировалось, но жена уже в третий раз
звонит, завет ужинать, манит.
Продолжим завтра, всем спасибо.
ну вот жеж http://www.realaxy.com/download/index пожалуйста щупай
> В том то и фишка, что это код, которые можно легко редактировать и
> читать в чем угодно, а не быть привязанным к редактору.
- в том-то и дело, что ты говоришь о коде, а мы говорим об ОДНОМ ИЗ
представлений ПРОГРАММЫ.
Код всегда заточен под то, что его интерпретирует в итоге. Программа
кроссплатформенна. Она вообще вне компьютера - это твои пожелания,
выраженные в инструкциях.
Тебе привычно писать код в стиле Java? Вэлкам, пиши на Java
Flash-приложения. Программе не важно на чем ты ее пишешь и как тебе
удобнее ее видеть. Это лишь ее отражение в реальном мире. В конечном
итоге она превратится в то, что ты всё равно не сможешь прочесть. А
пока пользуй так, как тебе удобно ее видеть.
> С мета-кодом будет тоже самое - будут "забывать" про ас.
- всё еще хуже. Метакод или мета диаграммы или метасмайлики не
предназначены для простого просмотра.
Ты же открываешь swf файлы плеером и тебя это не пугает. Да и обычные
текстовые файлы ты не в виде единиц и нулей смотришь. Всегда есть
интерпретатор. В чем же тогда принципиальная разница?
On Oct 26, 5:28 pm, Ivan Dembicki <ivan.dembi...@gmail.com> wrote:
> Итак, создание метода с одним параметром во FlashDevelop занимает 15 секунд:http://vimeo.com/16093919
> 10:55 - 11:10
>
> Создание метода с одним параметром в RASE занимает 7 секунд:http://johnlindquist.com/
> 00:47 - 00:54
>
> Что более чем в 2 раза быстрее.
классное сравнение, но во первых чувак трать основное время на
написание имени функции, причём оно у него длиннее, и набивает он его
медленнее, во вторых в фд есть спецшорткаты для создания функций, о
которых, я думаю, тут кто-то уже полюбому вспомнил.
в любом случае, надо замерять на выборке большей чем 1 элемент.
+100500
> Тебя же не смущает, что твой код на AS компилируется в байткод? А там,
> поверь, столько всего компилятор наливает, что nested functions
> покажутся детской забавой.
Вот это бред. Ваня, ты когда-нибудь сам смотрел в байткод-то? Там все
очень логично и понятно. А вот когда появляются анонимные функции,
начинается жопа с созданием activation objects и хранением всего
scope, где оно появилось. Просто наличие пустой анонимной функции в
методе замедляет его в кучу раз. Я бы их избегал. В контексте object
builder оно может оказаться безобидным, ибо кто будет постоянно
ребилдить свои обжекты? Не будут же, да?
А по поводу писать быстрее, я часто ловлю себя на том, что во время
написания private function handler_someHandler(event:Event):void
{<enter> я продумываю дальнейшую логику кода. И то, что я смогу это
написать в 2 раза быстрее не заставит меня в 2 раза быстрее думать --
просто будет пауза длиннее.
Да и вообще тут уже часто говорили, что основная проблема совсем не в
скорости печати.
Валентин.
> Иван, где ты увидел расистские взгляды?
- не пугайся, я же в шутку :)
А по поводу писать быстрее, я часто ловлю себя на том, что во время
написания private function handler_someHandler(event:Event):void
{<enter> я продумываю дальнейшую логику кода. И то, что я смогу это
написать в 2 раза быстрее не заставит меня в 2 раза быстрее думать --
просто будет пауза длиннее.
> Не очень понял прикола, а ты видимо не понял моей мысли, пол-года (или
> сколько там) одни пузыри в воде и пиар.
> Я уважаю ваш труд и ваши стремления, но они пока не соответствуют громким
> словам.
- я без приколов имел ввиду, что покупка тобой нашего редактора станет
для нас определенного рода неким рубежом, некой лакмусовой бумажкой
того, что мы достигли определенных успехов.
Про пиар:
если честно, то я ожидал, что у нас будет больше бета тестеров, что мы
получим бОльшую поддержку российского Flash-сообщества, а мы сейчас в
ней нуждаемся очень сильно.
Нуждаемся не в покупках, в бета-тестерах нуждаемся.
Ты нам хоть один баг-репорт написал? Фичу предложил?
А выглядит сейчас всё так: мы везде, где только можно пишем:
- Становитесь бета тестерами, пишите баги, фичи, мы отработаем.
А в ответ получаем:
- Не юзал, но осуждаю.
Спасибо, чё.
Те, кто нам постят в тракер, знают насколько внимательно мы относимся
к этому. И в большинстве случаев, в следующей версии они видят
пофиксенный результат.
Еще одну вещь мы понимаем: без помощи сообщества нам не сделать
хороший редактор. И сделали ставку на российское Flash сообщество, как
на наиболее дружественное к нам - мы все друг друга знаем, виделись на
разных мероприятиях, пили пиво, да и помогал я и Женя Потапенко (John
на flasher.ru, если кто не знает) с кодом, со сложными вопросами очень
многим. За десять лет программинга это сотни людей.
Где они все, когда они нам так нужны?
> По-моему, мы здесь путаем понятия, RASE быстрее для набора кода и тем
> самым избавляет от лишней механической работы, но при этом теряется
> чистота языка как такового, ибо программирование идет на другом языке.
- метапрограммирование в Realaxy ActionScript Editor не обязательно к
использованию. Это фича. Хочешь юзай, а хочешь не юзай.
> Как только можно будет пощупать RASE своими руками, я
> обязательно это сделаю, а пока это без покупки не сделать - я останусь
> со своей средой разработки :)
- качай, смотри, всё пока бесплатное. Но и после релиза можно
посмотреть - будет триал.
А в ответ получаем:
- Не юзал, но осуждаю.
Спасибо, чё.
> это круто, что он позволяет писать как Б-гу угодно.
- богоугодное дело делаем! :)
> как я смогу посмотреть и понять код который написал мой коллега [...]
> часты требования, что отдавать исхоники надо во FLA, а классы в AS
- в зависимости от требований проекта ты просто принимаешь решение
применять тебе или нет языковые расширения. И какие именно применять.
Есть языковые расширения, которые новый AS код не генерят или делают
это совсем прозрачно.
К примеру в Realaxy ActionScript Editor (раз тебе RASE не нравится,
буду писать так), можно метаданные писать двумя способами (есть про
это видяха у нас на главной - Metadata autocomplete):
[Event(name="shoot" type="game.events.GameEvnt")]
или
[Event(name=GameEvent.SHOOT type=GameEvent)]
Такая возможность код генерит, но ничего особо не меняет и понятна
любому Flash-программисту. Хотя при этом крайне полезна.
В данном примере видно, что в первом случае допущена ошибка и ни один
редактор ее не подсветит.
Второе - рефакторинг. Не дай бог вам перенести GameEvent в другую
папку. Если работаешь один, то да, может и вспомнишь что нужно и
метаданные поменять. И поиском пройдешься по проекту. В RASE
метаданные рефакторятся на раз.
Но есть и языковые расширения, которые код генерят очень активно.
Например, вызов метода из другой песочницы при использовании языкового
расширения - одна строка. В генерации это например порядка 50 строк.
Можно проект сгенерить и отдать AS тому, кому он нужен в чистом AS. Не вопрос.
Но при этом резко упадет читабельность кода, как раз за счет
увеличения объема кода.
И получатель кода еще 100 раз подумает, а не стоит ли всё-таки взять
RASE и работать с ним.
Грубо говоря: некоторые вещи RASE будет помогать делать очень сильно.
Настолько сильно, что в другом редакторе за такие вещи вы просто не
взялись бы. И в этом случае отдавать сгенеренный код практически
бессмысленно - он слишком трудоемок в использовании и понимании. То,
что делал за тебя редактор, придется понять и делать самому. И очень
много.
> Ещё удивило то, что в целом там достаточно интуитивно всё понятно.
- спасибо, именно этого добиваемся.
> В текущей версии RASE не интегрированы ли возможности для работы с AIR?
- пока нет.
> А вот когда появляются анонимные функции, [...]
> А по поводу писать быстрее, я часто ловлю себя на том, что во время
> написания private function handler_someHandler(event:Event):void
> {<enter> я продумываю дальнейшую логику кода.
- и тебе хочется чем-то занять руки? Нотепад в помощь :)
> ух ты, 58 мессаг, иногда меня радует, что я не подписан на руфлеш в
> режиме инстант имэйл. троллинг в целях рекламы? или серьёзно?
- как я уже писал выше, любое упомининие мной RASE является рекламой.
Как и упоминание любых других продуктов.
RASE RASE RASE RASE RASE RASE RASE
- это чтобы ты не сомневался.
> в любом случае, надо замерять на выборке большей чем 1 элемент.
- дело не в данном конкретном случае. Хотя и он очень показателен:
человек, никак не уровня "начинающий" не воспользовался шоткатом. Это
разве не показатель? Ему проще набрать руками, чем знать шоткат.
У нас не надо знать шоткат, и медленным способом создать метод невозможно.
> Ваня обиделся :)
- я не обиделся, я бухчу.
> Дайте-ка я поменяю разговор с минуса на пляс и что-нибудь предложу.
- этого я и добиваюсь.
> 1. Сделайте [...]
> Если заинтересовало, пиши в личку - я поясню подробней.
- напиши лучше нам таски в трекер, это будет куда эффективнее, чем переписка.
> ЗЫ А если при этом и код сервера будет генерить, то ваще улёт будет :)
- есть в планах.
Будет возможность прямо в AS классе писать серверный код.
> Сделайте интеграцию с swfaddres. [...]
- отличная тема!
Напиши плиз в тракер, умоляю.
> Если придумаете механизм для дублирования флэш-контента в текст (seo), то
> это будет просто подарок.
- прости за тупость, я не понял что нужно. Распиши плз.
> Я ещё могу много чего придумать :)
> Если это конечно вам надо.
- придумывай, пиши, нам ОЧЕНЬ надо.
Но все пожелания и баги лучше всего писать нам в тракер.
http://tracker.realaxy.com
Там они точно не пропадут и попадут к нужному специалисту.
> * насчет самой концепции метапрограммирования - я свято верю в тот
> тезис, что универсальное всегда и заведомо хуже специального.
- метапрограммирование как раз следующая ступень в специализации.
Языковыми расширениями можно так заточить проект, что ничего, кроме
например трех нужных методов там не останется.
> покажите мне нативно понятные для
> php (или C#, или js), например, addFrameScript, gotoAndStop,
> addEventListener(Event.ENTER_FRAME), BitmapData.draw(). или php
> mail(), нативно понятный для флеша.
- я тут не понял мысль.
> * и да, насчет бетатестинга - Iv, ты достучался до моего сердца,
- урра! В полку прибыло! Спасибо!
--
отменить подписку: ruFlash-u...@googlegroups.com
сообщение в группу: ruF...@googlegroups.com
страница группы: http://groups.google.com/group/ruFlash
правила группы: http://groups.google.com/group/ruFlash/web/rules
на facebook: http://www.facebook.com/home.php?sk=group_163903643627621
> распространять и передавать такой код дальше возможно только при наличии у
> приемника такого же софта, это как то напрягает.
- ну давай посмотрим по аналогии.
Делаешь ты документ в формате doc, отсылаешь его другому человеку, а
он тебе говорит: не могу открыть, у меня только нотепад. Ты конвертишь
в txt и отправляешь.
В этой ситуации тебя не удивляет то, что теряется форматирование и так
далее. И также тебе совершенно понятно, что если тебе пришлют
исправленный txt, то обратно его загнать в doc с твоим старым
форматированием автоматически не получится.
Впрочем, есть мысль.
К примеру, при выгоне в AS, можно отмечать сгенеренный код
комментариями и там же, в комментариях давать оригинал. При импорте в
AS, генерить из оригинала AS и сравнивать с ранее сгенеренным кодом.
Если исправлений сгенеренного кода небыло, то применяется оригинал.
Если исправления были, то информировать о них пользователя и помогать
ему загнать обратно в языковое расширение.
Может как-то так, нужно думать.
Но, как ни странно, эта мысль мне кажется несколько надуманной и
виртуальной. За ней нет реальной практики. В реальной жизни такие вещи
препятствием не являются.
Ну и вполне возможно, сделать урезанную версию редактора - вьювер
кода. По аналогии с системой PDF - смотреть можно, править нельзя.
> И вот тут как раз и затык. То что редактор сам генерирует и твои слова о том
> что автогенеренный код надежнее вызываеют в моем мозгу отторжение.
- а что не так?
> Объясните народу что за революцию вы вершите, дайте им хороший и удобный
> продукт, и благая весть сама разнесется по всему миру
- работаем, даём, объясняем.
Но хорошие продукты возникают только во взаимодействии с его
потребителями. И не по мановению волшебной палочки. Это процесс, в
который я прошу вас подключиться.
> Даже тот же Джон Лингвист не раскрыл особо ничего о редакторе, наоборот,
> обычное видео вполне обычного редактора, и такая подача тоже не особо
> способствует его продвижению.
- Джон будет делать порядка 20 небольших роликов и один большой и подробный.
То видео, что у него в блоге сейчас - только начало.
> то и ежу понятно что мне нужен будет метод this_addedToStageHandler (если
> его еще нет).
> Но ни один редактор не создает его автоматом [...]
- и это правильно. Например RASE создает его автоматически квикфиксом.
Редактор не вправе делать что-то без прямого указания на то
пользователя.
Почему нельзя две причины.
Первая - пользователь мог просто ошибиться в названии и вместо
готового метода будет создан новый пустой. Незаметно для пользователя
- никакой ошибки он не увидит.
Вторая - пользователь не хочет пока создавать этот метод - имеет на то право.
> И в заключение всех этих букав. Удивляет что вы создавая лучший в мире
> редактор даже не взглянули и не проанализировали достойных конкурентов.
- ну, то что я не смотрел это еще не значит, что никто из наших не смотрел.
И еще: слишком разные редакторы и принципы. Всё что есть в других
редакторах нам более-менее известно. Но не всегда приемлемо. Мы
всё-таки одни из первых делаем редактор на MPS.
> А от этого напрашиваются выводы, что вы делаете не то что удобно людям, а то
> что удобно и уже привычно вам.
- вот тут ты прав. Мы действительно делаем редактор для себя, себе
любимым. И сами же являемся его главными критиками. Поэтому нам нужны
не никому не нужные громкие фичи, а совершенно конкретные вещи, с
которыми нам же самим и придётся жить.
В отличие от разработчиков по найму, которые своим редактором никогда
в жизни не воспользуются, и поэтому относятся к нему так, лишь бы
закрыть таск.
У нас ситуация принципиально другая и поэтому и мозг работает и новые
идеи приветствуются.
Вот, например, ASDoc.
Какие фичи там можно сделать? Мы отвечаем: можно и много. Все
остальные производители редакторов даже не шевелятся в этом
направлении.
Ок, подскажу что можно сделать:
- WYSIWYG редактор (view, edit, source)
- вынос примеров в отдельный класс для нормального написания и рефакторинга
- поддержка разных человеческих языков
- автоматическое внедрение ASDoc в SWC библиотеки
У нас этого еще нет. Не приступали даже. И времени пока нет - делаем
базовую поддержку и помимо этого нужно сделать еще массу всего.
Напишите другим производителям редакторов фичареквесты, посмотрим где
это всё появится и в какой очередности. У них-то всё готово давно. Да
и команды побольше чем наша.
2 Iv: поясняю примером, вот у меня есть такой ас код (да, там
объявлена анонимная функция, но это было необходимо для опытов, для
которых он писался):
private function genFun():void{
var omc: Sprite = new Sprite();
omc.addEventListener(MouseEvent.MOUSE_DOWN, function
(e:MouseEvent):void {omc.startDrag(); });
omc.addEventListener(MouseEvent.MOUSE_UP, function
(e:MouseEvent):void {omc.stopDrag();});
omc.addEventListener(MouseEvent.MOUSE_OUT, function
(e:MouseEvent):void {omc.stopDrag();});
omc.addEventListener(MouseEvent.ROLL_OUT, function
(e:MouseEvent):void {omc.stopDrag();});
omc.x = 125;
omc.y = 125;
addChild(omc);
omc.buttonMode = true;
for (var i:int = 0 ; i < 0xffffff ; i += 100000) {
var spr: Shape = new Shape();
spr.graphics.beginFill(i);
spr.graphics.drawRect( -50, -50, 100, 100);
spr.graphics.endFill();
omc.addChild(spr);
if (omc.numChildren > 0) {
omc.getChildAt(omc.numChildren - 1).scaleX = (250 -
omc.numChildren) / 250;
omc.getChildAt(omc.numChildren - 1).scaleY = (250 -
omc.numChildren) / 250;
}
}
omc.addEventListener(Event.ENTER_FRAME, function(e:Event):void
{ for (var w:int = 0 ; w < omc.numChildren ; w++)
{ omc.getChildAt(w).rotation += (omc.numChildren - w); } });
}
допустим, я его написал в RASE. вопрос: как вся эта куча методов и
свойств, специфичных для ас3, будет из метакода компилиться во что-то,
отличное от свф?
> А не сложно будет для юзера учить еще и особенности
> метапрограммирования кроме самого АС?
- в подавляющем большинстве случаев ничего учить не надо.
Ну вот, я выше приводил пример с метаданными (или посмотри ролик на сайте)
Там всё понятно и прозрачно: строковые данные заменяются на константы
и на сам класс.
С другой стороны, языковые расширения использовать не обязательно. Их
даже нет в твоем проекте до тех пор, пока не включишь в него.
А как возникнет интерес, можно потихонечку по одному импортить,
пробовать, смотреть нравится/не нравится, смотреть какой AS код
получается из какого-нибудь выражения.
> При конвертации мета-код <-> АС тоже есть какой-то процент ошибок
- да, особенно на стадии бета тестирования.
И, если возникнет ошибка, тебе даже не придется ее править. За тебя
это сделают другие.
И тут ситуация очень похожа на использование SWC библиотек, только прозрачней.
Например, возникла ошибка из-за какого-то языкового расширения. Вы ее
нашли, отправили баг-репорт, но ждать некогда. Просто берется
сгенеренный код и заменяется им выражение, созданное языковым
расширением. После этого исправляется ошибка и на этом всё.
С SWC так не поступишь, если его исходники недоступны.
- ну давай посмотрим по аналогии.
Делаешь ты документ в формате doc, отсылаешь его другому человеку, а
он тебе говорит: не могу открыть, у меня только нотепад. Ты конвертишь
в txt и отправляешь.
В этой ситуации тебя не удивляет то, что теряется форматирование и так
далее. И также тебе совершенно понятно, что если тебе пришлют
исправленный txt, то обратно его загнать в doc с твоим старым
форматированием автоматически не получится.
Впрочем, есть мысль.
К примеру, при выгоне в AS, можно отмечать сгенеренный код
комментариями и там же, в комментариях давать оригинал. При импорте в
AS, генерить из оригинала AS и сравнивать с ранее сгенеренным кодом.
Если исправлений сгенеренного кода небыло, то применяется оригинал.
Если исправления были, то информировать о них пользователя и помогать
ему загнать обратно в языковое расширение.
Может как-то так, нужно думать.
Но, как ни странно, эта мысль мне кажется несколько надуманной и
виртуальной. За ней нет реальной практики. В реальной жизни такие вещи
препятствием не являются.
Ну и вполне возможно, сделать урезанную версию редактора - вьювер
кода. По аналогии с системой PDF - смотреть можно, править нельзя.
- а что не так?
> И вот тут как раз и затык. То что редактор сам генерирует и твои слова о том
> что автогенеренный код надежнее вызываеют в моем мозгу отторжение.
- и это правильно. Например RASE создает его автоматически квикфиксом.
Редактор не вправе делать что-то без прямого указания на то
пользователя.
Почему нельзя две причины.
Первая - пользователь мог просто ошибиться в названии и вместо
готового метода будет создан новый пустой. Незаметно для пользователя
- никакой ошибки он не увидит.
Вторая - пользователь не хочет пока создавать этот метод - имеет на то право.
- ну, то что я не смотрел это еще не значит, что никто из наших не смотрел.
И еще: слишком разные редакторы и принципы. Всё что есть в других
редакторах нам более-менее известно. Но не всегда приемлемо. Мы
всё-таки одни из первых делаем редактор на MPS.
- вот тут ты прав. Мы действительно делаем редактор для себя, себе
любимым. И сами же являемся его главными критиками. Поэтому нам нужны
не никому не нужные громкие фичи, а совершенно конкретные вещи, с
которыми нам же самим и придётся жить.
> А не сложно будет для юзера учить еще и особенности
> метапрограммирования кроме самого АС?
И еще пример приведу:
тебе нужно разделить проект на песочницы. Задача нетривиальная и тебе
придется потратить минимум неделю-две, чтобы создать некую схему, по
которой твои песочницы будут общаться друг с другом. При этом не факт,
что схема получится удобной и юзабельной.
Языковое расширение в этой ситуации тебе просто предоставляет
возможность вызывать метод из другой песочницы, делая это за тебя и
скрывая от тебя реализацию. Получаем как раз упрощение. Экономия -
минимум неделя вначале и по половине дня каждый раз, когда нужно
организовать вызов метода в другой песочнице.
С другой стороны, конечно, никто не мешает написать уродливое и
непонятное языковое расширение. Возникает вопрос контроля качества.
Полагаю, что в этих целях мы будем давать собственное заключение по
сторонним языковым расширениям.
> При конвертации мета-код <-> АС тоже есть какой-то процент ошибок
- языковые расширения как раз очень помогают избегать ошибок.
В качестве примера приведу недавно обсужденные Signals.
В Signals есть пара моментов, где во время редактирования нет контроля типов.
Языковое расширение легко может осуществлять контроль типов прямо в редакторе.
Т.е. языковые расширения - это не что-то, что делает вашу жизнь
насыщенной в смысле постоянного изучения чего-то нового. Правильное
языковое расширение как раз скрывает ненужную сложность и берет на
себя рутину.
Спасибо, будем привыкать )) главное чтобы это все не подторможивало,
например так как в ИДЕИ, а работало все быстро и самое главное все
подсказки и всплывающие окна не мешали самому написанию кода
> А где гарантия что "обычные" редакторы AS начнут поддерживать формат
> RASE на импорт или экспорт?
- ты открывал хоть раз RASE?
> Мне бы хотелось иметь возможность писАть в редакторе обычный AS код
- пиши на здоровье. Уже в сотый раз повторяю, что языковые расширения
использовать не обязательно.
> Еще как явится препятствием, с одной стороны есть RASE c другой все
> остальные с нормльным и привычным кодом, который можно тягать по любым IDE
> без танцев.
- да и тягай.
Если хочешь работать без языковых расширений, вэклам.
Даже с языковыми расширениями - пожалуйста.
И обратно тоже пожалуйста, но только с потерей языковых расширений.
>> - а что не так?
> Я указал что не так. Не всегда сгенерированный код лучше того что человек
> написал бы сам.
- это правда, не всегда.
Так и не используй, если считаешь, что сделаешь лучше, чем языковое расширение.
Просто в этом смысле поставь знак равно меюду языковыми расширениями и
swc либами и ответь, нужны ли swc либы, если ты и сам можешь в
некоторых случаях сделать лучше.
И языковые расширения не только и не столько для этого нужны.
> А FD создает его по сочетанию Ctrl+Shift+1, FDT аналогично квикфиксом, но я
> про то что это лишнее действие
> Автокомплит в FD (FDT, FB и т.д. - и даже в CS5 уже) не даст ошибиться если
> такой метод существует.
- даст. Человек не обязан юбзать автокомплит. И не юзает, если имя короткое.
> Рано или поздно ему придется его создать, поэтому куда удобнее было бы если
> б он уже был создан и дело оставалось только за реализацией тела.
- не факт что придётся создать.
Может он тут же удалит.
> Может пользователь не хочет создавать метод когда нажимает ВВОД - имеет
> право, но вы ведь навязываете.
- да, но это
> НЕ важно на чем вы его делаете, важно что он даст на фоне существующих
> инструментов
- да понятно это и так. Ты просто из одного контекста скачешь в
другой. Разговор шел о том, что ты меня упрекнул в том, что я не
работал с FD. Так вот, всё, что умеет делать FD, умеет и FDT. Но нам
их решения далеко не всегда подходят и мы находим свои.
> Тогда даже не стоит удивлятся что нет поддержки со стороны нужных вам
> пользователей ибо они хотят продукт для себя а не для вас.
- давай не будем делать вид, что ты не понимаешь о чем речь.
Я говорю о том, что в отличие от множества разработчиков, которые
делают сейчас редакторы и никогда сами их использовать не будут, в
отличие от менеджеров компаний, которые рулят этими разработчиками и
тоже в жизни никогда не прикоснутся к своему редактору, мы, как
менеджеры и как разработчики редактора, имеем огромный опыт
использования существующих редакторов, и нам работать на нашем же
редакторе.
Поэтому подход к разработке принципиально более ответственный и куда
более открытый для других разработчиков, чем в любых других
редакторах. И куда более ориентированный именно на истинные желания
разработчиков, а не на количество закрытых тасков.
> Спасибо, будем привыкать )) главное чтобы это все не подторможивало,
> например так как в ИДЕИ, а работало все быстро и самое главное все
> подсказки и всплывающие окна не мешали самому написанию кода
- если увидишь, что что-то не так, ругай в трекер, будем исправляться.
> Это неудачная аналогия, формат doc достаточно распространен и поддерживается
> большинством аналогичных редакторов на импорт и експорт
- это сейчас. А раньше можно было только в ворде.
Также и здесь: со временем появится инфраструктура.
Это лишь проблемы роста.
Рост, это я не тебе.
> А где гарантия что "обычные" редакторы AS начнут поддерживать формат
> RASE на импорт или экспорт?
- я тут подробнее остановлюсь потому, что вижу явное недопонимание.
Рассмотрим на примере работы Safe Navigation Operator (?.)
http://groovy.codehaus.org/Operators#Operators-SafeNavigationOperator(%3F.)
В RASE пишешь:
var foo:Number = mySprite?.x;
при выгоне, например, получаем AS код:
var foo:Number;
if (mySprite) {
foo = mySprite.x;
}
Который затем и компилится.
Теперь нам надо передать код кому-то на сторону, не имеющему RASE.
Передаем ему сгенеренный AS.
Там код человек правит как хочет, отдает обратно, например:
var foo:Number;
if (mySprite) {
foo = mySprite.x;
trace(foo);
}
Мы его запросто импортим обратно в RASE и единственной потерей будет
отсутствие языковых расширений.
Мы не сможем узнать в выражении
var foo:Number;
if (mySprite) {
foo = mySprite.x;
trace(foo);
}
наше языковое расширение
var foo:Number = mySprite?.x;
И ЭТО ВСЯ ПРОБЛЕМА совместимости с существующими редакторами. Других нет.
> Кстати я не обратил внимания когда была доступна тестовая версия. А
> теперь можно скачать бесплатную версию для того чтобы нормально
> разобраться с работой редактора?
- да.
> - да.
Немного оффтоп, но напомни как это сделать))
> Немного оффтоп, но напомни как это сделать))
зайти на http://realaxy.com и скачать.
- пиши на здоровье. Уже в сотый раз повторяю, что языковые расширения
использовать не обязательно.
> А FD создает его по сочетанию Ctrl+Shift+1, FDT аналогично квикфиксом, но я
> про то что это лишнее действие
> Автокомплит в FD (FDT, FB и т.д. - и даже в CS5 уже) не даст ошибиться если- даст. Человек не обязан юбзать автокомплит. И не юзает, если имя короткое.
> такой метод существует.
> Рано или поздно ему придется его создать, поэтому куда удобнее было бы если- не факт что придётся создать.
> б он уже был создан и дело оставалось только за реализацией тела.
Может он тут же удалит.
> Может пользователь не хочет создавать метод когда нажимает ВВОД - имеет- да, но это
> право, но вы ведь навязываете.
Я говорю о том, что в отличие от множества разработчиков, которые
делают сейчас редакторы и никогда сами их использовать не будут, в
отличие от менеджеров компаний, которые рулят этими разработчиками и
тоже в жизни никогда не прикоснутся к своему редактору, мы, как
менеджеры и как разработчики редактора, имеем огромный опыт
использования существующих редакторов, и нам работать на нашем же
редакторе.
Поэтому подход к разработке принципиально более ответственный и куда
более открытый для других разработчиков, чем в любых других
редакторах. И куда более ориентированный именно на истинные желания
разработчиков, а не на количество закрытых тасков.