Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Современные языки программирования (Общие понятия языков программирования)

Содержание:

Введение

Неотъемлемой частью нашей жизни стали всевозможные продукты программирования – это смартфоны, планшеты, ноутбуки, компьютеры и т.д. Программирование также задействовано в различных видах производства – станки также требуют программного обеспечения, должны быть правильно настроены и обслужены с точки зрения ПО.

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

Целью моей курсовой работы является изучение материалов по современным языкам программирования, их многообразию, рассмотрение основных понятий, связанных с языками программирования, а также историю их создания, развития и современное использование. Также в своей работе мне хотелось бы подробно разобрать несколько современных языков, таких как Python, Java, JavaScript, PHP, C, C++, а также объектно-ориентированное программирование и типы данных в языках программирования.

Глава 1 Языки программирования

1.1 Общие понятия языков программирования

За последние 70 лет программирование превратилось в обширное направление человеческой деятельности. И в настоящее время наблюдается стремительное развитие программирования. При этом создаются новые языки программирования, появляются новые идеи, увеличивающие мощность и эффективность языков.

Языки программирования – это формальные, предложения которых построены по определенным правилам, искусственные языки, имеющие алфавит, словарный запас, грамматику и синтаксис, а также семантику.

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

Синтаксис – это порядок слов, форма записи; правила построения сообщений, комбинирования символов и слов.

Многие концепции, которые были лишь теоретическими 20 лет назад, сегодня широко применяются на практике. Например, такие функциональные парадигмы как неизменяемость объектов, хвостовая рекурсия и т.д.

Современные языки программирования, такие как С, С++, C#, Java, Python, PHP, JavaScript и другие, до настоящего времени остаются наиболее распространенным и мощным инструментом у программистов, занимающихся разработкой как системного, так и прикладного программного обеспечения. С появлением новых задач и потребностей функциональные возможности этих языков постоянно расширяются путем создания все более совершенных версий.

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

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

Синтаксис языка определяет структуру правильных предложений и слов, а в языке программирования, ко всему прочему, и допустимые структуры текстов программ.

1.2 Классификация языков программирования

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

Рис 1 классификация языков программирования

Языки программирования

процедурные

непроцедурные

декларативные

Высокого уровня (машинно-независимые)

Низкого уровня (машинно-зависимые)

Объектно-ориентированные

Функциональные

логические

Java, C++, Visual Basic, JavaScript, Delphi

Assembler

Fortran, Basic, Pascal, C (машинно-ориентированный)

Lisp

Prolog

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

Низкоуровневые языки предполагают, что ответственность за время загрузки процессора объемы выделяемой памяти и т.п. программист берет на себя. По этой причине языки низкого уровня относятся к «небезопасным»: при написании с их помощью обширных программ, в коде появляется больше ошибок, чем при написании на языках высокого уровня. По этой причине программирование на низкоуровневых языках применяется в основном для создания компактного ПО, например, для программирования систем реального времени, драйверов, управляющих внешними устройствами (принтеры, сканеры и т.п.).

1.3 Программы

Для того чтобы компьютер сделал что-либо, программист должен сказать ему, со всеми подробностями, что именно нужно сделать. Описание того, «что следует сделать», называется программой. Обычно программа пишется для двух аудиторий. Естественно, мы пишем программы для компьютеров, которые будут их выполнять. Однако, много времени проводится за чтением, отладкой и модификацией кода. Таким образом, второй аудиторией для программ являются другие программисты.

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

На самом глубоком уровне компьютер оперирует только цифрами 0 и 1, это так называемый двоичный код, а единицы и нули называются битами, от “binary digit” – “двоичная цифра”. На сегодняшний день, в большинстве случаев, используется один из вариантов юникода UTF8, он включает в себя знаки почти всех языков мира.

Кодировка – набор символов, закодированных с помощью чисел для представления текста в электронном виде.

1.4 Компиляция

Часто, для запуска и выполнения программы, необходимо транслировать ее из текстовой формы, понятной для человека, в машинную форму, понятную компьютеру. Эту функцию выполняет особая программа, которая называется компилятором. То, что изначально пишет программист, называется исходным кодом или текстом программы, а то, что выполняет компьютер, называется выполняемым, объектным или машинным кодом. Файлы с объектным кодом имеют расширение .obj в системе Windows .o в системе Unix. Следовательно, слово код, если не указано иное, подразумевает исходный код без комментариев, так как комментарии предназначены для людей, и компилятор не переводит их в объектный код.

Компилятор читает исходный код и проверяет, является ли программа грамматически корректной. Обнаружив ошибку, компилятор сообщает о ней, не пытаясь выполнить программу.

Простыми словами, компилятор – это программа, считывающая исходный код и транслирует (преобразует) его в объектный или целевой код. Исходный код программы может исчисляться тысячами или даже миллионами строчек кода и чаще всего программисты разбивают программный код на модули, которые находятся в различных файлах. В таком случае одного компилятора не достаточно и для сборки программы используются не менее важные сборщики пакетов.

Рис 2 компиляция и обработка кода

Исходный код

Модифицированная исходная программа

препроцессор

Объектный код

компилятор

Машинный код

машинный код

Библиотечные файлы.

Перемещаемые объектные файлы

Сборщик/компоновщик

Выбор компилятора при разработке программ зависит как от ОС, архитектуры ЭВМ, а также от языка программирования и его версии. Наиболее популярным компилятором при разработке приложений для ОС Windows является MSVC++ разработанный компанией Microsoft. Что же касается Unix подобных систем, то тут чаще всего используется пакет компиляторов GCC.

