IV Международный конкурс
научно-исследовательских и творческих работ учащихся
«СТАРТ В НАУКЕ»
 
     

СРАВНЕНИЕ ТЕХНОЛОГИЙ ADOBE FLASH И JAVASCRIPT ДЛЯ СОЗДАНИЯ ВЕБ-ПРИЛОЖЕНИЙ
Лихолетов М.Д.
Текст научной работы размещён без изображений и формул.
Полная версия научной работы доступна в формате PDF


Введение

Веб-приложение – программа, реализованная с помощью технологии «клиент-сервер», где клиентом является браузером, а сервером – веб-сервер [1]. Клиентская часть отвечает за пользовательский интерфейс, формирование запросов к серверу и обработку ответов, полученных от него. Серверная часть получает запрос от клиента, выполняет вычисления, после этого формирует веб-страницу и отправляет её клиенту по сети с использованием протокола HTTP.

Главным плюсом веб-приложений является то, что они кроссплатформенные, так как клиенты не зависят от операционной системы. Таким образом программу не нужно писать отдельно для каждой операционной системы. Она пишется один раз на определенной платформе. Веб-приложения стали популярны в конце 1990-х – начале 2000-х и актуальны по сей день.

Существует несколько подходов создания веб-приложений. Самыми популярными за всю историю веб-приложений заключаются в использовании платформы Adobe Flash или в использовании языка программирования JavaScript.

Большинство разработчиков веб-приложений считают, что более оптимальным решением для создания веб-приложений является использование JavaScript, и большинство веб-приложений создано с его помощью, хотя Adobe Flash относительно недавно пользовался такой же популярность.

Вопрос, почему JavaScript более популярное решение разработки веб-приложений, чем Adobe Flash, крайне интересна, так как любому веб-разработчику нужно знать, стоит ли в будущем надеяться на Flash, или же доверять более современному JavaScript?

Этапы и методы работы

Объектами исследований являются платформа для разработки веб-приложений “Adobe Flash” и язык программирования “JavaScript”. Предметами исследования стали технологии для создания веб-приложений и истории создания и развития обоих объектов. Целью данной работы было выявление достоинств и недостатков веб-приложений, созданных как с помощью платформы Adobe Flash, так и с помощью языка JavaScript.

Этапы исследования:

  1. Изучить историю Adobe Flash.

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

  3. Изучить историю JavaScript.

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

  5. Выявить достоинства и недостатки обеих технологий.

  6. Сделать вывод, почему сегодня JavaScript применяется для разработки веб-приложений больше, чем Adobe Flash.

Методы исследования:

На всех этапах исследования были использованы практические методы использования мировой интернет-паутины, в особенности поисковой строкой. На первых 3 этапах были использованы практические методы изучения и отбора информации с различных веб-страниц, представленных поисковой строкой в соответствии с поставленными запросами. Также, как на 5 и 6 этапах, здесь были практикованы научные методы анализа, систематизации и обобщения собранного материала. На 4 этапе были использованы личные опыт и знания HTML и JavaScript.

Основная часть.

Глава 1. Описание AdobeFlash

Adobe Flash – мультимедийная платформа для создания веб-приложений. Имеет широкое применение в области создания анимации, игр, рекламных баннеров, воспроизведения видео- и аудиофайлов на веб-страницах [2]. Платформа включает в себя множество средств для разработки, такие как Adobe Animate и Adobe Flash Builder, а также программу Adobe Flash Player для произведения flash-контента.

1.1. История AdobeFlash

За всю свою историю изменений, платформа многократно обновлялась, включая в себя все больше и больше новых функций, упрощавших разработку веб-приложений (Прил. 1).

Началось создание Flash в январе 1993, когда руководитель компании Silicon Beach Software Чарли Джексон инвестировал своего работника Джонатана Гэя для создания компании FutureWave Software. В январе 1994 года вышла SmartSketch, программа для рисования на операционных системах Macintosh и Windows.

