Файл: Современные языки программирования (ИСТОРИЯ И ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ).pdf
Добавлен: 29.03.2023
Просмотров: 454
Скачиваний: 2
Изменение синтаксиса языка Java Project Coin — частичные изменения в языке Java, предназначенные для упрощения общих задач программирования:
Использование класса String в блоке switch.
Закрытие используемых ресурсов в блоке try «try-with-resources» — работает при использовании интерфейса AutoClosable.
Объединённая обработка исключений в блоке catch «multi - catch
exceptions» — перечисление обрабатываемых исключений в catch.
Повторное выбрасывание исключений (rethrowing exceptions) — передача возникшего исключения «вверх» по стеку вызовов.
Подчёркивания в числовых литералах для лучшего восприятия больших чисел.
Изменение вывода типа в Java generic при создании объекта.
Использование двоичных чисел (binary literals) — префикс 0b укажет, что используется двоичное число.
Упрощение вызова методов varargs — уменьшение предупреждений при вызове метода с переменным числом входящих переменных.
Модификация загрузчика классов (class-loader) — избежание тупиковых ситуаций в неиерархической топологии загрузки классов.
Закрытие ресурсов, открытых URLClassLoader.
Обновление коллекций JSR 166.
Поддержка Unicode 6.0.
Отделение языка пользователя и языка пользовательского интерфейса — обновление обработки языков для отделения локали от языка пользовательского интерфейса.
Новые интерфейсы I/O для платформы Java (nio.2).
Использование JDBC 4.1 и Rowset 1.1.
Java SE 8
Релиз версии состоялся 19 марта 2014 года. Кодовое имя Octopus.
Полноценная поддержка лямбда-выражений.
Ключевое слово default в интерфейсах для поддержки функциональности по умолчанию.
Статические методы в интерфейсах.
Ссылки на методы и конструкторы.
Функциональные интерфейсы предикаты, поставщики и т. д.)
Потоки «stream» для работы с коллекциями.
Новый API для работы с датами.
Java SE 9
В связи со сложностями в реализации модульной системы в рамках проекта Jigsaw, релиз версии, первоначально запланированный 22 сентября 2016 года, несколько раз откладывался: сначала дата была перенесена на 23 марта 2017 года, потом — на 27 июля 2017 года, а затем — на 21 сентября 2017 года.
Последняя дата стала официальной датой релиза версии.
Интеграция Jigsaw, в рамках которого разработана модульная система для платформы Java 9 и применена к JDK 9.
Обновление Process API для улучшения взаимодействия с процессами операционной системы. Обновление мотивировано тем, что разработчикам зачастую приходилось писать платформозависимый код для таких задач.
Временно экспериментальный новый HTTP-клиент с поддержкой HTTP/2 и веб-сокетов; предназначен заменить устаревший класс HttpURLConnection.
Сжатые строки: если содержимое строки позволяет, она может кодироваться в Latin-1 (один байт на символ); выбор кодировки конкретного экземпляра класса String отображается в значении переменной-флага, которая теперь есть у всех строк.
Поддержка указанных в NIST FIPS 202 алгоритмов хеширования SHA-3, кроме SHAKE128 и SHAKE256. Алгоритмы использования SHA-3 в качестве основы для других криптографических функций не реализованы в силу отсутствия соответствующих стандартов.
Улучшены средства для пометки, устаревшего API. В аннотацию @Deprecated добавлен параметр, позволяющий указывать версию программы, с которой использование отмеченного элемента не рекомендуется, а также — параметр, позволяющий указать, что запланировано удаление элемента в какой-либо из будущих версий.
Поддержка GTK+ 3 на Linux.
Java SE 10
Дата релиза: 20 марта 2018 года.
Вывод типов локальных переменных, помеченных с помощью ключевого слова var.
Создание прозрачного интерфейса сборщика мусора для упрощения разработки новых сборщиков.
Уменьшено время задержек многопоточного сборщика мусора G1 за счёт реализации параллельного полного цикла сборки мусора.
Возможность выполнять функции обратного вызова на потоках, не делая глобальных блокировок в рамках всех потоков.
Поддержка символов из новых расширений Unicode: cu (тип валюты), fw (первый день недели), rg (двухбуквенные коды стран и регионов), tz (часовой пояс).
HotSpot VM теперь может выделять память массивов для объектов на альтернативных устройствах оперативной памяти, в том числе тех, которые обладают энергонезависимой памятью, как, например, накопители Intel Optane Memory.
Новый экспериментальный JIT-компилятор Graal, предоставляющий возможности Ahead-of-Time компиляции; по умолчанию отключён, работает только на Linux/x64.
Обновление системы нумерации версий Java SE и JDK с целью приближения к схеме управления версиями по времени.
Java SE 11
Дата релиза — 25 сентября 2018 года.
Обновление системы управления доступом, позволяющее вложенным классам обращаться к закрытым «private» методам и полям внешнего класса и наоборот, без необходимости создания компилятором промежуточных методов с повышением уровня доступа.
Epsilon — новый сборщик мусора, собственно сборкой мусора не занимающийся вообще; при использовании Epsilon превышение предела выделяемой памяти приводит к завершению работы JVM.
Стандартизирован клиент HTTP с поддержкой HTTP/2, введённый в Java 9 как экспериментальный.
Параметры лямбда-функций могут быть неявно типизированы путём вывода типов через ключевое слово var для унификации с синтаксисом локальных переменных, введённым в JDK 10.
Поддержка 10-й версии стандарта Unicode.
Поддержка протокола TLS 1.3.
Экспериментальный масштабируемый сборщик мусора ZGC с низкими задержками. По умолчанию отключён, работает только на Linux/x64. [11,12,13]
2.3 PHP
PHP – это широко используемый язык сценариев общего назначения с открытым исходным кодом.
Говоря проще, PHP это язык программирования, специально разработанный для написания web-приложений (сценариев), исполняющихся на Web-сервере.
Аббревиатура PHP означает Hypertext Preprocessor «Препроцессор Гипертекста». Синтаксис языка берет начало из C, Java и Perl. PHP достаточно прост для изучения. Преимуществом PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц.
Важным преимуществом языка PHP перед такими языками, как языков Perl и C заключается в возможности создания HTML документов с внедренными командами PHP.
Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. Вы даже можете сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта.
PHP позволяет создавать качественные Web-приложения за очень короткие сроки, получая продукты, легко модифицируемые и поддерживаемые в будущем.
PHP прост для освоения, и вместе с тем способен удовлетворить запросы профессиональных программистов.
Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминирование в области языков web -программирования, по крайней мере, в ближайшее время.
В 1994 году датский программист Расмус Лердорф разработал на C набор CGI-скриптов для учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page Tools «Инструменты для Личной Домашней Страницы». Вскоре функциональности перестало хватать, и Лердорф разработал новый интерпретатор шаблонов PHP/FI, аббревиатура расшифровывается как Personal Home Page / Forms Interpreter — «персональная домашняя страница / интерпретатор форм».
В области веб-программирования, в частности серверной части, PHP — один из популярных сценарных языков.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств и дополнительных модулей для разработки веб-приложений. Основные из них:
автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
взаимодействие с большим количеством различных систем управления базами данных через дополнительные модули MySQL, MySQLi, SQLite, PostgreSQL, Oracle OCI8, Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO, Redis;
автоматизированная отправка HTTP-заголовков;
работа с HTTP-авторизацией;
работа с cookies и сессиями;
работа с локальными и удалёнными файлами, сокетами;
обработка файлов, загружаемых на сервер;
работа с XForms.
В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в мае 2016 года PHP находился на 6 месте среди языков программирования.
Входит в LAMP — распространённый набор программного обеспечения для создания и хостинга веб-сайтов Linux, Apache, MySQL, PHP.
Версии PHP
Personal Home Page (PHP Tools) version 1.0
8 июня 1995 года, вышел Personal Home Page (PHP Tools) version 1.0 — первый публичный релиз.
PHP/FI 2.0
В 1997 году после длительного бета-тестирования вышла вторая версия обработчика, написанного на C — PHP/FI 2.0. Её использовали около 1 % приблизительно 50 тысяч всех интернет-доменов мира.
PHP 3.0
Версия PHP 3.0 подверглась значительной переработке, определившей современный облик и стиль языка программирования. В 1997 году два израильских программиста, Энди Гутманс и Зеев Сураски, полностью переписали код интерпретатора. PHP 3.0 был официально выпущен в июне 1998 года.
Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра дополнительными модулями. Впоследствии интерфейс написания расширений привлёк к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количеством баз данных, протоколов, поддерживать большое число API. Большое количество разработчиков привело к быстрому развитию языка и стремительному росту его популярности. С этой версии акроним php расшифровывается как «PHP: hypertext Preprocessor», вместо устаревшего «Personal Home Page».
PHP 4.0
К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зеев Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP. Новый движок, названный Zend Engine, успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принёсший с собой набор дополнительных функций, официально вышел в мае 2000 года. В дополнение к улучшению производительности, PHP 4.0 имел ещё несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки, вводимой пользователем информации и несколько новых языковых конструкций.
PHP 5.0
Пятая версия PHP была выпущена разработчиками 13 июля 2004 года. Изменения включают обновление ядра Zend «Zend Engine 2», что существенно увеличило эффективность интерпретатора. Введена поддержка языка разметки XML. Полностью переработаны функции ООП, которые стали во многом схожи с моделью, используемой в Java. В частности, введён деструктор, открытые, закрытые и защищённые члены и методы, окончательные члены и методы, интерфейсы и клонирование объектов. В последующих версиях также были введены пространства имён, замыкания и целый ряд достаточно серьёзных изменений, количественно и качественно сравнимых с теми, которые появились при переходе на PHP 5.0.
PHP 6.0 «PHP 5.4»
Шестая версия PHP разрабатывалась с октября 2006 года. Было сделано множество нововведений, как, например, исключение из ядра регулярных выражений POSIX и «длинных» суперглобальных массивов, удаление директив safe_mode, magic_quotes_gpc и register_globals из конфигурационного файла php.ini. Одним из основных новшеств должна была стать поддержка Юникода. Однако в марте 2010 года разработка PHP6 была признана бесперспективной из-за сложностей с поддержкой Юникода. Исходный код PHP6 перемещён на ветвь, а основной линией разработки стала версия 5.4.
PHP 7
В 2014 году было проведено голосование, по результатам которого следующая версия получила название PHP 7. Выход новой версии планировался в середине октября 2015 года. В марте 2015 года Zend представили инфографику, в которой описаны основные нововведения PHP 7.
3 декабря 2015 года было объявлено о выходе PHP версии 7.0.0.
Новая версия основывается на экспериментальной ветви PHP, которая изначально называлась phpng «PHP Next Generation — следующее поколение», и разрабатывалась с упором на увеличение производительности и уменьшение потребления памяти. В новой версии добавлена возможность указывать тип возвращаемых из функции данных, добавлен контроль передаваемых типов для данных, а также новые операторы. [17]
2.4 JavaScript
JavaScript — мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили. Является реализацией языка ECMAScript.
JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит
в браузерах как язык сценариев для придания интерактивности веб-страницам.
Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.