1.5 Объектно-ориентированное программирование (ООП)

ООП – это подход к разработке программного обеспечения, основанный на объектах, а не на процедурах. Этот подход позволяет максимизировать принципы модульности и “сокрытия информации”.

Чаще всего под обычным программированием понимают процедурное программирование, в основе которого — процедуры и функции. Функция — это мини-программа, которая получает на вход какие-то данные, что-то делает внутри себя и может отдавать какие-то данные в результате вычислений. Представьте, что это такой конвейер, который упакован в коробочку. Процедурное программирование идеально работает в простых программах, где все задачи можно решить, грубо говоря, десятком функций. Функции аккуратно вложены друг в друга, взаимодействуют друг с другом, можно передать данные из одной функции в другую. И если программисту нужно изменить поведение одной функции, то весь код может сломаться. И программисту приходится переписывать все функции. Таких функций могут быть сотни. И каждое изменение, как правило, заставляет функции вести себя более сложным образом и выдавать более сложный результат. И каждое изменение в одном месте ломает три других места. В итоге будут нарождаться десятки клонированных функций, в которых сначала возможно будет разбираться, а потом уже нет. Это называется спагетти-код, и для борьбы с ним как раз придумали объектно-ориентированное программирование.

Основная задача ООП — сделать сложный код проще. Для этого программу разбивают на независимые блоки, которые мы называем объектами.

Объект — это не какая-то космическая сущность. Это всего лишь набор данных и функций — таких же, как в традиционном функциональном программировании. Можно представить, что просто взяли кусок программы и положили его в коробку и закрыли крышку. Вот эта коробка с крышками — это объект. Программисты договорились, что данные внутри объекта будут называться свойствами, а функции — методами. Но это просто слова, по сути это те же переменные и функции.

Объекты характеризуются четырьмя словами: инкапсуляция, абстракция, наследование и полиморфизм.

Инкапсуляция — ограничение доступа к составляющим объект компонентам (методам и переменным). Инкапсуляция делает некоторые из компонент доступными только внутри класса.

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

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

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

Такой подход является основой объектно-ориентированного программирования. Это позволяет работать с объектами, не вдаваясь в особенности их реализации. В каждом конкретном случае применяется тот или иной подход: инкапсуляция, полиморфизм или наследование. Например, при необходимости обратиться к скрытым данным объекта, следует воспользоваться инкапсуляцией, создав, так называемую, функцию доступа или свойство.

Абстракция данных — популярная и в общем неверно определяемая техника программирования. Фундаментальная идея состоит в разделении несущественных деталей реализации подпрограммы и характеристик существенных для корректного ее использования. Такое разделение может быть выражено через специальный «интерфейс», сосредотачивающий описание всех возможных применений программы.

1.6 Функции в языках программирования

Функция — важнейший элемент структурного программирования, позволяющий группировать и обобщать программный код, который может позднее использоваться произвольное число раз. Она является законченной подпрограммой, поэтому у нее есть свои "ввод" и "вывод" — параметры (аргументы) и возвращаемое значение:

Рис 3. функции

Int X

max()

Int Y Int

Int Z

С точки зрения внешней программы функция — это "черный ящик". Функция определяет собственную (локальную) область видимости, куда входят входные параметры, а, также, те переменные, которые объявляются непосредственно в теле самой функции.

Главное, что должно быть можно сделать с функцией — это возможность ее вызвать.

Перед использованием функция должна быть объявлена и соответствующим образом определена.

Объявление (declaration) функции содержит список параметров вместе с указанием типа каждого параметра, а, также, тип возвращаемого функцией значения.

Определение (definition) функции содержит исполняемый код функции.

Вызов функции может встретиться в программе до определения, но обязательно после объявления.

Функции, которые не возвращают значений, иногда называют процедурами.

Функции — это средство проектирования, которое позволяет осуществить декомпозицию программы на достаточно простые и легко управляемые части. Значительно проще написать решение маленьких задач по отдельности, чем реализовать весь процесс целиком. Устранение избыточности программного кода улучшает сопровождаемость кода — если что-то необходимо будет исправить, достаточно будет внести изменения всего в одном месте, а не во многих.

1.7 Переменные, константы

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

Хорошим стилем является осмысленное именование переменных. Разрешается использовать строчные и прописные буквы, цифры и символ подчёркивания. Первым символом обязательно должна быть буква, в имени переменной не должно быть пробелов. В современных версиях компиляторов длина имени практически не ограничена. Имя переменной не может совпадать с зарезервированными ключевыми словами. Заглавные и строчные буквы в именах переменных различаются, переменные a и A — разные переменные.

Если переменная объявлена внутри функции, то и видна она будет только внутри функции, такая переменная называется локальной.

Глобальная переменная задается на весь код. Глобальный код – обычное окружение, в котором код выполняется изначально.

Константа – способ сохранить информацию и дать ей имя для последующего использования в коде. Т.е. это та же переменная, только значение константы нельзя менять.

Глава 2 Язык разметки гипертекста HTML и язык стилей CSS

2.1 История HTML

HTML (Hyper Text Markup Language) – не является языком программирования. Это язык разметки гипертекста. Он позволяет пользователю создавать и структурировать разделы, параграфы, заголовки, ссылки и блоки для веб-страниц и приложений. Он не имеет возможности создавать динамические функции, вместо этого он позволяет создавать и редактировать файл веб-страницы.

HTML был изобретён Тимом Бернесом-Ли, физиком из исследовательского института ЦЕРН в Швейцарии. Он придумал идею интернет-гипертекстовой системы.