После успеха продукта на рынке, последовали письма пользователей, которые просили преобразовать SmartSketch в программу для анимации. Эти предложения показались очень интересными, кроме того в то время начал развиваться интернет, с помощью которого можно распространять анимации, а не только с помощью кассет VHS и CD-ROM дисков. Так началась работа над добавлением функций для добавления анимации в SmartSketch и созданием интерпретатора для сети на языке программирования Java. Окончательное название продукта - FutureSplash Animator. Компания пыталась продать свой продукт сначала компании Adobe, а затем компании Fractal Design, так как из-за того, что компания мала, они могли не добиться того уровня популярности, на который рассчитывали, но обе отказались, так как анимация, написанная в то время на языке Java, работала медленно.

Программа была выпущена летом 1996 года, и пользовалась большим спросом среди пользователей, набирая популярность. Самый большой успех FutureWave Software был в августе, когда Microsoft хотели создать нечто наиболее похожее на телевидение в сети Интернет; решением был FutureSplash Animator. Компания Macromedia приобрела компанию FutureWave Software, и FutureSplash Animator был переименована в Macromedia Flash 1.0. В период с 1997 по 2005 год было выпущено еще 7 версий Macromedia Flash, в которых постепенно улучшались интерфейс, анимация, растровые изображения, звук, быстродействие, добавлялись возможности добавлять видео, графики, диаграммы, поддержка расширений, библиотек. Коренным моментом в истории Flash является 2000 год. В 5 версии Macromedia Flash был включен ActionScript, полноценный язык программирования, позволявший производить обработку данных, добавлять интерактивность. Таким образом Macromedia Flash из программы для создания анимации стала еще и платформой для создания качественных веб-приложений. Со временем язык улучшался. Под руководством компании Macromedia было выпущено 8 версий Flash, который использовалась для создания почти любого сайта и анимации. Помимо самого Flash было выпущено еще несколько программ, дополняющие его. Благодаря Flash появились такие известные проекты, как YouTube.

В декабре 2005 года компания Adobe приобрела Macromedia, а вместе с компанией были приобретены свыше десятка программ, в том числе и Flash, которую переименовали в Adobe Flash, и в 2007 была выпущена Adobe Flash CS3, главным новшеством которого был обновленный ActionScript 3.0. До 2015 года было издано еще 8 версий Adobe Flash. В версии CS5 была добавлена поддержка графических ускорителей, геймпадов, что сделало Adobe Flash еще и хорошей игровой веб-платформой.

Из-за конфликтов компании Adobe с главой компании Apple Стивом Джобсом, Flash не смог реализовать себя на технологиях Apple. Так же технология становилась все менее популярной, в связи с развитием языка разметки HTML. Ситуация усугубилась, когда в 2014 году вышел HTML5, который был дополнен различными API, способных взаимодействовать с JavaScript. Теперь вытеснение Adobe Flash из повсеместного употребления стало лишь вопросом временем. С 2015 года браузеры один за другим перестали поддерживать плагин Flash Player. В 2016 году Adobe заменила Adobe Flash на Adobe Animate, который поддерживал старый формат flash-анимации, но в основном работавший на стандарте HTML5. Предполагается, что скоро и старый формат будет упразднен во всех браузерах вместе с Flash Player.

1.2. Возможности AdobeFlash и ActionScript

Технология Flash объединяет в себе такие технологических решений в области мультимедийного представления информации, как например векторная графика, которая является основным инструментом анимации. Благодаря этому размер веб-приложений небольшой, а результат работы не зависит от разрешения экрана пользователей. В основе анимации лежит векторный морфинг, позволяющий создать анимацию, сделав небольшое количество кадров, которые переливаются из одного в другой [3]. Чтобы сделать из обычной анимации веб-приложение, нужно обеспечить в них интерактивность, обработку данных и многое другое. Всё это реализуются с помощью языка программирования ActionScript, один из диалектов ECMAScript. Этот язык компилирует бинарный код в файл формата swf. Этот формат исполняется с помощью Flash Player, который устанавливается либо как плагин к браузеру, или как самостоятельная программа.

Глава 2.Описание JavaScript

