Буценко Никита Олегович
студент Харьковского национального университета радиоэлектроники
г. Харьков
руководитель Голян Вера Владимировна
к.т.н., доцент кафедры Програмной инженерии
Харьковского национального университета радиоэлектроники
г. Харьков
Аннотация: в данной статье автор рассматривает преимущества JavaScript, которые могут быть ключевыми как для начинающих разработчиков, так и для опытных программистов. Автор также приводит данные, касающиеся поддержки элементов данного языка программирования с международных сайтов, посвященных программированию, и проводит анализ читаемости кода, написанного на JavaScript, решая базовые алгоритмические задачи.
Ключевые слова: JAVASCRIPT, АЛГОРИТМЫ, БИБЛИОТЕКИ, ПРОГРАММИСТЫ, ФРЕЙМВОРКИ, ЯЗЫК ПРОГРАММИРОВАНИЯ
До недавнего времени считалось, что JavaScript, равно как и другие составляющие технологии HTML5 – язык разметки HTML и каскадные таблицы стилей CSS – можно было использовать только для создания Интернет-страниц. Если речь шла про создание игр или программ, большинство разработчиков склонялись в этом плане к классическим языкам прикладного программирования C#, Java, или к C/C++ - низкоуровневых языков прикладного программирования, которые используются с целью достижения оптимизации работы программного обеспечения. Игры, которые размещались на WEB-страничках, большей частью были разработаны на платформе Adobe Flash, которая использовала язык программирования ActionScript.
Но каждый из вышеуказанных языков программирования имеет свои существенные недостатки. Разработка игр и приложений на C# и Java требует от программиста не только изучения этих языков, а также и больших библиотек классов, на которые опираются эти языки программирования[1]. C и C++ в связи с их нацеленностью на прямую работу с памятью и процессором являются довольно сложными для изучения и для компилирования. Все эти языки в действительности достаточно эффективны для разработки прикладных приложений, но они объединены одной проблемой: высокий порог входа. Компания Adobe, в свою очередь, заявила о прекращении поддержки Flash в 2020 году, аргументируя свое решение уязвимостью платформы со стороны вредоносного программного обеспечения.
Именно поэтому перед разработчиками встает вопрос о выборе наилучшего языка программирования: эффективного, и в то же время обладающим низким порогом входа. Adobe для интерактивных систем и динамической графики предлагает использовать HTML Canvas – один из нововведенных в HTML5 элементов, который как раз программируется на JavaScript[2]. Большинство опытных разработчиков рекомендуют именно этот язык программирования для создания первых графических программ и игр [3]. Язык разработки JavaScript имеет несколько существенных преимуществ перед классическими языками программирования. Прежде всего, это высокоуровневый язык программирования, что означает динамическую типизацию. Типичные задачи, например приведения числа в строку решаются в JavaScript намного проще, чем в низкоуровневых языках программирования. Вот так, например, решается данная задача в С++:
Алгоритм решения этой же задачи в JavaScript:
Изучив основные алгоритмы, разработчик может написать свою первую графическую программу на JavaScript, используя те средства, что предлагаются HTML5, не используя никаких фреймворков – вот одно из ключевых отличий JS от прочих прикладных языков программирования. Язык JavaScript в комбинации с Canvas является наилучшим инструментом для изучения программирования игр, ведь он функционально достаточен и легок в применении[4].Решение задачи написания физики и графики для игр с применением JavaScript намного проще, чем в классических языках программирования. Если же пользователь хочет создать внешнюю оболочку интернет-сайта, то JavaScrpt и вовсе является безальтернативным вариантом в данной области. Для этого программист должен изучить особенности DOM-модели HTML, что поможет ему в создании frond-end части сайта. Вот так, например, программист может скрыть или развернуть HTML-блок по нажатию кнопки с помощью JS:
В перспективе он также может изучить некоторые фреймворки (наиболее популярный – JQuery), которые облегчают взаимодействия JS с DOM-моделью.
Ключевым преимуществом JavaScript в сравнении с другими языками прикладного программирования является кроссплатформенность созданных приложений. Игры и программы, написанные с помощью JS, выглядят и работают одинаково на всех операционных системах. Единственное требование – наличие современного браузера, который поддерживает HTML5. Это стимулирует разработчиков делиться своими проектами с другими программистами. В отличие от Flash, который не поддерживается разработчиками мобильных ОС, приложения на HTML5 поддерживаются всеми мобильными браузерами. Если программы, написанные на Java, C#, C/C++, Flash требуют заранее установленных Java Runtime Environment, .NET Framework, Visual C++ Redistributable Package или Adobe Flash Player, что может отпугнуть неопытных пользователей, то приложения, разработанные на HTML5, требуют только современный Интернет-обозреватель. Согласно данным сайта www.caniuse.com [рис. 1], около 96% браузеров поддерживают Canvas и прочие элементы HTML5.
Разработав первые программные приложения и игры с использованием элемента Canvas, начинающий разработчик может как изучать другие, более сложные библиотеки для JavaScript, например JQuert, nodeJS, Angular, React и тому подобные, так и овладеть более сложными языками программирования: C#, C/C++ или Java.
Рис. 1. Подробная информация о поддержке элемента Canvas современными браузерами
Литература:
1. Бондарев В.М. Основы программирования.js : учеб. пособ. [Текст]/ В.М. Бондарев. – Х. : ФОП Коряк С. Ф., 2015. – 182 с.
2. https://www.opennet.ru/opennews/art.shtml?num=46916 Adobe прекращает поддержку Flash
3. https://rb.ru/opinion/first-experience/ Какой язык программирования учить первым (если вы в России)?
4.Мак-Дональд М.HTML5. Недостающее руководство.[Текст]/: Пер. с англ. — СПб.:БХВ-Петербург, 2012. — 480 с.