Hypertext означает текст, содержащий ссылки на другие тексты, которые зрители могут получить немедленно. Он опубликовал первую версию HTML в 1991 году, состоящую из 18 тегов HTML. С тех пор каждая новая версия языка HTML появилась с разметкой новых тегов и атрибутов (модификаторов тегов).

2.2 Как работает HTML

HTML-документы - это файлы, которые заканчиваются расширением .html или .htm. Браузер читает HTML - файл и отображает его содержимое, чтобы пользователи интернета могли его просматривать. Каждая HTML - страница состоит из набора тегов (также называемых элементами), которые вы можете назвать строительными блоками веб-страниц. Они создают иерархию, которая структурирует контент по разделам, параграфам, заголовкам и другим блокам контента.

HTML является описательным языком разметки документов, в нем используются указатели разметки (теги). Теговая модель описывает документ как совокупность контейнеров, каждый из которых начинается и заканчивается тегами, то есть документ НТМL представляет собой не что иное, как обычный АSСII-файл, с добавленными в него управляющими НТМL-кодами (тегами). Поскольку HTML произошел от SGML, в нем разрешено использовать только три управляющих символа: горизонтальную табуляцию, перевод каретки и перевод строки. Это облегчает взаимодействие с различными операционными системами. Теги НТМL-документов в большинстве своем просты и понятны, ибо они образованы с помощью общеупотребительных слов английского языка, понятных сокращений и обозначений. НТМL-тег состоит из имени, за которым может следовать необязательный список атрибутов тега. Текст тега заключается в угловые скобки ("<" и ">"). Простейший вариант тега — имя, заключенное в угловые скобки, например <HEAD> или <I> . Для ряда тегов характерно наличие атрибутов, которые могут иметь конкретные значения, устанавливаемые автором для изменения функции тега.

2.3 Язык стилей CSS

CSS представляет собой мощную систему, расширяющую возможности дизайна и верстки веб-страниц.

Стилем или CSS (Cascading Style Sheets, каскадные таблицы стилей) называется набор параметров форматирования, который применяется к элементам документа, чтобы изменить их внешний вид. Возможность работы со стилями издавна включают в развитые издательские системы и текстовые редакторы, тем самым позволяя одним нажатием кнопки придать тексту заданный, заранее установленный вид. Теперь это доступно и создателям сайта, когда цвет, размеры текста и другие параметры хранятся в определенном месте и легко «прикручиваются» к любому тегу. Еще одним преимуществом стилей является то, что они предлагают намного больше возможностей для форматирования, чем обычный HTML.

2.4 Типы стилей

Различают несколько типов стилей, которые могут совместно применяться к одному документу. Это стиль браузера, стиль автора и стиль пользователя.

1) Стиль браузера

Оформление, которое по умолчанию применяется к элементам веб-страницы браузером. Это оформление можно увидеть в случае «голого» HTML, когда к документу не добавляется никаких стилей. Например, заголовок страницы, формируемый тегом <H1>, в большинстве браузеров выводится шрифтом с засечками размером 24 пункта.

2) Стиль автора

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

3) Стиль пользователя

Это стиль, который может включить пользователь сайта через настройки браузера. Такой стиль имеет более высокий приоритет и переопределяет исходное оформление документа. В браузере Internet Explorer подключение стиля пользователя делается через меню Сервис > Свойство обозревателя > Кнопка «Оформление»

2.5 Виды веб-сайтов

Рис 4 виды веб-сайтов

Виды веб-сайтов

Landing-page

Корпорати-вные сайты

Форумы

Сервисы и приложения

Информационные

Интернет магазины

Сайты опросники

Сайт визитка

Одностраничный интернет магазин

Глава 3 JavaScript

3.1 История создания

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

Изначально в структуре HTML-документа применялись лишь средства оформления текста, ссылки на прочие веб-документы или графические файлы (изображения). Позднее появилась возможность вставки и проигрывания звуковых файлов и видео-клипов. Однако помимо размещения мультимедиа-контента на веб-странице существовала проблема динамической обработки экспозиции и управления просмотром. Возможностей стандартного HTML не хватало и поэтому возникла необходимость в привлечении иного языка программирования, по своим характеристикам приближенного к стандартным средствам разработки ПО.

Первая версия языка была написана за 10 дней, инженером компании Netscape (сейчас Mozilla) Бренданом Айком, и называлась на тот момент LiveScript. Задачей вновь написанного языка было работать с HTML – документом без перезагрузки страницы. Через некоторое время LiveScript был переименован в JavaScript. Такое название было выбрано не случайно. В то время, собственно как и сейчас, язык Java был очень популярен и приставка Java должна была привлечь больше внимания к новому языку. Маркетинговый ход сработал, люди попробовали и оценили возможности языка. После презентации, в 1995 году, более 20 компаний выразили намерение использовать в своих проектах JavaScript.

Несмотря на то, что JavaScript был рожден в спешке, некоторые мощные особенности были заложены в нем с самого начала. Эти особенности определяли JavaScript как язык и позволили ему перерасти собственные границы, несмотря на все его причуды.

«Решение использовать готовый язык вместо изобретения своего никаким образом не зависело от меня. Установка, поступившая с самых верхов, звучала так: “Язык должен выглядеть как Java”. Это сразу отбросило Perl и Tcl вместе со Scheme. Позже, в 1996 году, к нам зашел Джон Оустерхаунт, чтобы показать Tk и посокрушаться по поводу упущенной возможности для Tcl. Я не горжусь, но я счастлив, что я выбрал в качестве основных ингредиентов функции первого класса по подобию Scheme и прототипное программирование Self. Влияние Java, особенно баги с датами в 2000 году и чувствительность к регистру, стало досадным недоразумением.» - Brendan Eich’s blog: Popularity

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