JavaScript - язык программирования. Является реализацией языка ECMAScript. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Часто используется для программного доступа к объектам веб-приложений на этих веб-страницах. [4]

2.1 История JavaScript

Первоначальная версия JavaScript сильно отличается от нынешней (Прил. 2).

Основатель компании Netscape Communicator Марк Андриссен считал, что нужно создать такой язык, который бы сделал бы веб-страницы более динамичными, но оставался бы доступным для людей, далеких от программирования. Иначе говоря, язык должен был обеспечивать интерактивность, воспроизведение анимации, и при этом предназначаться для аудитории дизайнеров, нежели программистов. [5]

Изначально язык назывался Mocha. Брендан Айк, будущий сооснователь JavaScript, был нанят в компанию Netscape Communicator 4 апреля 1995 года, месяц работал в группе, ответственной за серверные продукты и улучшение протокола HTTP, затем его перевели в команду, занимающейся внедрением в браузер динамического языка программирования с упрощенным синтаксисом Scheme. В ней работали Брендан Айк, сам Марк Андрессен и сооснователь Sun Microsystems Билл Джой. Sun Microsystems сотрудничала с Netscape Communicator, чтобы успеть закончить разработку языка до релиза браузера. При этом сама компания Sun Microsystems заканчивала разработку своего языка программирования Oak (в будущем Java). Netscape готовы были заключить контракт с компанией, но Java – большой и навороченный язык, и предназначался для крупных разработчиков и профессиональный программистов. Так началась работа над Mocha. У Айка конкурентами являлись Python, Scheme и Tcl, а времени было мало, так что огромное количество важных решений принималось за короткие сроки. Зато была полная свобода выбора необходимых возможностей. Айк должен был сделать язык-компаньон для Java. В результате вышло нечто, совершенно не похожее на Scheme, аналогом которого должен был являться продукт. Язык имел синтаксис очень похожий на Java. Кроме того, от него были унаследованы семантика для большинства устоявшихся идиом. Так получился гибрид Scheme и Self под оболочкой Java.

Прототип Mocha был интегрирован в Netscape в мае 1995 и был переименован в LiveScript, а потом и в JavaScript. С самых первых дней JavaScript показал удивительные возможности в плане взаимодействия с пользователем. Браузеры-конкуренты должны были разработать собственные реализации JavaScript, так как было понятно, что Java и JavaScript станут ведущими языками для веб-программирования. Так поступили, например, Microsoft, создав свой язык веб-программирования JScript для браузера Internet Explorer 3.0. В браузере Netscape, как и задумывалось первоначально, реализацией JavaScript была Mocha. После релиза в Netscape, Брендан Айк переработал большую часть языка, чтобы разобраться в технических ошибках и недоработках, так как их было много в следствии спешки разработки. Новая версия языка была названа SpiderMonkey. Это название до сих пор используется в JavaScript-движке браузера Mozila Firefox. Несколько лет JScript и SpiderMonkey были единственными движками JavaScript, которые определяли вектор развития веб-программирования на ближайшие годы.

Первой большой переменой для JavaScript после его выпуска стала стандартизация ECMA. ECMA — ассоциация, созданная в 1961 году с целью стандартизации информационных и коммуникационных систем. Работа над стандартизацией JavaScript, к которому был присвоен идентификационный номер ECMA-262, началась в ноябре 1996 года. К тому моменту JavaScript активно использовался на многих веб-страницах. В 1996 года насчитывалось примерно 300000 страниц, использующих JavaScript. Стандартизация открыла JavaScript для большей аудитории и дала возможность сторонним разработчикам принимать участие в развитии языка. Она также помогла держать других разработчиков в рамках, так как бытовало опасение, что Microsoft или кто-либо ещё могут слишком сильно отклониться от оригинальной реализации языка, что могло привести к фрагментации. Было решено, что описанный стандартом язык программирования будет назван ECMAScript. На сегодняшний день JavaScript это всего лишь коммерческое название ECMAScript.

