![]() |
Кому чего не хватает в ActionScript
Просто вот стало интересно кому чего не хватает в ActionScript.
А может кто узнает, что то, чего ему не хватало, уже есть, и давно... :) Мне вот хотелось бы иметь возможность удалять ненужный функционал только потому что я не собираюсь его использовать в данном абстрактном классе в данном проекте. Думаю, всем не хватает скорости. ... |
Причём здесь скорость и язык?
Скорости может не хватать в реализации AVM т.е. в плеере. Цитата:
Мне не хватает: - перегрузки операторов - сигнатурирования функций - перегрузки функций - энумераторов Ну много ещё чего. С ходу не вспомнишь. Я говорю про конструкции именно языка а не про технологию вообще. |
Все то, что описал Котяра.
|
многопоточности
|
политкорректности
|
Цитата:
Пойду читать про ант. Можно кстати ссылочки на примеры его использования? |
А вот кстати относительно скорости. АС - это компилятор или интерпретатор?
Просто компиленный код обычно не декомпилится в ЯВУ. А тут даже названия функций остаются и комменты. |
Код AS3:
|
Цитата:
К тому же как я понял, данный инструмент предназначен на этапе компиляции. Т.е. это только внешняя видимость получается... Добавлено через 31 секунду flash33, не доросли наверное :) |
Цитата:
|
Перегрузка операторов имо нафиг. В коллекциях Proxy хватает заглаза.
Вот перегружать методы да, хочется. И приведите пожалуйста примеры, когда enum`ы прямо действительно нужны. Я действительно не встречал в своей практике случая, когда их не хватало бы. Кстати, неплохо было бы ещё множественное наследование. Устаю реализовывать IEventDispatcher =) Ну и темплейты, таа. |
Цитата:
|
Не хватает реализации четвертой версии ECMAScript. Там есть и структуры typedef и record и перегрузка и т.д., просто чудо. У Мука удобный обзор нововведений.
http://moock.org/lectures/newInECMAScript4/ К сожалению за 2008 год, за 3 года никуда так и не ушли. |
В смысле возможностей - добавлю - нормальных генериков не хватает. А в целом, не хватает простоты :) Вроде язык не такой древний, и не менялся так много, а есть куча балласта, который портит картину, тот же Number и Boolean, которые не понятно почему так называются, undefined никому не нужный, странная на уровне дизайна и хреновая на уровне имплементации идея динамического типа. Ненужный либо недоделаный функционал в виде функций без объекта активации (либо доделать, либо выбросить). E4X, не смотря на всю мою к нему любовь, по большому счету для 90% пользователей загадка и источник всевозможных проблем производительности...
|
А можно что-нибудь лишнее из языка убрать? Слишком много, мозги плавятся!
|
разрешаю вам не ставить ;
|
А e4x чем не угодил? Слава богу, что есть.
А "проблемы с производительностью" у 90% пользователей будут и без него. |
Я не понял только сигнатурирования функций че это ?
Я хочу несколько консрукторов, ну может это и относится к перегрзки) |
Вот передали Вы метод как параметр в другой метод. Например, в addEventListener — 2 аргумент.
Кто контролирует, что у метода-обработчика первый аргумент будет, да ещё и типа Event/его наследника? Да никто, и будет вываливаться RTE. А так об этом сообщали бы ещё на стадии компиляции. |
А почему:
>Boolean, не понятно почему так называются? Вроде булевы значения они и в Африке булевы...? |
Psycho Tiger:
Факт, что проблемы существуют, никак не является поводом к их неустранинию :) Sintesis: Потому что он с прописной, а другие типы - со строчной, и повода для этого никто не давал, просто "так получилось". |
Цитата:
те же вектора/матрицы/кватернионы складывать. |
В Realaxy уже есть Enums, Generics, Assertations.
И будет в ближайший месяц - Перегрузка операторов. Ranges - [1..100] Запросы к коллекциями myCollection.where{it-> it.witdh > 12}); Conveyor language - эмуляция исполнения кода в виде очередей (можно сказать потоков) |
wvxvw, а класс - это тип? Может с большой лучше все сделать?
|
Цитата:
Например, если добавить слушаетль собития MouseEvent, а в эвент-диспетчер затипизирован на Event - то он не даст этого сделать - придется приводить типы внутри слушателя (зато явно хоть) Всплывающие события вообще не понятно как типизировать. Но если затипизировать слушатели как function(event:*):*, а все остальные колбеки позволить типизировать жёстко - будет намного лучше. Цитата:
Звучит то все круто. |
Честно - есть и такой и другой подходы, и мне оба вполне приемлимы, просто, когда их смешивают, то, естественным образом получается путаница :)
Тип, это в чем-то аналогично стракту, т.е. тип не должен обладать свойствами объекта на манер уникального id (что не позволило бы срванивать два объекта одного типа по значению). |
Цитата:
Я бы сделал с маленькой простые типы: int, uint, float, boolean.. String непонятно куда.. наверное всё же с большой. |
Это с чего String стал непростым типом?
|
Цитата:
|
Цитата:
Уже MXML мало -ало поддерживается. Ты чего? Уже прошло с первой беты 10 месяцев. Больше тысячи багов/тасков закрыто. |
Цитата:
Цитата:
|
Имелось в виду, что тип - это не класс, потому что класс должен использоваться для создания объектов, а объект по определению должен быть уникален (в то время как числа, строки и булианы не уникальны, их может быть сколько угодно одинаковых).
Строку можно было бы рассматривать как коллекцию char, но в рамках AS3 это сильно надумано :) Поэтому, если чесно, я бы ее к простым причислял. С XML есть неопределенность, т.как это сложный тип, и объект по практичестки всем своим проявлениям кроме того, что в некоторых ситуациях его можно сравнивать по значению... (что сделано в угоду E4X). E4X - да, проблема... этот язык сильно отличается от AS3, но визуально в редакторе они никак не разграничены, что заставляет, особенно начинающих думать, что вещи, которые записываются и там и там одинаково, одинаково же и работают... а тут оппанки... :) т.е. например, в случае: xml.node имеем цикл с генерацией нового объекта, а object.property - просто чтение из известного участка памяти, если это не геттер. Опять же, существование геттера можно сразу же определить, и соответственно отреагировать, а что происходить в xml - покрыто мраком. |
По мне e4x встроен в язык и является его конструкцией; То что начинающие думают что вещи одинаково записываются и одинаково работают - проблемы скорее начинающих. А визуальный разграничитель вполне может сделать IDE.
Короче, моё имо что e4x совсем не лишний. Если его убрать - найдутся умельцы, которые напишут либы-пародии на него, которые всё равно будут пользовать весь мир. |
Цитата:
Скорость работы, особенно компиляции и создания новых классов, конечно не айс, но уже можно пощупать что к чему. Вобщем, попробую найти применение этой штуке. |
Цитата:
|
Не думал что для меня эта тема окажется такой познавательной. Возможно потому, что АС - 1й серьезный язык программирования - остальное - так, баловство больше.
Спасибо всем участникам. |
- Traits (Scala) или Modules (Ruby), которые можно было бы присоединять к классам, что бы не реализовывать один и тот же интерфейс 10 раз.
- Overloading для функций - Хочу, что бы операторы были - функциями, и соответственно их можно было бы создавать или override'ить. - Хочу иметь возможность дополнять или изменять логику базовых классов - prototype AS1/JavaScript или через механизм Helper'ов, как в Ruby и Scala, ну или как в Ruby просто открыть класс и изменить. - Curry для функций. - Signed Function. - Оптимизацию для рекурсий - Symbols и/или Atoms - Более компактный формат определения анонимных фунций, например просто как блок кода: Код AS3:
- И самое главное - Pattern Matching |
Nirth, расскажите пожалуйста подробнее (если не затруднит) о:
- Curry для функций. - Signed Function. - Оптимизацию для рекурсий - Tuples ( Кортежи ). - И самое главное - Pattern Matching |
Signed Function - это сигнатура функции, то есть, в случае например с
Код AS3:
Код AS3:
Оптимизация для рекурсий, да и вообще для функций, что бы плеер умел делать правильную редукцию, ну и вообще хотелось бы, что бы он научился работать с многоядерными процессорами, и расфасовывать функции, как надо. Про остальные вещи которые я написал - можно спросить гугл. |
Новый год прошёл. Дед Мороз в отпуске.
|
| Часовой пояс GMT +4, время: 03:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.