Современный JavaScript – это «безопасный» язык программирования. Он не предоставляет низкоуровневый доступ к памяти или процессору, потому что изначально был создан для браузеров, не требующих этого.

Возможности JavaScript сильно зависят от окружения, в котором он работает. Например, Node.js поддерживает функции чтения/записи произвольных файлов, выполнения сетевых запросов и т.д.

В браузере для JavaScript доступно всё, что связано с манипулированием веб-страницами, взаимодействием с пользователем и веб-сервером.

Например, в браузере JavaScript может:

  • Добавлять новый HTML-код на страницу, изменять существующее содержимое, модифицировать стили.
  • Реагировать на действия пользователя, щелчки мыши, перемещения указателя, нажатия клавиш.
  • Отправлять сетевые запросы на удалённые сервера, скачивать и загружать файлы (технологии AJAX и COMET).
  • Получать и устанавливать куки, задавать вопросы посетителю, показывать сообщения.
  • Запоминать данные на стороне клиента («local storage»).

Так для чего нужен JavaScript? JavaScript это один из трех языков программирования, который должен знать каждый, кто занимается веб-разработкой. При этом область применения JavaScript не ограничивается веб-приложениями. Многие десктопные и серверные программы также используют JavaScript. Например, программная платформа Node.js, базы данных MongoDB и CouchDB.

3.3 Node.js

Node.js (или просто Node) — это серверная платформа для работы с JavaScript через движок V8. JavaScript выполняет действие на стороне клиента, а Node — на сервере. С помощью Node можно писать полноценные приложения. Node умеет работать с внешними библиотеками, вызывать команды из кода на JavaScript и выполнять роль веб-сервера.

Node появился в 2009 году благодаря Райану Далу. До этого в серверах царил подход «один поток на каждое соединение», а Дал придумал использовать систему, которая ориентирована на события. То есть реагирует на действие или бездействие и выделяет под это ресурс. Главная цель Node — построение масштабируемых сетевых серверов.

3.3.1 Скорость выполнения программ

Одной из основных привлекательных особенностей Node.js является скорость. JavaScript-код, выполняемый в среде Node.js, может быть в два раза быстрее, чем код, написанный на компилируемых языках, вроде C или Java, и на порядки быстрее интерпретируемых языков наподобие Python или Ruby. Причиной подобного является неблокирующая архитектура платформы, а конкретные результаты зависят от используемых тестов производительности, но, в целом, Node.js — это очень быстрая платформа.

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

3.3.2 Асинхронность

В традиционных языках программирования (C, Java, Python, PHP) все инструкции, по умолчанию, являются блокирующими, если только разработчик явным образом не позаботится об асинхронном выполнении кода. В результате если, например, в такой среде, произвести сетевой запрос для загрузки некоего JSON-кода, выполнение потока, из которого сделан запрос, будет приостановлено до тех пор, пока не завершится получение и обработка ответа.
JavaScript значительно упрощает написание асинхронного и неблокирующего кода с использованием единственного потока, функций обратного вызова (коллбэков) и подхода к разработке, основанной на событиях. Каждый раз, когда нам нужно выполнить тяжёлую операцию, мы передаём соответствующему механизму коллбэк, который будет вызван сразу после завершения этой операции. В результате, для того чтобы программа продолжила работу, ждать результатов выполнения подобных операций не нужно.
Подобный механизм возник в браузерах. Мы не можем позволить себе ждать, скажем, окончания выполнения AJAX-запроса, не имея при этом возможности реагировать на действия пользователя, например, на щелчки по кнопкам. Для того чтобы пользователям было удобно работать с веб-страницами, всё, и загрузка данных из сети, и обработка нажатия на кнопки, должно происходить одновременно, в режиме реального времени.
Если вы создавали когда-нибудь обработчик события нажатия на кнопку, то вы уже пользовались методиками асинхронного программирования.
Асинхронные механизмы позволяют единственному Node.js-серверу одновременно обрабатывать тысячи подключений, не нагружая при этом программиста задачами по управлению потоками и по организации параллельного выполнения кода. Подобные вещи часто являются источниками ошибок.
Node.js предоставляет разработчику неблокирующие базовые механизмы ввода вывода, и, в целом, библиотеки, использующиеся в среде Node.js, написаны с использованием неблокирующих парадигм. Это делает блокирующее поведение кода скорее исключением, чем нормой.
Когда Node.js нужно выполнить операцию ввода-вывода, вроде загрузки данных из сети, доступа к базе данных или к файловой системе, вместо того, чтобы заблокировать ожиданием результатов такой операции главный поток, Node.js инициирует её выполнение и продолжает заниматься другими делами до тех пор, пока результаты выполнения этой операции не будут получены.
В браузере и на сервере используются одинаковые концепции языка. Кроме того, в Node.js можно оперативно переходить на использование новых стандартов ECMAScript по мере их реализации на платформе. Для этого не нужно ждать до тех пор, пока пользователи обновят браузеры, так как Node.js — это серверная среда, которую полностью контролирует разработчик. В результате новые возможности языка оказываются доступными при установке поддерживающей их версии Node.js.

3.4 Классификация типов данных

Тип данных – множество данных в коде, разновидность информации. Тип определяет какие операции можно проводить с элементами конкретного множества

В JavaScript существует 7 типов данных, это:

1) Число (number) – числа могут быть как целыми, так и дробными. Существуют специальные значения, которые относятся к данному типу:

А) infinity – можно получить при делении на ноль (бесконечность);

Б) NaN (Not a Number) – можно получить при проведении операции, которая не подлежит математической логике;

Математические операции в JavaScript «безопасны». Мы можем делать что угодно: делить на ноль, обращаться со строками как с числами и т.д.

Скрипт никогда не остановится с фатальной ошибкой (не «умрёт»). В худшем случае мы получим NaN как результат выполнения.

2) BigInt.

В JavaScript существует как максимальное значение числа, с которым можно проводить операции – Max_Safe_Integer = 9007199254740991 или 2е53 – 1, так и минимальное Min_Safe_Integer = - 9007199254740991 или -2е53. Но иногда необходимы числа больше максимального и меньше минимального значения.

Тип BigInt был добавлен в JavaScript, чтобы дать возможность работать с целыми числами произвольной длины.

Чтобы создать значение типа BigInt, необходимо добавить n в конец числового литерала: 1234567891012345678910123456789n

3) Строка (string) – обязательным атрибутом которой являются кавычки, разницы между двойными и одинарными нет.

4) Логический тип данных (boolean) – может принимать только два значения true(правда) и false(ложь).

5) null – Это просто специальное значение, которое представляет собой «ничего», «пусто» или «значение неизвестно».

6) undefined – это когда какой-либо объект существует, но значения не имеет

7) Объект (object) и символ(symbol). Объект – особенный. Все остальные типы называются «примитивными», потому что их значениями могут быть только простые значения (будь то строка или число, или что-то ещё). Объекты же используются для хранения коллекций данных или более сложных объектов. Символ -  используется для создания уникальных идентификаторов объектов.

Примитивные типы данных – простые типы, встроенные в сам язык программирования. Примитивные типы данных в JavaScript поменять нельзя, а заменить значение переменной можно.

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

3.5. Библиотеки и фреймворки JavaScript

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

JavaScript конца 90х – середины 00-ых умел несколько простейших функций, типа: вывести какую-либо информацию всплывающим окном и переключение классов HTML (и то не без труда).

Конечно же, на момент написания данной работы в 2020 году, данный язык умеет фактически все, от работы с фронтенд составляющей сайта и до работы серверной части при помощи Node.js, о котором пойдет речь ниже, вполне обходясь без помощи языков специализирующихся на бэкенд составляющей, вроде Python’а или PHP.

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

 jQuery

Так в 2006 году Джон Резиг (Jhon Resig), человек видящий в данном языке большой потенциал, считая JS простым и изящным языком с большим возможностями представил общественности jQuery, библиотеку на основе JavaScript, расширяющую возможности последнего, сокращая и кодируя бесконечно повторяющиеся куски кода, что позволило упростить работу с данным языком, при этом не беспокоясь о кроссбраузерности.

В основе данной библиотеки лежит девиз: "Программировать на JavaScript должно быть приятно", что вполне оправдывает ее функционал. JQuery берет частые, повторяющиеся задачи, извлекает всю ненужную разметку и делает их короткими, элегантными и понятными.

Работа с этой библиотекой стала для разработчиков настоящим спасением от монотонной работы, это и поспособствовало такой колоссальной популярности данной библиотеки.

У jQuery два главных достоинства.

Первое - это удобный API для манипулирования веб-страницами. В частности, он предоставляет мощные методы для выбора элементов. Выбирать можно не только по ID или классам, jQuery позволяет писать сложные выражения, например, чтобы выбирать элементы на основе их взаимосвязей с другими элементами.

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

Позднее jQuery облегчила внедрение более сложных технологий, таких как анимации и Ajax. Библиотека фактически превратилась в стандартную для веб-сайтов зависимость. И сегодня она обеспечивает работу огромной доли интернета. По подсчетам некоторых изданий, jQuery используют около 74% всех веб-сайтов в интернете.

С годами актуальность этой библиотеки только росла, многие проекты так или иначе используют функционал jQuery, такие как CSS-библиотека Bootstrap от Twitter, CMS Wordpress и Drupal, а также многие другие.

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

Данная библиотека определенно заняла свою нишу в сфере разработки.

Однако прогресс не стоит на месте, в особенности в сфере IT, были созданы более легкие и оптимизированные решения.

 React JS

React – самая популярная библиотека JavaScript для разработки пользовательского интерфейса (UI), созданная Джорданом Валке, разработчиком программного обеспечения из Facebook, в 2013 году.

React позволяет повторно использовать компоненты, которые были разработаны в других приложениях, использующих ту же функцию. Возможность повторного использования компонента является явным преимуществом для разработчиков.

Компонент React создать проще, поскольку он использует JSX , опциональное расширение синтаксиса JavaScript, которое позволяет комбинировать HTML с JavaScript.

JSX – это отличная смесь JavaScript и HTML Оно делает весь процесс написания структуры сайта более понятным. Кроме того, расширение также значительно упрощает рендеринг нескольких функций.

Хотя JSX может быть не самым популярным расширением синтаксиса, оно доказало свою эффективность при разработке специальных компонентов или приложений большого объема.

3.4.3 Vue JS

Vue был создан в 2013 году сотрудником корпорации Google Эваном Ю

Vue - это прогрессивный фреймворк для создания пользовательских интерфейсов. В отличие от фреймворков-монолитов, Vue создан пригодным для постепенного внедрения. Его ядро в первую очередь решает задачи уровня представления что упрощает интеграцию с другими библиотеками и существующими проектами. С другой стороны, Vue полностью подходит и для создания сложных одностраничных приложений (SPA, Single-Page Applications), если использовать его совместно с современными библиотеками.