Первый стандарт ECMAScript был реализован в Netscape Naviagator 4.0 в июне 1997 году. В отличии от нынешней реализации, отсутствовало множество функций, таких как регулярных выражений, JSON, исключений и методов для встроенных объектов. ECMAScript 2 был выпущен в июне 1998 года, чтобы исправить недочеты между ECMA и стандартом ISO для JavaScript и не включала в себя никаких изменений самого языка. 3 версия стандарта была выпущена в декабре 1999 года и включала множество важных функций, в том числе регулярные выражения и улучшенная обработка ошибок. Netscape Navigator 6, выпущенный в ноябре 2000 года, поддерживал ECMAScript 3. Спустя почти полтора года был выпущен Firefox, браузер, основанный на кодовой базе Netscape Navigator и также поддерживавший ECMAScript 3. Бок о бок с Internet Explorer эти браузеры делали всё возможное для дальнейшего роста и развития JavaScript.

Однако после релиза 3 версии ECMAScript, в сообществе, занимавшимся развитием JavaScript, появились разногласия. Одни считали, что язык должен предназначаться для разработки крупных веб-приложений. Другие считали это недопустимым. Отсутствие компромиссов привело к тому, что работа над новой версией остановилась. С того момента до 2005 года был написан лишь промежуточный отчет, и несколько разработчиков, как Adobe и Microsoft, использовали его как движок для создания своих языков.

В 2005 в свет вышла статья Джесси Джеймсом Гарретта об AJAX, технологии, основанной на ECMAScript, позволявшей совершать асинхронные HTTP-запросы серверу (обновлять лишь часть веб-страницы без ее перезагрузки). Microsoft решила встроить некоторые функции в свой браузер Internet Explorer 5, одной из которых была функция XMLHttpRequest, элемент, управляющий HTTP и HTTPS-запросами. AJAX вновь разжег интерес к разработке. Из-за него приложения становились более большими, поэтому EcmaScript 3 становился непригодным для разработки программ такого объема. В течении многих лет накапливался список нововведений, таких как пакеты, пространства имен, ранние связки и многие другие. Эти новшества должны были решить проблему разработки крупных приложений. Однако разногласия продолжались. Главные оппозиционеры Microsoft и Yahoo критиковали новшества так как считали, что язык становится слишком большим и выходит из-под контроля. Microsoft обещала принять любые меры против ECMAScript 4 вплоть до судебных разбирательств. Члены комитета по разработке ECMAScript смогли избежать суда, но разработка снова застыла на месте. Было предложено создать ECMAScript 3.1, который не включал в себя никаких больших нововведений, а лишь практические улучшения. Комитет по разработке разделился на две неофициальные группы: по разработке версии стандарта 3.1, и по разработке 4 версии. В 2008 году были подведены итоги и было решено: в следующем году должны быть выпущены 2 совместимые версии новой версии стандарта. После нужно было начать разработку новой версии, включающую в себе синтаксические расширения, но более скромные, нежели те, которые предлагались для ECMAScript 4.

В результате началась разработка над ECMAScript 3.1, который был переи­­менован в ECMAScript 5. 4 версия была отправлена на свалку. Новый релиз стандарта, появившийся в 2009 году, стал один из самых используемых в браузерах. ECMAScript 5 получил поддержку всех известных браузеров в период с 2011 по 2012 год. Именно с выходом этой версии стандарта связано снижение популярности платформы Adobe Flash. Из нововведений можно выделить появление новых методов объектов и массивов, JSON, строгий режим. Компания Apple также включила ECMAScript 5 в свой движок для отображения веб-страниц WebKit. Именно в этой версии движка впервые появился элемент canvas для HTML5, который служил для создания векторного двухмерного изображения при помощи JavaScript. Именно с помощью элементы canvas создаётся сегодня большинство веб-приложений, в которых используются графические элементы. Тем не менее, большое количество идей, предложенных в ECMAScript 4, не реализовались.

К 2015 году комитет, наконец, смог побороть все внутренние разногласия, и ECMAScript 6 увидел свет. В этой версии были реализованы некоторые идеи 4 версии, но с другим подходом. Все новшества внесли крупный вклад в большое программирование. В 2016 году вышла версия, которое включала малое количество изменений.

