Pull to refresh

Comments 54

К концу 2020 года поддержка Flash Player будет прекращена, Flash-разработчики объявлены тупиковой ветвью эволюции должны перейти на открытые форматы вроде HTML5, WebGL и WebAssembly.

Ха-ха, WebAssembly? А вы что, его видели в релизе? И с каких это пор низкоуровневый инструмент будет заменять высокоуровневый? Это разные вещи, чтобы допилить на WebAssembly аналог всех возможностей Flash, уйдет не один год. А уж сколько при этом дыр в безопасности там будет — никому неведомо.


И что характерно, вот так всегда — какие-то Стивы Джобсы берутся решать за разработчиков, что им делать. Слова "переходите на HTML5" уже слышны много лет, а нормальной анимации уровня Flash так и нет. И языка уровня AS3 все еще нет. И много чего еще.

Вы так говорите, как будто анимация в вебе это что-то хорошее.
Ну кроме Масяни…
UFO just landed and posted this here

Вообще-то анимация — далеко не единственное достоинство. Но даже если так — это всего-лишь результат наличия быстрой и удобной в использовании 2D и 3D графики. Что вы имеете против быстрой графики? А против flex-овских widgets, аналога которым до сих пор не существует?


И примерно также обстоят дела со всем остальным. Вот приведу реальный пример: заказчик хочет от web приложения простую казалось бы вещь — чтобы можно было copy&paste документы из Офиса. Вместе с оформлением, картинками и таблицами. Расскажете мне, как именно HTML5, WebGL и все остальное поможет мне сделать то, что они просят, если все разработчики браузеров дружно не подрерживают формат rich text в clipboard?


Это один простой пример того, почему иногда технологии типа Flash или Java Applet нужны позарез. И говорить, что мы щас их запретим — это не более чем дурь. Сначала нужно, чтобы замена вообще была, а с ней-то пока не очень. wasm пока — ни разу не замена.

Я это высказал не с позиции разработчика, от которого заказчик требует хотелки, а как пользователь которому хочется простых и лёгких интерфейсов и который отключает всякие ненужности в браузере, которые влияют на безопасность и быстродействие.
И уж тем более копипастить из офиса в веб не буду, надеюсь это какой-то внутренний сервис, которого я никогда не увижу.

Я вас прекрасно понимаю. И проблемы с безопасностью у Flash к сожалению совершенно реальные. Но то что вы никогда не будете копипастить — совершенно не значит, что никому это (и многое другое) не нужно.


Понимаете, вот был и есть такой чувак в команде Мозиллы, который когда-то уже давно громко заявил — мы выпилим из браузера этот тормозной и опасный Adobe Reader, и напишем свою смотрелку PDF, на javascript. Можете погуглить, эту историю легко найти. Так вот, когда в их смотрелке нашли огромную дыру в безопасности, я помнится повеселился от души. Ситуация с Flash еще показательнее, потому что это — полноценная среда разработки приложений, адекватной замены которой все еще нет.


Я кстати недавно сравнивал, каково примерно удобство обычной бизнес разработки сегодня на Flash (в виде Flex), и на javascript инструментах. Никакой особой анимации, просто картография. Так вот Flex пока еще впереди по многим параметрам. Может даже сподоблюсь на эту тему пост написать.

HTML5 поддерживает вставку HTML-кода, Офис поддерживает копирование HTML-кода, так что как минимум оформление и таблицы копипастить можно, я такое запиливал за один вечер. А вот про картинки не в курсе

"Офис поддерживает копирование HTML-кода" — это мягко говоря, не совсем для конечных пользователей решение. Ну т.е. в частностях конечно можно извратиться, но общего решения (кроме Flash/Java Applet) не существует. Ну, насколько я знаю.

это мягко говоря, не совсем для конечных пользователей решение

Это самое обыкновенное выделение и самый обыкновенный Ctrl+C, как и везде, которое под силу кому угодно. Ну или у вас кривой офис :) У меня всё копировалось нормально (кстати, из Google Docs успешно копируются и картинки тоже)

А впрочем, я прямо сейчас проверил копипаст из WordPad в Edge,


и RTF вполне себе копируется

(правда, насколько он корректно копируется, я не знаю)

В сыром виде он копируется. Следовательно максимально корректно.

Я вам охотно верю, но:


  • я занимался этим проектом примерно в 2010-2011, так что браузеры и поддержка стандартов были несколько другими
  • вы не показали, как копируются картинки внутри разметки (а это существенно, потому что картинка это файл отдельный, возможно embedded или linked).

Вот тогда в официальной документации на все имевшиеся браузеры (а основной был IE примерно 7-9 версий) было написано черным по белому — формат clipboard RTF не поддерживается).