Глава 4 PHP

4.1 История создания

PHP – один из наиболее популярных языков, используемый для создания веб-приложений. Первоначально PHP расшифровывалось как Personal Home Page – персональная домашняя страница, но потом, с расширением области применения языка, аббревиатура PHP стала расшифровываться как PHP: Hypertext Preprocessor – PHP: гипертекстовый препроцессор. Текущая версия языка предназначена для создания веб-приложений самого широкого назначения (например, на его основе создана известная социальная сеть Facebook)

PHP разработан в 1995 году  был создан Расмусом Лердорфом в 1995 году и представлял собой набор Perl-скриптов для ведения статистики посещений его резюме. Развитие web еще только начиналось, никаких специальных средств для решения этих задач не было, и к автору хлынул поток сообщений с вопросами. Лердорф начал бесплатно раздавать свой инструментарий, названный «Personal Homepages Tools» (PHP) - («Инструменты для персональных домашних страниц»). Очень скоро потребовалась большая функциональность и Расмус пишет новую, намного более обширную версию на C, работающую с базами данных и позволяющую пользователям разрабатывать простейшие web-приложения. Расмус Лердорф решил выложить исходный код PHP/FI на всеобщее обозрение, исправление ошибок и дополнение.

4.2 Работа сценария PHP

Как работает приложение, созданное на основе PHP? Принцип очень похож на тот, что используют обычные, статические веб-страницы, созданные на основе языка HTML. На веб-сервере создается сайт, состоящих из нескольких страниц HTML кода. Посетитель, зашедший на сайт, загружает их в браузере, щелкая на гиперссылки, представленных на этих страницах. Щелчок на ссылки инициирует цепочку операций взаимодействия между компьютером пользователя и веб-сервером – браузер отсылает запрос на веб-сервер, который считывает HTML код запрашиваемой страницы, формирует ответ и отправляет его обратно браузеру. В результате содержимое страницы, отображаемой в ответ на запрос пользователя, будет всегда одним и тем же, т.е веб-страница статична. Такая проблема легко решается средствами языка PHP, позволяющего создавать динамические сайты. С его помощью, при создании веб-страниц, можно включать в них специальный сценарий и передавать сценарию данные, которые он должен использовать при обработке запроса браузера. В отличие от статической, информация на динамическая страница может меняться с течением времени, для этого сценарий PHP постоянно обновляет свои данные, обращаясь к нужным источникам: базам данных, показаниям приборов и т.д.

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

Для создания полнофункциональных PHP сценариев требуется обеспечить сохранение данных на веб-сервере. Это можно организовать сохранением информации в файле, и для простых сценариев такой метод вполне приемлем. Но для сложных, профессиональных сценариев применяются более развитые средства – базы данных, обеспечивающие хранение и извлечение данных любого типа по специальным запросам. Эти запросы формируются на специальном языке, называемом SQL (Structured Query Language – язык структурированных запросов) – это международный стандартный язык для работы с базами данных. Для исполнения запросов на веб-сервере с поддержкой PHP должен быть установлен еще один сервер, который будет воспринимать запросы к базе данных, поступающие из сценария и исполнять их. Таких серверов множество, но в среде разработчиков PHP наиболее популярен MySQL.

4.3 Основы синтаксиса языка PHP

Синтаксис PHP достаточно прост в освоении, а его корни лежат в языках Java, Perl и C. Однако в отличии от этих языков PHP был изначально разработан как язык программирования, специально предназначенный для написания веб-приложений, исполняющихся на веб-сервере. В этом состоит его преимущество, поскольку его средства позволяют быстро и эффективно создавать полнофункциональные веб-приложения.

Другое достоинство PHP – предоставляемая им возможность внедрять свои сценарии в HTML код веб-страниц, что значительно упрощает задачу создания динамических сайтов. Благодаря PHP разработчики могут динамически изменять HTML код страниц в зависимости от действий посетителя сайта.

Глава 5 Java

5.1 История создания

Немногие языки могут похвастаться тем, что им удалось изменить общее представление о программировании. Но и в этой “элитной” группе один язык выделяется среди прочих. Его влияние очень быстро почувствовали все программисты. Речь, конечно же, идет о Java. Не будет преувеличением сказать, что выпуск в 1995 году компанией Sun Microsystems Inc. версии Java 1.0 вызвал настоящую революцию в программировании. В результате Всемирная паутина стала по-настоящему интерактивной средой. Между тем Java установил новый стандарт в разработке языков программирования.

Язык Java был задуман в 1991 году сотрудниками компании Sun Microsystems Джеймсом Гослингом (James Gosling), Патриком Нотоном (Patrick Naughton), Крисом Уортом (Chris Warth), Эдом Фрэнком (Ed Frank) и Майком Шериданом (Mike Sheridan). Сначала этот язык получил имя Oak, но в 1995 году он был переименован в Java. Как ни странно, разработчики языка первоначально не предназначали его для разработки интернет-приложений. Они стремились создать платформенно-независимый язык, на котором можно было бы создавать встраиваемое программное обеспечение для различной бытовой аппаратуры с микропроцессорным управлением, в том числе тостеров, микроволновых печей и пультов дистанционного управления. В таких устройствах применялись контроллеры на микропроцессорах разной архитектуры, а исполняемый код, генерируемый компиляторами большинства существовавших в то время языков программирования, был ориентирован на конкретный процессор.