Сегодня JavaScript является самым используемым языком для веб-приложений, который продолжает активно развиваться. Не смотря на огромный функционал JavaScript, он очень прост. Даже человеку, далекому от программирования, не составит труда с помощью базовых знаний языка написать несколько простых скриптов.

2.2 Возможности JavaScript (практическая часть)

Анимация в веб-приложениях, как и в Adobe Flash, создаются при помощи векторной графики. В HTML для создания двухмерного изображения используется тег , который управляется с помощью скрипта. Скрипт можно написать, как и в самом гипертекстовом документе, так и в отдельном файле с расширением “js”. При этом для использования языка не требуется установки плагинов или программ. В качестве демонстрации графических и интерактивных возможностей JavaScript, можно рассмотреть код, написанный на языке гипертекстовой разметки HTML со встроенным скриптом, написанном на языке JavaScript (Прил.3).

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

Все действия веб-приложения происходят в пределах тега HTML с идентификатором “canvas”. В дальнейшем данный тэг будет называться холстом. При полной загрузке страницы начинается исполнение скрипта, заключенного в тег . В первую очередь создаются переменные “canvas”, в которой будет храниться ссылка холст, и “ctx”, которая указывает контекст к холсту со всеми принадлежащему ему API.

В нынешней версии JavaScript существует лишь двухмерный тип контекста. В будущем планируется добавить и трёхмерный тип контекста, что позволит создавать полноценную 3D-анимацию. Хотя уже сейчас есть библиотека для JavaScript “WebGL”, позволяющая задействовать ресурсы видеокарты и создавать 3D-анимацию.

Все действия, связанные с векторным рисованием, будут осуществляться с помощью методов и свойств этого контекста, который ссылается на холст по ссылке, хранящейся в переменной “canvas”. Для рисования будет использоваться метод “fillRect”, который рисует прямоугольник указанных размеров относительно левого правого угла, залитый цветом, указанным в свойстве “fillStyle”.

Все анимированные действия будут происходить с помощью функции setInterval. С помощью этой функции устанавливается в миллисекундах интервал времени, в соответствии с которым совершается определенное действие. В нашем случае это функция “fr”, написанная так же в скрипте. Функция сначала очищает весь холст, так как каждый раз, когда совершается функция, выводится кадр на время, равное интервалу времени, установленным функцией setInterval, а поскольку интервал крайне мал, кадры будут часто меняться, но человеческий глаз будет видеть плавную их смену, то есть гладкую анимацию. Затем функция считывает координаты курсора относительно оси Х, с помощью которого происходит управление машиной. Для этого используется метод “clientX”.

На основе считаных координат, вырисовывается машина. Если мышь была передвинута, то при вызове функции в следующий раз, в новом кадре машина тоже изменит свое положение по оси X, в соответствии с координатами курсора. Если курсор мыши выйдет за пределы холста, то автомобиль не будет уходить за экран, а просто упрется в стенку.

Далее следует часть скрипта, в которой описывается создание препятствий, а также проверка на предмет того, пересекается ли то или иное препятствие с машиной или нет. Для хранения координат каждого препятствия создаётся двухмерный массив “ob”. Изначально он пуст. При каждом вызове функции при помощи функции “setInterval” в массив будет добавляться ячейка, элементом которого является массив, состоящий из 2 ячеек: в 1 хранится координата препятствия по оси Х, а во 2 координата по оси Y. Координата Y изначально у каждого блока всегда будет равна -10, чтобы препятствие появлялось выше самого холста.