Ну и вообще — это был пример того, зачем нужен Flash, возможно не лучший и не единственный, но совершенно реальный.

вот пример редактора summernote.org он умеет вставлять контент с картинками. на главной странице можете вставить текст. картинки либо base64 в тексте либо по эвенту сохраняются на сервере и в текст подставляется img.

Судя по тому, что я вижу (наличие text/rtf) как раз поддержка появилась в Edge.

Ну да, если хочется поддержки IE6, то от флэша не деться, эта фича действительно относительно новая штука. Тем не менее, утверждение «все разработчики браузеров дружно не подрерживают формат rich text в clipboard» всё-таки оказалось не совсем корректным)

Речь про IE 6 не шла. У нас был набор более-менее актуальных на тот момент браузеров (не считая Сафари, ибо кому он в банковском интранете сдался?), и ни один из них на тот момент не поддерживал paste в формате text/rtf. Ну т.е. не "не поддерживают", а никто не делал этого на вполне конкретный момент в прошлом.


Тогда же кстати и file api еще почти не было — так что хотелки с загрузкой файлов все как правило решали в духе gmail — т.е. тем же flash-ем.

Был язык уровнем выше, но в браузерах он умер ещё раньше чем Flash только не все этого заметили.

О Java конечно. (И он действительно в браузерах умер раньше Flash.)

UFO just landed and posted this here

Скорее не Oracle это сделала, но причина та же. (Сейчас Java в Web теперь развивается как WebServer Backend/Standalone.)
PS. Я ещё считаю что Java это очень сильно оптимизированная VM которая может многое на многих платформах.,
PPS. Поправьте если неправ.

UFO just landed and posted this here

А расскажите, чем вы сегодня пользуетесь, если вам нужна в веб криптография? Неужто javascript научился? Опять же, еще несколько лет назад апплеты никуда не девались, а вполне применялись для того, чтобы поддерживать всяческие токены с ключами.

А расскажите, чем вы сегодня пользуетесь, если вам нужна в веб криптография?

Вэб-криптографией я не занимаюсь, но смею предположить что в вэбе замены JS пока нет.


Неужто javascript научился?

Скорее похоже на то что вы/ты(выбирай сам) не умели/умеете это делать на JS. (На любом языке это можно реализовать, только нужно думать как это сделать.)


И ещё, прошу не мешать кашу Java=JavaScript. (Ибо это не одно и тоже.)

UFO just landed and posted this here

Только в чем?
Вроде всё правильно написал и не смешал.

Если вы ей не занимаетесь, я бы вам посоветовал не делать ложных предположений. В мире веб криптографии (особенно если речь идет о сертифицированных средствах, используемых с банками или скажем налоговой) в основном либо java applet, либо свои собственные плагины (т.е. C/C++). А написать свою криптографию на javascript конечно можно — но толку от нее будет чуть больше нуля, потому что стойкость этого продукта будет никакая.


И ещё, прошу не мешать кашу Java=JavaScript. (Ибо это не одно и тоже.)
Вам это почудилось. У меня более чем 20-летний опыт разработки и на том и на другом, и я их даже 20 лет назад не путал и не путаю.
А написать свою криптографию на javascript конечно можно — но толку от нее будет чуть больше нуля ...

В зависимости от того как реализуешь.


..., потому что стойкость этого продукта будет никакая.

Так или иначе обфускацию кода выполнить можно, следовательно и стойкость поднять тоже можно.


Если вы ей не занимаетесь, я бы вам посоветовал не делать ложных предположений.

Спасибо за совет, но вы заставили меня усомниться и в ваших словах тоже.

Смешно. Запомните — никто не будет заниматься де-обсфукацией вашего кода. У криптографии должен быть публичный API. И пока он не защищен от подмены/модификации (а он в среде браузера де-факто не защищен) — кому нужно его ломать?


Ну и второе — приличная криптография на сегодня это зачастую либо токен USB, либо что-то подобное. Там контейнер для ключей, и там же как правило все алгоритмы.


Ну и как вы собрались реализовывать работу со всем этим железом, если вам из javascript никто USB порты не откроет в песочнице?

Запомните — никто не будет заниматься де-обсфукацией вашего кода.

А кто сказал что весь код будет обфусцирован?


У криптографии должен быть публичный API. И пока он не защищен от подмены/модификации (а он в среде браузера де-факто не защищен)

  1. Не только в среде браузера.
  2. Публичный API не требует защиты.
  3. Подмену/модификацию нужно ещё обнаружить.

кому нужно его ломать?

Кто хочет ломать пусть ломает, от этого не холодно не жарко.


Ну и как вы собрались реализовывать работу со всем этим железом, если вам из javascript никто USB порты не откроет в песочнице?

Если нужно сделают, просто нужно разобраться как это сделать.