Со временем Java усовершенствовался. В отличие от многих других языков, в которых новые средства внедрялись относительно медленно, Java всегда находился на переднем крае разработки языков программирования. Одной из причин, позволивших добиться этого, послужило создание вокруг Java плодотворной атмосферы, способствовавшей внедрению новых идей. В результате язык Java постоянно совершенствовался: одни его изменения были незначительными, а другие — весьма существенными.

Java считается одним из самых значительных и широко распространенных языков программирования, поскольку ему принадлежит исключительная роль в разработке приложений для Интернета. Для того чтобы профессионально заниматься разработкой веб-приложений, нужно досконально знать Java. Кроме того, Java принадлежит ведущая роль в программировании смартфонов на платформе Android. Проще говоря, программирование на Java составляет основу большей части современной вычислительной техники.

5.2 Влияние Java на развитие интернета

Развитие Интернета и, в частности, Всемирной паутины (или просто веб) оказало существенное влияние на состояние вычислительной техники. До появления веб в распоряжении большинства пользователей были лишь персональные компьютеры, работавшие независимо друг от друга. В настоящее время почти все они подключены к Интернету, который в свою очередь претерпел существенные изменения. Если первоначально Интернет предоставлял лишь удобную возможность обмениваться информацией в файлах или иным способом, то теперь он превратился в разветвленную среду распределенных вычислений. Подобные изменения привели к появлению нового подхода к программированию, основанного на языке Java.

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

Апплет — это специальная программа на Java, предназначенная для передачи по интернету и автоматического выполнения в среде, формируемой совместимым с Java браузером. Апплет загружается по требованию клиентской программы, а для его передачи по сети вмешательство пользователя не требуется. Если пользователь щелкает на ссылке, указывающей на документ, который содержит апплет, последний будет автоматически скопирован и запущен браузером. Большинство апплетов невелики по размерам. Обычно они служат для отображения информации, предоставляемой серверами, или поддержки ввода данных пользователем. Иногда с их помощью реализуются несложные функции. Например, калькулятор удобнее разместить в виде апплета на стороне клиента, чем выполнять вычисления на стороне сервера. Таким образом, апплет позволяет переносить некоторые функции с сервера на машину клиента.

5.3 Основные свойства Java

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

Простота. Java обладает лаконичными, тесно связанными друг с другом и легко усваиваемыми языковыми средствами.

Безопасность. Предоставляет безопасные средства для создания интернет-приложений.

Переносимость. Программы на Java могут выполняться в любой среде, для которой имеется исполняющая система Java.

Объектно-ориентированный характер. Воплощает современную концепцию объектно-ориентированного программирования.

Надежность. Стимулирует безошибочное программирование благодаря строгому контролю типов и проверкам во время выполнения программ.

Многопоточность. Обеспечивает встроенную поддержку многопоточного программирования.

Архитектурная независимость. Не привязан к конкретному типу вычислительной машины или архитектуре операционной системы.

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

Высокая производительность. Байт-код Java сильно оптимизирован на повышение скорости выполнения.

Распределенность. Разработан для применения в распределенной среде Интернета.

Динамичность. Программы на Java содержат значительную долю информации, используемой во время выполнения для проверки и разрешения доступа к объектам

Глава 6 C(Си) и С++

Сейчас, наверно, невозможно найти в мире специалиста в IT-области, который бы не слышал о языке Си. Этот язык приобрёл огромную популярность во всём мире и оказал значительное влияние на многие другие языки программирования. Именно он является предшественником таких языков, как C++, C#, Java; менее известных (например J#). Компания Microsoft для разработки родного языка к своей платформе .Net выбрала именно Си-подобный синтаксис. Что ни говори, но язык Си серьезно изменил жизнь программистов прошлого века и стал де-факто в области низкоуровневого программирования, оставив Ассемблеру только те места, где производительность имела критическое значение.

6.1 История создания Си

Имена создателей языка — Кен Томпсона и Денис Ритчи.
Язык Си восходит корнями к языку ALGOL (расшифровывается как ALGorithmic Language), который был создан в 1958 году совместно с комитетом Европейских и Американских учёных в сфере компьютерных наук на встрече в 1958 в Швейцарской высшей технической школе Цюриха. Язык был ответом на некоторые недостатки языка FORTRAN и попыткой их исправить.

По поводу возникновения языка Си Питер Мойлан в своей книге «The case against C» пишет: «Нужен был язык, способный обойти некоторые жесткие правила, встроенные в большинство языков высокого уровня и обеспечивающие их надежность. Нужен был такой язык, который позволил бы делать то, что до него можно было реализовать только на ассемблере или на уровне машинного кода.» Си стал именно таким языком. Это обусловило его дальнейшую популярность в таких отраслях программирования, как написание драйверов и прочих аспектах низкоуровневого программирования.
Язык программирования Си был разработан в стенах Bell Labs в период с 1969 по 1973 годы. Как признался сам Ритчи, самый активный период творчества приходился на 1972 год.

В конце 1970-х годов, язык си начал вытеснять BASIC, который в то время был ведущим в области программирования микрокомпьютеров. В 1980-х годах он был адаптирован под архитектуру IBM-PC, что привело к значительному скачку его популярности. В то же время Бьярн Страуструп начал разработку языка программирования, который бы сочетал в себе синтаксис популярного языка Си и концепцию объектно-ориентированного программирования, которая становилась всё более востребованной, так началась разработка языка С++.

6.2 С++

Си++ (англ. C++) — компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования.

Разработка языка началась в 1979 году. Целью создания C++ было дополнение C возможностями, удобными для масштабной разработки ПО, с сохранением гибкости, скорости и портабельности C. Вместе с тем создатели C++ стремились сохранить совместимость с C: синтаксис первого основан на синтаксисе последнего, и большинство программ на C будут работать и как C++. Изначально новый язык назывался “C с классами”, но затем имя было изменено на C++ — это должно было подчеркнуть как его происходжение от C, так и его превосходство над последним.