При создании препятствия координате Х даётся случайное значение и не меняется вплоть до удаления препятствия из перечня массива. Затем идет перечисление каждого элемента массива, то есть каждого препятствия, во время которого проверяется, пересекается ли какое-нибудь препятствие с машиной или нет. Если препятствие пересекается с машиной, то происходит остановка цикличного выполнения функции “fr” с помощью функции “clearInterval”, очищается холст и массив “ob”, а на экран с помощью функции “alert” выводится сообщение “Game over. Go again?”. Если же препятствие не пересекается с машиной, то оно еще проверяется, не больше ли координата по оси Y числа 460. Если да, то из массива “ob” удаляется элемент, содержащий координаты данного препятствия (удаляется препятствие). В ином случае оно смещается на 1 пиксель вниз по оси Y. На этом функция “fr” заканчивается, но, как было сказано ранее, каждые 25 миллисекунд она будет запускаться функцией “setInterval”.

Данный пример хорошо демонстрирует возможности JavaScript в плане создании веб-приложений и анимации для них. При чем следует учесть, что это лишь малая доля всех возможностей JavaScript.

Глава 3.Сравнение технологий

После изучения историй и технологий для создания анимации для веб-приложений самое время выявить их главные преимущества и недостатки и выяснить, почему JavaScript нынче более используемый, нежели Adobe Flash.

3.1 Преимущества AdobeFlash

1) В sfw-файл очень легко добавлять видео и аудиофайлы, при чем файл получится меньше, чем если сделать тоже самое с помощью JavaScript. Может заменяться вставкой видео и аудиофайлов с помощью HTML.

2) На пике своей популярности по сути не имел конкуренции с JavaScript в плане создания анимации, так как в ECMAScript не было этой функции долгое время.

3.2 Недостатки AdobeFlash

1) Для воспроизведения flash-контента требовалась установка отдельного плагина Adobe Flash Player. Сейчас Flash встроен почти в каждый браузер и включает flash-содержимое только по требованию пользователя, но раньше это было не осуществимо, так как это только сейчас для Adobe Flash не выходит обновлений, а раньше они выходили чуть ли не каждую неделю. То есть каждый раз, когда Adobe Flash обновлялся, каждому браузеру все время приходилось бы обновляться вместе с ним. Гораздо лучше вариант с плагином, который обновлялся независимо от браузеров. Но получается, что если плагина нет, то и flash-контент отображаться не будет. Особенно это было ощутимо в ту пору, когда некоторые сайты полностью состояли из flash-содержимого (при отсутствии последней версии Adobe Flash Player сайт не отображался вовсе). Это уже не говоря о мобильных устройствах, для которых программы Flash Player нет.

2) Flash-приложения создают огромную нагрузку на процессор клиента и требуют большое количество оперативной памяти. Однако для современных ПК данная проблема несущественна.

3) Весь контент, созданный с помощью Flash очень тяжеловесный и долго кэшируется. На его загрузку сильно влияет скорость интернет-соединения.

4) Самой слабой стороной Flash является его безопасность. В основном именно с этим связаны частые выходы обновлений. Но закрывая старые дыры, все время появлялись новые, генерируя ошибки и тормозя браузер. Особенно много пользы уязвимости принесли хакерам, которые использовали эти самые уязвимости для загрузки троянов на ПК жертв. В октябре 2015 года в плагине Adobe Flash Player была найдена уязвимость, с помощью которой вредоносное программное обеспечение способно встраиваться в протоколы проигрывателя и проникать на компьютеры жертв. А в июле 2015 была найдена уязвимость, из-за которой Firefox и Chrome на время отключили Flash, хотя его можно было включить на определённом веб-сайте, но через несколько дней Flash включили.

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

6) Продукция компании Apple, в связи с их конфликтом с компанией Adobe, не поддерживает технологию Flash.

3.3 Состояние AdobeFlash на сегодня.

В конце 2015 года стало известно, что среду разработки Adobe Flash переименуют Adobe Animate. Adobe Animate CC 2015 вышел 8 февраля 2016 года, который содержал в себе функции своего предшественника Adobe Flash CC, но полностью работающий на JavaScript. Экспорт в формат “swf” остался для обратной совместимости. Для Flash Player давно не выходят обновления. Сейчас он встроен в Большинство браузеров и включается по требованию пользователя для воспроизведения swf-файлов, однако предпочтение отдается больше HTML5. Формат swf морально устарел, планируется, что в скором будущем все браузеры отключат его поддержку, и как говорит сама компания Adobe, произойдет это к 2020 году.

