Задумался. Сущности "как бы" близкие (работает в браузере, нужна установка плагина, позволяет делать "почти все что угодно" и т.п.). При этом апплеты уже почти в прошлом, а Flash — всячески поднимается. (вплоть до провокативных статей вроде Adobe takes on Java and .NET).
Вопрос в том, какие факторы создали именно такой расклад? У меня есть множество предположений (лучший внешний вид флеша, изначальная направленность его на дизайнеров, вирусное распространение флеш-мультиков, война Sun vs. MS за JVM'ы, ActionScript проще или эффективнее Java, флеш быстрее и компактнее и т.п. — или комбинация всех факторов, удачи и случайности).
Но пока у меня недостаточно аргументов за какое-либо из этих теорий. Надеюсь, что у здесьприсутствующих оные аргументы найдутся.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>Вопрос в том, какие факторы создали именно такой расклад? У меня есть множество предположений (лучший внешний вид флеша, изначальная направленность его на дизайнеров, вирусное распространение флеш-мультиков, война Sun vs. MS за JVM'ы, ActionScript проще или эффективнее Java, флеш быстрее и компактнее и т.п. — или комбинация всех факторов, удачи и случайности).
Простой и понятный для непрограммиста язык по моему тоже достаточно важный фактор.
Здравствуйте, FR, Вы писали:
ЗХ>>Вопрос в том, какие факторы создали именно такой расклад? У меня есть множество предположений (лучший внешний вид флеша, изначальная направленность его на дизайнеров, вирусное распространение флеш-мультиков, война Sun vs. MS за JVM'ы, ActionScript проще или эффективнее Java, флеш быстрее и компактнее и т.п. — или комбинация всех факторов, удачи и случайности).
FR>Простой и понятный для непрограммиста язык по моему тоже достаточно важный фактор.
Я упомянул. Вопрос в том, главный ли это фактор? (я правда уже увидел, что "In 1999, Macromedia released Flash 4 and also achieved 100 million installations of the Flash Player, thanks in part to its inclusion with Microsoft Internet Explorer 5", и уже в 2000 "The install-base of the Flash Player reached 92% of all Internet users.") — но природы этого явления пока не понял.
ЗХ>Но пока у меня недостаточно аргументов за какое-либо из этих теорий. Надеюсь, что у здесьприсутствующих оные аргументы найдутся.
Может именно легкость в деплойменте? Тот самый write once, deploy everywhere? С очень небольшим количеством ограничений, тем более, что 9 версию под Линукс наконец-то выпустили
Флешки изначально ориентированы на "не программистов". Бери и рисуй. Если что, можно и на не сложном ЭкшнСкрипте что-то накатать... А жаба — это не шухры-мухры
Тут не каждый справится, или просто не каждый захочет с ней разбираться. А как вы представляете мультфильмы на жабе? Технически, конечно, реализуемо, но какой дизигнер будет этим заниматься?
Flash развивался так: очень простые зато красивые мультики -> чуть более сложные красивые мультики -> интерактивные красивые мультики -> интерактивные красивые клиентские приложения. То есть, Flash изначально замонополизировал весьма востребованную нишу — красивую легкую (и для дизайнеров, и для загрузки) мультипликацию, в этой нише у него конкурентов не было, нет и в ближайшем будущем не будет. А остальное можно рассматривать как результат естественной эволюции, направляемой пожеланиями девелоперов.
Java Applets развивались так (насколько я помню, за точность не ручаюсь): встроенная поддержка браузерами AWT -> и всё. Для того, чтобы задействовать мощь Java, хотя бы тот же Swing, нужно было дополнительно вручную сливать и устанавливать баааальшой JRE. (Здесь я говорю про случай "обычного сайта", который должен открываться "везде". Случаи каких-то внутрикорпоративных или специальных сайтов, требующих предустановки специального софта, не рассматриваются.) Возможно, разработчики Java в свое время просто не прельстились этой нишей — имхо основная ниша Java весьма далека от тонких веб-клиентов.
Килобайты и прочий геморрой юзеров.
Про размер JRE я уже сказал, как и про необходимость скачивать его ручками. Это не сравнить с крохотным Flash Player Plugin, заботливо заточенным под автоматическую загрузку во всех браузерах.
Про красоту и жертвы, а также про стандартизацию.
Даже если бы у всех юзеров в мире стояла бы на машине JRE да еще десяток графических Java-библиотек впридачу, вряд ли бы разработчики Java-апплетов смогли бы рисовать и распространять картинки и анимашки (векторные, кстати, легкие!) с той же легкостью, с какой это позволяет делать Flash. Причем цена этой легкости для разработчика практически равна нулю: редактор, скажем так, векторных ресурсов (каждый из которых имеет еще и собственный timeline) — это считай совершенно независимая подсистема. Единственное, с чем лично я долго путался — это со временем жизни определенных на timeline объектов (само по себе оно просто; сложно привыкнуть) и с порядком выполнения внедренных на timeline скриптов.
А графические Java-библиотеки каждый апплет вынужден будет тащить на себе сам. Ибо у разных авторов апплетов они могут оказаться разными. В то время как Flash Player принадлежит монополисту, и в данном случае это — колоссальное преимущество. Все знают, под какую конкретную "графическую платформу" пишут. Вообще, Flash Player — это замечательный пример идеального баланса между размером плагина и его функциональностью.
Про языки: Java vs ActionScript.
Вот тут я, честно говоря, не понимаю. Простая функциональность (необходимая большинству Flash-игрушек, например), на Flash8 / AS2 реализуется просто (простенький код вставляется в фреймы, безо всяких там классов-млассов). Опять же, особая квалификация от программиста не требуется. Но когда дело доходит до разработки на Flash серьезного веб-приложения, начинается секс. Жестокий секс. Вся объектная модель в Flash8, а также язык ActionScript2 и все остальное, что есть прекрасного в Flash Player8 / AVM1, — это дикое, нечеловеческое издевательство над программистом. Я ненавижу эту дрянь всеми фибрами души. И существование сайтов, целиком написанных на Flash, я не могу объяснить ничем, кроме как безудержными, как понос, желанием разработчиков сделать действительно красивую вещь в презентационном стиле и несмотря ни на что — в том числе не смотря на остутствие альтернатив Flash Player'у, широко распространенных среди обычных юзеров.
Недавно появился ActionScript 3 и Flash Player 9 / AVM2. А заодно кроссплатформенная среда разработки Flex — плагин для Eclipse (типа ура). В целом и язык, и иерархия классов стали гораааааздо лучше. Ребята в Макромедии наконец приняли новую генеральную линию партии, нацелились на полноценные приложения, и даже разработку компонентов для Flash9 заказали каким-то сторонним профи (доморощенные компоненты Flash8 Pro были далеки от совершенства). Сам я еще не успел как следует добраться до Flash9 / Flex, чтобы проверить AS3 на наличие тараканов, которые меня бесят в AS2. В любом случае, AS3 по сложности приближается к Java. Вот, статическую типизацию ввели, наконец-то. Разумеется, в AS3 нет ни шаблонов, ни библиотек контейнеров — нельзя забывать, что Flash-приложения должны быть прежде всего легкими. Flash Player никогда не вырастет до объемов JRE. Всё, что нужно конкретному Flash-приложению, будет линковаться в само это приложение (или в подгружаемые swf-библиотеки, если от соответствующего таракана избавились).
Здравствуйте, Дм.Григорьев, Вы писали:
ДГ>Причин несколько, и они взаимосвязаны.
ДГ>Историческая.
[зверьковыгрызено]
ДГ>Килобайты и прочий геморрой юзеров.
[зверьковыгрызено]
ДГ>Про красоту и жертвы, а также про стандартизацию.
[зверьковыгрызено]
Спасибо огромное, оч. информативно!
Хотелось бы подробностей по одному моменту.
ДГ>Про языки: Java vs ActionScript.
ДГ>...Вся объектная модель в Flash8, а также язык ActionScript2 и все остальное, что есть прекрасного в Flash Player8 / AVM1, — это дикое, нечеловеческое издевательство над программистом. Я ненавижу эту дрянь всеми фибрами души.
...
Вот это интересно, если можно, в больших подробностях. И вообще, и в частности по языку (который, насколько мне известно, диалект ECMAScript, каковой несколько нетрадиционен, но весьма крут). Спасибо!
Здравствуйте, Mamut, Вы писали:
ЗХ>>Но пока у меня недостаточно аргументов за какое-либо из этих теорий. Надеюсь, что у здесьприсутствующих оные аргументы найдутся.
M>Может именно легкость в деплойменте? Тот самый write once, deploy everywhere? С очень небольшим количеством ограничений, тем более, что 9 версию под Линукс наконец-то выпустили
Ай, спасибо, я и проглядел
WARNING: expression "to_be || !to_be" is always true
Здравствуйте, Зверёк Харьковский, Вы писали:
ДГ>>...Вся объектная модель в Flash8, а также язык ActionScript2 и все остальное, что есть прекрасного в Flash Player8 / AVM1, — это дикое, нечеловеческое издевательство над программистом. Я ненавижу эту дрянь всеми фибрами души.
ЗХ>Вот это интересно, если можно, в больших подробностях. И вообще, и в частности по языку (который, насколько мне известно, диалект ECMAScript, каковой несколько нетрадиционен, но весьма крут). Спасибо!
Да, ECMAScript. Я пожалуй перечислю всех тараканов Flash8 / AS2, какие смогу сходу вспомнить.
Типизация.
Про статическую vs динамическую типизацию тут уже флеймили. В AS2 типизация динамическая; опциональные объявления типов — не более чем хинты программисту и компилятору. Где заметит расхождения типов, компилятор будет выдавать сообщения об ошибке, но в результирующий swf никакой информации о типах не помещается.
Кроме того, как и в JavaScript, к любому объекту можно прицепить любое свойство:
anyobject.myproperty="hello";
Однако, если anyobject — экземпляр какого-то класса вне Flash Player API, то компилятор ругнется — в классе нет такого свойства. Обходится так:
Object(anyobject).myproperty="hello";
Или же, если мы отнаследовались от MovieClip, то можно и так:
MovieClip(anyobject).myproperty="hello";
Особенно бредово это выглядит, когда назначаешь класс библиотечному клипу, у которого есть поименованные дочки. Класс должен содержать объявления (но без инициализации) всех именованных дочек:
class hello.world.MyClip extends MovieClip {
var btnOK:mx.controls.Button;
var btnCancel:mx.controls.Button;
...
}
Соответственно, дочки, добавляемые в рантайме, могут быть вызваны либо через MovieClip(this).newchild, либо через this['newchild'].
В AS3, чтобы разрешить добавление произвольных свойств, класс должен быть объявлен как dynamic.
public / private, getter / setter
В AS2, private == protected. Кроме того, прогнав однажды декомпилятор на собственном swf-файле, обнаружил, что эти public / private — не более чем хинты для компилятора, как и типы переменных. Кроме того, выяснилось что function get x() скомпилировалась в __get__x(). Теперь боюсь пользоваться столь любимыми мною подчеркиваниями.
В AS3, ввели нормальный protected, final, необходимость явно указывать override для замещающих функций, и еще кучу всяких модификаторов. Со всеми не разобрался, но уровнем диагностики компилятора Flex пока доволен.
Method closures.
Имеется тип Function. Однако в AS2, указатель на метод не несет в себе указателя на его объект. Приходится изголяться через automatic vars примерно так:
class ... {
function ... {
var _this = this;
something.addEventListener("click", function(evt) { _this.onSomethingClicked(evt); });
}
}
В Flash8 для этих целей был какой-то враппер, который принимал два аргумента — object pointer + method pointer, но я привык юзать _this.
В AS3 пофиксили.
Иерархия визуальных классов.
Теоретически, MovieClip — это базовый класс для всех визуальных объектов. Практически — есть еще один класс, который сам по себе: TextField. Они создаются разными методами (createEmptyMovieClip() / attachMovie() vs createTextField()), уничтожаются тоже разными методами (removeMovieClip() vs removeTextField()), у них разные свойства и методы (частично пересекающиеся), они по-разному реагируют на установку свойств _width, _height (MovieClip масштабируется, TextField нет). Кроме того, TextField некорректно обрабатывает поворот и наложение маски (а чтобы обрабатывал, нужно внедрять шрифты в swf-файл как вектор).
В AS3 исправлена иерархия классов, про повороты и маски не знаю, пока молюсь.
Позиционирование объектов.
В AS2, MovieClip имеет следующие свойства: _x, _y, _width, _height. Они четко отражают реальные границы клипа, включая области с alpha=0. Установка _x, _y перемещает клип, установка _width, _height — масштабирует (синхронно меняются _xscale & _yscale). Как ведет себя пустой клип, до сих пор не могу запомнить; кажется установка _x, _y меняет начало координат клипа в любом случае, а вот установка _width, _height эффекта не имеет. Когда мы рисуем на поверхности клипа (или добавляем дочек), _width & _height меняются автоматически, отражая новые реальные границы клипа.
Соответственно, в таких условиях ни о каком layout management речи быть не может. Поэтому в компонентной модели, класс UIObject определяет свои свойства x, y, width, height, где x,y отражаются на _x,_y, а width,height используются для layout (т.е. для рисования и установки нужных координат дочерних клипов).
В AS3 все так же, только свойства переименовали (MovieClip._x -> DisplayObject.x, UIObject._x -> super.x).
Инициализация объектов.
Вот до сих пор не понимаю, как там, что и в каком порядке происходит. Пример последней конфузии — здесь. Уяснил для себя только одно: до тех пор, пока вызван onLoad() (или, для дизайнеров, первый onEnterFrame), лучше вообще ничего не трогать. Но в AS3 то, на что заменили onLoad(), вызывается, похоже, только для корневых объектов swf-файлов. К счастью, а то на каждую фигню вешать addEventListener — никакого терпения не хватит.
Скины.
Казалось бы, что может быть проще и естественнее — поместить все ресурсы (assets) для компонентов в отдельный swf, наплодить таких swf несколько штук (по количеству скинов), и подгружать нужный скин по запросу? Ан нет, мало того, что экземпляр библиотечного ресурса клипа skin.swf нельзя создать вне этого клипа, так еще и через AS туда не всегда достучишься. Иными словами, я не могу подгрузить ресурсный skin.swf куда-нибудь в скрытую область, и обращаться к его библиотеке, создавая экземпляры клипов в рабочей области, принадлежащей основному swf. А потому выхода три:
1. Стандартные компоненты Flash8 Pro хранят скины внутри себя; чтобы поменять скин, нужно создать новую компоненту-подкласс. В результате компонента тащит на себе два скина, один из которых не используется. И ни о какой динамической замене скинов, и тем более о предоставлении пользователям сайта возможности ваять собственные скины, речь не идет. Более уродского решения в жизни не видел.
2. Нормальные люди (такие как разработчик Flash Html Editor) просто хранят скин каждой кнопки (Bold, Italic, Align Left, Align Right, Align Center), скин каждой фигни в отдельном файле. Все бы ничего, но в таком количестве файлов управляться глупо и неприятно, особенно при наличии нормально структурированных библиотек в swf. Да и при загрузке HTTP-заголовки сжирают больше трафика, чем сами эти крохотные клипы.
3. С полгода назад я ради эксперимента сделал следующее: skin.swf грузится в корень родительского клипа и занимает всю область; все контролы создаются внутри skin.swf, но управляется это все кодом из внешнего swf. При этом иерархия клипов (скин-зависимых, создаваемых из библиотеки skin.swf) отслеживается параллельной иерархией объектов:
class MCButton extends MCBase {
private var delegate:MovieClip;
function set _x(value) {
delegate._x = value;
}
}
У меня было посложнее, я там прикручивал хитрый layout manager и метрики для скинов, но суть именно в этом — параллельные иерархии с делегированием (не помню как соответствующий паттерн GoF называется). Но от идеи пришлось отказаться — ни тебе здесь визуального дизайна в IDE, столь любимого моим напарником, ни сторонние компоненты просто так не впишешь.
В AS3 можно динамически менять родителя объекта. Надеюсь, они догадались разрешить переход через границу подгруженных swf. Иначе...
И кстати, еще один косяк — это отвратительная документация. Все вот эти узкие моменты — с инициализацией, областью видимости, — не описаны вообще. Многие из проблем, с которыми я бился, — от банального непонимания того, как эта дрянь всё-таки работает. Но где ж узнать, как она работает? У меня каждый новый проект начинается с экспериментов: а вот если я, тварь, тебе вот так вот подсуну, ты схаваешь?...
Динамическое прототипирование, кстати, тоже. Вешаю на XMLNode.prototype дополнительные функции (подмножество того подмножества DOM, которое они посчитали не нужным реализовывать). В основном swf-файле работает, в прекомпилированных компонентах — нет. Мне что теперь, эти дополнительные функции в каждую компоненту компилировать?!
В Flex helps увидел парочку глав, где кажется что-то описано. Глядишь, поможет.
Здравствуйте, AndreiF, Вы писали:
FR>>Простой и понятный для непрограммиста язык по моему тоже достаточно важный фактор.
AF>Из знакомых флэшеров ни один его не хвалит, все только ругают
У меня тоже
Да и тут тоже уже хорошо расхвалили
Но мои знакомые флешеры скорее все-таки программисты. Я же имел в виду что начать писать на нем очень легко и для непрограммиста, то есть порог вхождения очень низкий, к тому же очень многое делается и совсем без программирования.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>Вопрос в том, какие факторы создали именно такой расклад? У меня есть множество предположений (лучший внешний вид флеша, изначальная направленность его на дизайнеров, вирусное распространение флеш-мультиков, война Sun vs. MS за JVM'ы, ActionScript проще или эффективнее Java, флеш быстрее и компактнее и т.п. — или комбинация всех факторов, удачи и случайности).
Интересно то что победоносное шевтсиве Flash может не ограничится вебом. Сейчас у нас есть 2 проекта. На одном заказчик запросил заменить просмотр Flash в браузере на работу с Flash как со standalone клиентом к серверу.
Второй проект ушел ещё дальше. Flash (точнее Flex) будет использован как UI для Java приложения. И Java будет не сервером а как бы backing часть десктоп приолжения. Чем это все закончится пока не знаю. Но затея интересная. И я могу точно сказать ребята на Flex клепают UI намного быстрее чем мы бы сделали то же на Java. Но кроме этого вид у UI просто отменный.
Здравствуйте, Blazkowicz, Вы писали:
B>Интересно то что победоносное шевтсиве Flash может не ограничится вебом. Сейчас у нас есть 2 проекта. На одном заказчик запросил заменить просмотр Flash в браузере на работу с Flash как со standalone клиентом к серверу. B>Второй проект ушел ещё дальше. Flash (точнее Flex) будет использован как UI для Java приложения. И Java будет не сервером а как бы backing часть десктоп приолжения. Чем это все закончится пока не знаю. Но затея интересная. И я могу точно сказать ребята на Flex клепают UI намного быстрее чем мы бы сделали то же на Java. Но кроме этого вид у UI просто отменный.
А каким образом флеш в java-приложения встраивается? Можно чуть поподробней? Или линки, там...
Здравствуйте, Курилка, Вы писали:
К>А каким образом флеш в java-приложения встраивается? Можно чуть поподробней? Или линки, там...
Пока никаким. Они работают как 2 приложения общаются через что они там обычно общаются. XML Socket может SOAP по HTTP. Деталей я пока не знаю, проект только начинается. Но сапсибо за идею, может действительно их можно сдружить ещё ближе.
То на чем пока остановились Flash будет запускатся внутри Zinc. Вообще народ из Flash-команды настоятельно просил меня перестать называть Flex Flash-ом.
Здравствуйте, Blazkowicz, Вы писали:
B>То на чем пока остановились Flash будет запускатся внутри Zinc. Вообще народ из Flash-команды настоятельно просил меня перестать называть Flex Flash-ом.
А не можешь для чайника объяснить в чём разница? Я вот путаюсь...
Здравствуйте, Курилка, Вы писали:
B>>То на чем пока остановились Flash будет запускатся внутри Zinc. Вообще народ из Flash-команды настоятельно просил меня перестать называть Flex Flash-ом.
К>А не можешь для чайника объяснить в чём рзница? Я вот путаюсь...
Дык я сам ещё чайник. Как мне объяснили это все равно что равнять Java и JS. Я сталкивался с Flex больше года назад и это раньше была какая-то мостроузная фигня стоящая $12К на процессор и реализующая Flash UI на базе XML.
Сейчас там вроде куча каких-то навароченых скриптов до которым флэшу далеко. Хотя как по мне тормозит точно так же.
Здравствуйте, AndreiF, Вы писали:
FR>>Я же имел в виду что начать писать на нем очень легко и для непрограммиста, то есть порог вхождения очень низкий AF>Интересно, за счет чего?
Да потому что это рисовалка обычная. Помесь простенького графического редактора и простенького редактора фильмов. А кусочки кода вставляются как контекстно-зависимые хинты в фреймы (зато потом искать и читать эти куски кода в чужих исходниках — одно удовольствие ).
Вот вспомнилось: нарвался когда-то на 3D-игрушки (там танки какие-то были), которые крутились под "Shockwave Player". Это как и что?
Кстати, в Flash меня сильно смущает тот факт, что они до сих пор совершенно не используют акселлерацию. Мультик, развернутый на весь экран, сжирает все процессорное время (при условии, что мелькает-перерисовывается вся поверхность, а не отдельные небольшие области).
Здравствуйте, AndreiF, Вы писали:
AF>Здравствуйте, FR, Вы писали:
FR>>Я же имел в виду что начать писать на нем очень легко и для непрограммиста, то есть порог вхождения очень низкий
AF>Интересно, за счет чего?
Не знаю, но наблюдал тот же эффект как у бейсика и питона, человек совсем не программист начинает с мелких правок скрипта, а через месяц другой уже пишет пусть и очень корявые но свои программки.
Здравствуйте, Дм.Григорьев, Вы писали:
ДГ>Вот вспомнилось: нарвался когда-то на 3D-игрушки (там танки какие-то были), которые крутились под "Shockwave Player". Это как и что?
Это еще почему не для меня?
AVK>А ты что, сомневаешься в маркетологических способностях МС?
Ну я ж не знал, что это опять дядя Билл весь мир к рукам пытать пытается. Тогда уж не удивлюсь, если в конце концов повторится история эволюции с учетом чужих ошибок в духе Java -> C#.
Здравствуйте, Дм.Григорьев, Вы писали:
AVK>>Не для тебя ссылка — http://msdn2.microsoft.com/en-us/asp.net/bb187358.aspx AVK>>Демки прилагаются.
ДГ>Это еще почему не для меня?
По фразе "Вопрос с подвохом" я так понял, что у тебя эта ссылка уже есть.
AVK>>А ты что, сомневаешься в маркетологических способностях МС?
ДГ>Ну я ж не знал, что это опять дядя Билл весь мир к рукам пытать пытается.
Сложный вопрос. С одной стороны конечно, с другой сейчас конкуренции флешу нет, и специфика рынка такова, что кому то маленькому на этот рынок влезть тяжело.
... << RSDN@Home 1.2.0 alpha rev. 673 on Windows Vista 6.0.6000.0>>
Зверёк Харьковский wrote:
> Вопрос в том, какие факторы создали именно такой расклад?
Меня ещё несколько удивляет, что и стандартом видеороликов становится тоже flash: http://www.youtube.com/ http://video.google.co.uk/ и вообще везде...
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ., Вы писали:
.>Зверёк Харьковский wrote:
>> Вопрос в том, какие факторы создали именно такой расклад? .>Меня ещё несколько удивляет, что и стандартом видеороликов становится тоже flash: http://www.youtube.com/ .>http://video.google.co.uk/ и вообще везде...
По идее это уже одна контора
(Хотя флеш они отдельно начали использовать)
Плюс ещё много сайтов: vsocial, dailymotion и т.д.
(есть и наши video.mail.ru и др.)
>> Вопрос в том, какие факторы создали именно такой расклад? .>Меня ещё несколько удивляет, что и стандартом видеороликов становится тоже flash: http://www.youtube.com/ .>http://video.google.co.uk/ и вообще везде...
. У меня YouTube'овские ролики даже в Линуксе в Опере под 7-ой версией флэша запускаются. Со звуком, как надо (с video.google.com похуже). Ни одна другая технология такого не позволяет
. У меня > YouTube'овские ролики даже в Линуксе в Опере под 7-ой версией флэша > запускаются. Со звуком, как надо (с video.google.com похуже). Ни одна > другая технология такого не позволяет
А в чём была проблема написать какой-нибудь divx плеер, устанавливающийся во все браузеры?
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
. У меня >> YouTube'овские ролики даже в Линуксе в Опере под 7-ой версией флэша >> запускаются. Со звуком, как надо (с video.google.com похуже). Ни одна >> другая технология такого не позволяет .>А в чём была проблема написать какой-нибудь divx плеер, устанавливающийся во все браузеры?
Одно дело проблема, другое дело — реально это сделать.
Макромедия вот сделала, вопрос обсуждается — что ей помогло, вроде
[quote]
Flash : компилятор haXe может создавать SWF-файлы для Flash Player’ов версий от 6 до 9 включительно. В языке масса удобных средств, а главное, он является одновременно и статическим, и динамическим. Вследствие этого haXe увеличивает Вашу эффективность в сравнении с ActionScript. Переход на haXe и портирование Ваших существующих приложений не должен отнять много времени и сил, так как весь API Flash доступен в haXe без каких-либо изменений.
...
(в JavaScript он тоже компилируется)
...
Система типов haXe является строго типизованной, позволяя компилятору обнаружить большинство ошибок на ранней стадии, то есть при компиляции. В то же время, в отличие от классических строго типизированных языков, Вам нет необходимости указывать типы всюду, где они используются — система вывода типов в большинстве случаев сделает это за Вас. Таким образом, при полном ощущении работы с динамически типизированным языком, вы получаете всю безопасность и уверенность работы со статической системой типов. Лучшее из обоих миров.
[/quote]
И вообще, с ростом числа применения клонов ECMAScript для написания больших приложений, должно возрасти и число компилятов в него, типа Haskell->JS, Java->JS etc.
У нас клиент — толстый апплет, интенсивно(байты считаем) общающийся с сервером. Действительно, узкое место — это установка java плагина. Не у каждого сразу получается. Звонят.
Начальство старается быть в курсе передовых технологий. Периодически спрашивает "Почему мы не используем XML..SOAP..AJAX..Flash..". А действительно, почему бы на флаш не перейти. Черт его знает. Наверное, там уже все есть — многопоточность, уборка мусора, сокеты?
Здравствуйте, mselez, Вы писали:
M>Начальство старается быть в курсе передовых технологий. Периодически спрашивает "Почему мы не используем XML..SOAP..AJAX..Flash..". А действительно, почему бы на флаш не перейти. Черт его знает. Наверное, там уже все есть — многопоточность, уборка мусора, сокеты?
Многопоточности нет. Сокеты в девятке кажись появились. Кроме того, в первую очередь нужно проверять, чтобы под Flash были доступны либы, функционально аналогичные используемым вами в Java.