Какое мнение, о чем? Что можно сделать криптографию на javascript, которую сможет сломать кто угодно, но вам от этого ни холодно, ни жарко?


Это не мнение, а бредятина. Я его учел. Прощайте.

Ну и как вы собрались реализовывать работу со всем этим железом, если вам из javascript никто USB порты не откроет в песочнице?

Берем OpenSC, берем токен с поддержкой pkcs#11 и работаем. Уже все есть готовое и ко всему этому есть доступ из javascript.
Все современные браузеры умеют работать с аппаратными ключами. Только разработчики ничего кроме долбанных java апплетов знать не знают и изучать не хотят.

А почему вы думаете, что предложенный вами вариант проще?


Вот я примерно с 2005 в банках, и знаете, с тех пор в области криптографии практически ничего не изменилось по большому счету. То есть уже тогда все было и работало. Ктож просто так меняет то, что уже работает?


Ну и потом — для своего сайта/проекта вы можете взять любое решение (хотя я не уверен, возможно по закону вас заставят взять сертифицированное, если есть какие-нибудь персональные данные?), а скажем чтобы платежки подписывать, вы однозначно вынуждены будете взять то, что предложит банк. А он предложит то, что опробовано и проверено. А это — см. п.1.

Тогда согласитесь что проблема не в том, что javacsript неготов технологически, а в том что некто не хочет получать бумажки. И в том что их нужно получать.

Все не так однозначно. Во-первых, проблема в основном не в языке, а в web браузере как платформе.
Причем node.js как платформа — потенциально совершенно другая ситуация.


Вы можете, разумеется, написать на javascript любую или почти любую криптографию, которая в общем-то не более чем математика, и она вполне будет работать, возможно без ошибок и возможно быстро. Только это ничего не даст в случае веба.


Бумажки — это одна сторона вопроса, ответ на ваш вопрос, почему разработчики пользуются тем, к чему привыкли. А вторая сторона — она техническая. Вот цитата с сайта мозиллы, страница про web crypto api:


The Web Crypto API is an interface allowing a script to use cryptographic primitives in order to build systems using cryptography.


A fundamental feature of this API is to allow the manipulation and storage of private and secret keys without requiring the underlying bits of the key to be made available to JavaScript.


Т.е. цель — сделать так, чтобы JavaScript не касался и не видел ключей и т.п. Потому что нет доверия.


И вот эта фундаментальная статья на тему: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/august/javascript-cryptography-considered-harmful/ — она вполне актуальна и на сегодня.


Есть еще одна статья, я не помню сейчас, где ее видел, в которой рассмотрены проблемы javascript-cryptography-considered-harmful в свете web crypto api, и показано, что хотя часть проблем данный api и снимает, фундамендально все равно мало что меняется.

Пробежался бегло по статье, чесно там все очень натянуто. Большая часть замечаний справедлива и для техже java апплетов. И еще раз я гворю про реализацию через secure device и pkcs#11 когда вся крипта делается в токене. И в java script торчит только интерфейс и симметричная крипта. Сейчас это возможно. Например возмем тотже startssl уних была авторизация через сертефикаты. Дак вот я запихивал приватный ключ и сертефикат в yubikey и все отлично работало.
Также yubikey можно через браузер использовать для подписи и расшифровки. Тоесть все опперации с ассиметричными ключами делаем на токене. А браузер работат только с симетричными ссессионными ключами. И устанавливает защищеное ssl соединение.
Что-то слино безопаснее сделать неполучится.
А если учесть, что у многих банков токены такие что ключ можно извлечь, то становится совсем грусно.

Да не, там натяжек как раз немного. И да, вы в основном правы — у апплетов имеют место теже самые проблемы, хотя и не один в один (например, сама Java же не ставится вместе с апплетом, а должна быть предустановлена, поэтому в ее комплекте имеется какая-никакая криптография — и мы можем проблему курицы и яйца в значительной степени ослабить). Ну, если мы этой самой установке доверяем, конечно, но это уже другая история.

языка уровня AS3 все еще нет

TypeScript, HaXe?

Я уточню — как языки это почти норм, но недотягивают как экосистема в некоторых (многих) частностях. Не возьмусь судить за всех, возможно кому-то это адекватная замена, но опять же — к Flex это даже близко пока не лежало. Ну т.е., библиотека виджетов, skins, mxml и его интеграция с AS3, пакеты, эффективный бинарный протокол для обмена сообщениями, и много чего еще. Возможно тем кто делает игры, не хватит чего-то другого.


Лично мне в случае TypeScript еще не нравится то, что инфраструкрура основана на node, но возможно это мои личные впечатления, и я их не навязываю, но мне инфраструктура Flex нравится намного больше.