3.4 Преимущества JavaScript

1) Легкий и понятный язык программирования, работать с ним может даже не профессионал.

2) Встроен в большинство современных браузеров.

3) Полная интеграция с HTML и CSS, что позволяет добавлять и убирать объекты, а также изменять их стили, не обновляя страницу полностью. Для анимации в HTML с помощью JavaScript используется тэг “canvas”.

4) Возможность программирования как на клиенте, так и на сервере.

3.5 Недостатки JavaScript

1) В отличии от Adobe Flash, в JavaScript нет простого и рационального способа вставить видео и аудиофайлы.

2) Повсеместный и свободный доступ к исходным кодам популярных скриптов, что облегчает поиск в них уязвимостей.

3) В связи с тем, что JavaScript простой язык, его может использовать почти каждый, при чем необязательно профессионал. Это ведёт к тому, что для него нет никаких правил оформления, а значит чаще всего код криво написан, очень тяжёлый и зачастую непонятен человеку, не являющемуся автором.

3.6 Состояние JavaScript на сегодня.

Сегодня JavaScript используется чуть больше, чем на всех сайтах. Поддерживается во всех браузерах кроме Internet Explorer ниже 10 версии (разработчиками обычно подключается скрипт, если IE 9 или ниже версии). По сравнению с первыми версиями ECMAScript обладает большим потенциалом и огромным набором инструментов для создания веб-приложений. Полностью заменил swf формат благодаря HTML-тэгу “canvas”. Имеются большие планы в плане обновлений для него.

Заключение

Из изложенного выше материала очевидно, что в своё время Adobe Flash был просто незаменим. В конце 90-х, когда и появился Flash, и интернет был чем-то новым, неразвитым, возможность добавить мигающий баннер с минимальной сложностью казалась хорошей идеей. А когда к этому всему добавили язык программирования, Flash незаменимым инструментом для создания веб-приложений. Хоть ECMAScript уже существовал тогда, он и мог только использоваться как ядро для ActionScript, так как не имел многих функций для изменения HTML-кода и стилей для него. Об анимации тогда и речи не было. Но благодаря энтузиастам, коих было немало, JavaScript развивался, обновлялся, с помощью него осуществлялись различные технологии. В какой-то момент в ECMAScript включили все преимущества Flash, имея при этом преимущества над самим Flash. Тогда все начали понимать, что для создания веб-приложений JavaScript является лучшим решением, нежели Flash. У Flash правда до сих пор есть некоторые преимущества, но в отличии от него JavaScript идёт вперед семимильными шагами, и в скором времени в JavaScript появятся функции, которых сейчас нет, и преимущества Flash сойдут на нет. Flash морально устарел. Он отжил своё время. Даже компания Adobe, обладатели авторских прав на него, понимает это и давно не обновляет Flash. Даже больше, компания содействует прекращению его поддержки и по её же словам, формат должен окончательно исчезнуть вместе с Flash Player из всех браузеров к 2020 году. Это окончательный аргумент в пользу того, что сегодня более приемлемо использовать JavaScript для создания веб-приложений. Использовать для этих целей Flash бессмысленно. Следуя приведённым выше исследованиям начинающим веб-разработчикам лучшим вариантом будет изучение технологий языка JavaScript.

Сноски

[1] Определение веб-приложения. Википедия.

URL:https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5 (дата обращения к источнику: 19.03.2017)

[2] Определение Adobe Flash. Википедия.

URL:https://ru.wikipedia.org/wiki/Adobe_Flash#.D0.A2.D0.B5.D1.85.D0.BD.D0.BE.D0.BB.D0.BE.D0.B3.D0.B8.D0.B8 (дата обращения к источнику: 19.03.2017)

[3] Определение векторного морфинга. Википедия.

URL:https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D1%80%D1%84%D0%B8%D0%BD%D0%B3 (дата обращения к источнику: 19.03.2017)

[4] Определение JavaScript. Википедия.

