![]() |
ActionScript - полная лажа" или "Как не надо делать интерпретаторы"
итак, набралось у меня такОго про это АС :eek:
буду рад выслушать все за и против по этому вопросу, и высказать свои недовольства (их-то и набралось на целый топик). :o |
ты сначала выскажи свои против :)
а потом все остальные выскажут свои за :) |
ок начнем с простого:
массивы Код:
a[1]="xxx";а еще это значит - тормоза! :p добавим сюда объекты: Код:
a.shit="xxx";а еще это также значит - тормоза! :D если вы мне выскажете агрументы ЗА такую лажу, то я вам еще на че нить ткну ;) ЗЫ. токо не нада говорить - это так по спецификации нада :D |
да, кстати о "гибкости" кода тоже мозги не пудрить :p
|
ну дак что? все безумно любят ЭкшнСкрипт, просто торчат от него, а в защиту сказать нечего?
никаких положительных аргументов? нечем опровергнуть мои? :D вот это действительно лол :D :D :D |
какая альтернатива???? :confused:
|
Ситуация:
Есть переменная (напрмер _root.bla) в которую помещаются имя мувика который надо играть (допустим в руте), и как более правильно можно реализовать обращение к этому мувика, если обычно можно обратиться _root[_root.bla].gotoAndPlay(some_farme); ??? естественно предполагается что играть данный мувик надо не сразу как определилось его имя а после некоторого события. (eval в качестве удобной отмазки не катит :D ) |
Ндааааааааааааааа, затеял ты топик!
Сначала выскажу СВОЕ мнение: я б не сказал что безумно люблю АС, но мне нравится его: - относительная простота - гибкость кода - интуитивность - да, и еще он мне "помогает" деньги зарабатывать! Теперь о главном, но по порядку. Я так понимаю, что тебе хотелось чтоб АС был похож скажем на С или Delphi (к чему тогда это: это значит, что ключи массива - строки, а еще это значит - тормоза ). Наверное ты знаешь ;) , что по большому счету языки программирования делятся на компилируемые(С, Delphi) и не компилируемые(JavaScript, VBScript, AS), тоесть скриптовые. НУ что, это уже о чем то говорит? НЕТ! тогда идем дальше! Наверное ты знаешь ;) , что АС по сути своей является ребенком ECMAScript, и естественно похож на JavaScript. Намек секешь? ... немного отвлекусь: Цитата:
а значит что в АС есть автоматическое преобразование типа данных. Отсюда вывод - в АС(и иже с ним) нет объявления типа данных, более того тип данных может меняться динамически! В отличии от, скажем С, где тип переменной объявляется зараннее, и остается неизменным! ... вернемся! Логичнее тогда спросить: почему JavaScript сделали таким, какой он есть? Ведь в нем, по определению, нет объявления типа переменных, а именно это и является ТВОИМ камнем преткновения! ЗЫ: Я думаю, ты не ругаешься из-за того, что в кастрюле не жарят мясо, а в сковороде - не варят суп! :p :p :p |
2infinity
чушь. те примеры, которые ты привел - никоим образом не иллюстрируют "лажу"... они иллюстрируют лишь предопределенные особенности... первое - это автоматическое преобразование типов... строка приводится к числу в некоторых операциях, если это возможно... if ("1">0) { trace (" все идет по плану :) "); } сработает, хотя мы сравниваем строку с числом... a = "1", a++ trace(a); тоже сработает нормально - из-за автоматического приведения типов. второе: ты объявил свойство объекта, а потом его протрейсил, использую адресацию ассоциативного массива... ЧТО тебя удивляет, если не секрет ? и главный вопрос.... где тормоза ? :)) аа ? :) можешь объяснить что ты имеешь в виду :) (в байткод загляни, к примеру... чтоб проиллюстрировать эти самые тормоза :P) у экшнскрипта туева хуча багов и несуразностей... ты пока не привел ни одной :)) |
УРА! как я и ожидал на мои резкие слова наконец то откликнулся народ! зацепило поклонников :p
теперь по теме. ладно, массивы опустим, это вопрос спорный. 2JeeP я же просил, не бросаться в меня спецификацией ECMA-262 :( а теперь объясню что имел в виду, когда говорил насчет строк. то, что свойство объекта ищется по его названию - это БОЛЬШОЙ минус в скорости. если б свойство было скажем просто указателем, или хотябы числовым индексом - все работало бы гораздо быстрее (кто не понял, объясню - сравнение чисел НАМНОГО быстрее чем сравнение строк) для достижения максимальной производительности - в байткоде НЕ должно быть строк, только числовые индексы. загляните в любую свф-ку - там КУЧА мусора типа имен переменных. поиск по строке не имеет значения в маленьких скриптах, но это фатально, когда есть куча объектов с кучей свойств, к каждому из которых можно обратится лишь по названию. и С++ и Дельфи здесь совсем не причем. тут имеется ввиду не тип данных, а способ обращения к переменной. переменная может (и должна в данном случае) не иметь фиксированного типа, но она не обязанна иметь строковой идентификатор в процессе выполнения ЗЫ. у меня юбилей - сотый мессадж ;) |
| Часовой пояс GMT +4, время: 03:33. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.