Первый выпуск C++ для коммерческого использования состоялся в 1985 году, вместе с публикацией книги “The C++ Programming Language”, которая на долгое время стала его неофициальным стандартом. В 1989 году вышла вторая версия языка в сопровождении книги “The Annotated C++ Reference Manual”.

В 1990-х годах язык стал одним из наиболее широко используемых языков программирования общего назначения. Первым официальным стандартом языка стал ISO/IEC 14882:1998, более известный как С++98. В 2003 году была принята его дополненная версия, C++03, а в 2005 году был опубликован “Library Technical Report 1” (сокращенно TR1) — документ, описывающий расширения стандартной библиотеки. TR1 не является стандартом, но большинство актуальных компиляторов C++ поддерживает его. Наконец, в 2011 году был принят текущий стандарт, C++11.

С++ создавался на основе языка С, и при этом до определенного момента сохранял с ним совместимость. Следовательно, С++ вобрал в себя всю скорострельность языка С. C++ используется во всех сферах деятельности программирования: от высоконагруженных систем до программирования микроконтроллеров. На С++ можно написать как web-сервер, так и игры, любые компьютерные программы, компоненты и так далее.

С++ позволяет писать как в процедурном стиле, так и в объектно-ориентированном и функциональном. Так как язык используется всеми крупными компаниями, то они же его и поддерживают — есть целый комитет по стандартизации С++, в который входят все самые крупные ИТ-компании.

По мнению автора языка, различие между идеологией Си и C++ заключается примерно в следующем: программа на Си отражает “способ мышления” процессора, а C++ - способ мышления программиста. Отвечая требованиям современного программирования, C++ делает акцент на разработке новых типов данных наиболее полно соответствующих концепциям выбранной области знаний и задачам приложения. Класс является ключевым понятием C++. Описание класса содержит описание данных, требующихся для представления объектов этого типа и набор операций для работы с подобными объектами. • В отличие от традиционных структур Си и Паскаля, членами класса являются не только данные, но и функции. Функции – члены класса имеют привилегированный доступ к данным внутри объектов этого класса и обеспечивают интерфейс между этими объектами и остальной программой. При дальнейшей работе совершенно не обязательно помнить о внутренней структуре класса и механизме работы встроенных функций. В этом смысле класс подобен электрическому прибору – мало кто знает о его устройстве, но все знают, как им пользоваться. Язык С++ является средством объектного программирования, новейшей методики проектирования и реализации программ, которая в текущем десятилетии, скорее всего, заменит традиционное процедурное программирование. Главной целью создателя языка доктора Бьерна Страустрапа было оснащение языка С++ конструкциями, позволяющими увеличить производительность труда программистов и облегчить процесс овладения большими программными продуктами.

Заключение

Подведя итоги выбранной мной темы курсовой работы, должна отметить что языки программирования на данный момент прочно закрепились в нашей повседневной жизни, во всех сферах деятельности, при этом в ближайшей перспективе это влияние будет только расти, так как прогресс не стоит на месте и будущее за автоматизацией всех процессов. На это и рассчитано объектно-ориентированное программирование, которое является на данный момент ведущей и многообещающей отраслью языков программирования. Уже сейчас ситуация на рынке кадров показывает насколько остро стоит необходимость в данных специалистах. Рынок разработки программного обеспечения сегодня постоянно меняется. Приходят новые технологии, изменяются подходы к разработке, тестируются новые инструменты. Сложно предположить, как может измениться индустрия ПО через год или 10 лет, уйдут ли текущие языковые инструментарии в прошлое или останутся на долгие годы.  Стоит отметить, что единого универсального языка программирования не существует, по сути, все они являются проблемно-ориентированными. Так, есть системные языки, прикладные, для быстрой разработки, для научно-исследовательской деятельности и т.д. Другими словами, язык – это выразительное средство, инструмент, с помощью которого разработчики могут решить ту или иную задачу.

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

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

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

Список использованной литературы

1) «РНР для начинающих» - СПб 2014г А. Жадаев;

2) «Системы автоматизации разработки программного обеспечения» Н.А.Соловьев, Е.Н. Чернопрудова;

3) «Теоретические основы разработки и реализации языков программирования» М.М. Гавриков, А.Н. Иванченко, Д.В. Гринченков;

4) «JavaScript сильные стороны» 2012г Дуглас Крокфорд;

5) «Python на практике» 2016г Марк Саммерфилд;

6) «Java серверные приложения» 2010г Р.Р. Мухаметзянов;

7) «Основы программирования на языке С/С++» 2007г М.Ю. Барышникова, А.В. Силантьева;

8) geekbrains.ru

9) habr.ru

10) learn.javascript.ru - «Современный учебник Javascript»

11) letpy.com – Онлайн курс программирования по Python

12 ) javarush.ru – Онлайн курс обучения программирования на Java

ПРИЛОЖЕНИЕ А

Рейтинг языков программирования на 2019 год

17.8%

Java

JavaScript

14%

17.7%

C#

12%

PHP

10.9%

Python

6.5%%

C++

2.9%

TypeScript

2.9%

Swift

2.9%

Ruby

2.9%

Kotlin

1.8%

Go

1.6%

C

1.5%

Scala

0.9%

1C

0.6%

Pascal

0.6%

SQL

ПРИЛОЖЕНИЕ Б

Фреймворки языков программирования

Language-Table-1-1024x710.png