URL: https://ru.wikipedia.org/wiki/JavaScript (дата обращения к источнику: 03.03.2017)

[5] Мнение Андриссена, основателя Netscape Communications, о том, каким должен быть веб. Хабрахабр.

URL: https://habrahabr.ru/company/livetyping/blog/324196/ (дата обращения к источнику: 03.03.2017)

[6] История версий Flash. Википедия.

URL: https://en.wikipedia.org/wiki/Adobe_Animate (дата обращения к источнику: 19.09.2017)

[7] История версий ECMAScript. Википедия.

URL: https://en.wikipedia.org/wiki/ECMAScript (дата обращения к источнику: 25.09.2017)

Использованные источники

  1. Интернет-энциклопедия. Википедия. URL: https://ru.wikipedia.org

  2. Интернет-энциклопедия. Lurkmore. URL: http://lurkmore.to

  3. Новостной сайт, коллективный блог. Хабрахабр. URL: https://habrahabr.ru

  4. Справочник по HTML и CSS технологиям. WebReference.ru. URL: https://webref.ru

Приложения

Приложение 1. История версий Flash [6].

Версия

Год

Иконка

FutureSplash Animator

1996

 

Macromedia Flash 1

1996

Macromedia Flash 2

1997

Macromedia Flash 3

1998

Macromedia Flash 4

1999

Macromedia Flash 5

2000

Macromedia Flash MX (6)

2002

 

Macromedia Flash MX 2004 (7)

2003

Macromedia Flash 8

2005

 

Adobe Flash CS3 (9) Professional

2007

Adobe Flash CS4 (10) Professional

2008

 

Adobe Flash Professional CS5 (11)

2010

 

Adobe Flash Professional CS5.5 (11.5)

2011

Adobe Flash Professional CS6 (12)

2012

 

Adobe Flash Professional CC (13)

2013

 

Adobe Flash Professional CC 2014 (14)

2014

Adobe Flash Professional CC 2014.1 (14.1)

2014

Adobe Flash Professional CC 2015 (15)

2015

Adobe Animate CC 2015.1 (15.1)

2016

 

Adobe Animate CC 2017 (16)

2017

Приложение 2. История версий ECMAScript [7].

Издание

Дата публикации

Редакторы

1

Июнь 1997

Гай Левис Стил-младший

2

Июнь 1998

Майк Коулисау

3

Декабрь 1999

Майк Коулисау

4

Заброшенный

 

5

Декабрь 2009

Пратап Лакшман, Аллен Вирфс-Брок

5,1

Июнь 2011

Пратап Лакшман, Аллен Вирфс-Брок

6

Июнь 2015

Аллен Вирфс-Брок

7

Июнь 2016

Брайан Терлсон

8

Июнь 2017

 

Приложение 3. Игра “гонка” для демонстрации графических возможностей JavaScript.

Возможности JavaScript

body {

background-color: #ffffff;

}

canvas {

border: thin #000000 solid;

}

var canvas; //Переменная для хранения адреса к холсту

var ctx; //Переменная для хранения контекста рисования для холста

var ob = new Array(); //Массив для хранения препятствий

var pos=400; //Изначальное положение машины (по середине)

window.onload = function() {

canvas = document.getElementById("canvas");

ctx = canvas.getContext("2d");

var frm = setInterval("fr()", 25); //Фунция fr будет повторяться каждые 25 миллисекунд

}

function fr(){

window.addEventListener('mousemove', function(e) {

pos = e.clientX; //Координаты мыши

}, false);

//Ограничение курсора за пределами холста

if(pos>780){

pos=779;

}

else if(pos 393 && ob[i][1] < 405 && Math.abs( pos - ob[i][0]) < 24 ){

clearInterval(fr);

alert("Game over. Go again?");

ctx.clearRect(0,0,800,450);

ob.splice(0, ob.length);

}

//Удаление препятствия

if( ob[i][1] > 460 ){

ob.splice(i, 1);

i--;

}

//Или смещение на 5 пикселей вниз

else {

ob[i][1] = ob[i][1] + 5;

}

}

}