Ну и потом… в случае haxe, вы в какой runtime предлагаете компилировать и собирать? Flash? Или в javascript?

Тут наверное действительно зависит от задачи. Лично мне за все время довелось сделать только один проект похожий на десктопное приложение (это было приложение для электронной школьной доски) на платформе AIR. В основном же я занимался играми и сейчас haxe+openfl полностью заменил мне Flash, вроде всего хватает что было + возможность собирать по-настоящему нативные приложения под различные, в т.ч. мобильные, платформы.

И что касается языка: мне всегда очень нравился AS3, казалось что он вобрал в себя все лучшее из js и java :) Так вот haxe, на мой взгляд, ему совсем не уступает.

В целом я считаю что haxe+lime+openfl вполне может заменить экосистему Flex, но кажется особого запроса на это нет.

Я пытался несколько раз прикинуть, смогу ли я перенести Flex проект под HaXe/OpenFL.


Получается примерно так: если начинать новый проект с нуля, исходя из возможностей именно этой платформы, то все достаточно оптимистично. Есть хороший язык, есть runtime под приличное число платформ, есть набор виджетов. Будет определенный порог входа, вероятно даже небольшой (с опытом Flash/Flex).


В тоже время, идея перенести готовый Flex проект выглядит практически не реальной. Тут много чего хорошего есть, но оно свое. И нет инструмента для миграции. Может быть его даже можно написать, какой-то конвертор AS3 вроде есть, а mxml в конечном счете не более чем xml (хотя в его основе и лежат AS3 классы). Ну т.е. все вроде можно — но по крайней мере для одного человека проект выглядит неподъемным.

Особенно жаль, конечно, Flash-игры (на самом деле нет).

Игры это одно из применений возможностей Flash, пока аналогов простоты и скорости ему нет.
Разумеется, можно упороться что то на WebGL с кучей велосипедов разработать, но такой легкости, как с флешем не получится.

Вы знаете, свежие инструменты в области графики как раз уже ничего так. Three.js плюс скажем d3, плюс еще немножко — и все довольно удобно. Но вряд ли для игр, скорее для всякого рода презентаций, диаграмм, и прочего.

Речь об IDE. Tree.js, d3 — это все-таки «плееры». Всем не нравится дырявость плеера, а вот IDE с языком была супер.

Ну вроде Adobe свою новую IDE уже много лет как пилит на замену? Не довелось правда попробовать все еще.

Да, тоже хотелось бы попробовать.

"Гибель Flash" происходила несколько не так, как тут описано.


Macromedia Flash была очень популярной платформой и средой разработки, и Adobe решила её выкупить для себя. Или похоронить, как это получилось с Macromedia Fireworks. С этого момента такое ощущение, что над Flash работало две команды — макромедиевская, прогерская, которая тихо продолжала развивать заложенный потенциал, и адобовская, менеджерская, которая активно весь продукт хоронила.


Хоронить продукты они умеют — например, единственный нормальный инструмент для непосредственной HTML5 анимации без костылей, Adobe Edge Animate, также брошен с 2015. Нормальных аналогов нет, а продукт хоронят! Эффективные менеджеры в действии..


В общем, Flash тихо загибался, несмотря на некоторый прогресс одновременно. При этом даже среду разработки решили убить — сначала отключили зачем-то поддержку простого и удобного AS2, потом так и не сделали нормального экспорта хотя бы в Canvas...


Конечно же, популярность начала падать — когда новые версии той же среды разработки становились хуже, поддержку своих костылей для Canvas Гугл прекратил, а у Адоба замены так и не нашлось!


В результате — теряем в Вебе анимацию вообще, кроме совсем убогой "наведение-увеличение"! То есть в плане изобразительных возможностей Веб откатился к рубежу примерно 2000 года. Спасибо, Адоб.


P.S. Хоронить хорошие проценты конкурентов умеет не только Адоб. Эй, Майкрософт, как поживает потрясающий пакет для рисования Expression? Думаете, мы забыли?)

Что характерно — замены Flex также нет. Но его хотя бы отдали апачу (это впрочем мало что дает, ибо райнайм-то все равно Flash).

Все эти хранилища приложений, расширений, модулей и другого ПО, которое находится в открытом доступе и используется сторонними пользователями, должны требовать обязательной двухфакторной аутентификации при обновлении ПО. Данные сервисы несут большую ответственность перед людьми, их вина во взломах аккаунтов разработчиков, возможно даже больше, чем вина самих разработчиков. Как можно доверять логину и паролю, когда существуют десятки методов получения этих данных?..
То они flash хоронят… То windows… А то и вовсе доллар. Но всё это как было — так и будет, не смотря ни на что, пока не будет замены, популярных библиотек над webgl хотя бы
Sign up to leave a comment.