Файл: Обзор языков программирования высокого уровня (Понятие о программном обеспечении).pdf
Добавлен: 31.03.2023
Просмотров: 376
Скачиваний: 2
Например, в браузере JavaScript может:
– Добавлять новый HTML-код на страницу, изменять существующее содержимое, модифицировать стили.
– Реагировать на действия пользователя, щелчки мыши, перемещения указателя, нажатия клавиш.
– Отправлять сетевые запросы на удалённые сервера, скачивать и загружать файлы (технологии AJAX и COMET).
– Получать и устанавливать куки, задавать вопросы посетителю, показывать сообщения [14].
– Запоминать данные на стороне клиента («local storage»).
Возможности JavaScript в браузере ограничены ради безопасности пользователя. Цель заключается в предотвращении доступа недобросовестной веб-страницы к личной информации или нанесения ущерба данным пользователя [10].
Примеры таких ограничений включают в себя:
– JavaScript на веб-странице не может читать/записывать произвольные файлы на жёстком диске, копировать их или запускать программы. Он не имеет прямого доступа к системным функциям ОС.
– Современные браузеры позволяют ему работать с файлами, но с ограниченным доступом, и предоставляют его, только если пользователь выполняет определённые действия, такие как «перетаскивание» файла в окно браузера или его выбор с помощью тега <input>.
– Существуют способы взаимодействия с камерой/микрофоном и другими устройствами, но они требуют явного разрешения пользователя. Таким образом, страница с поддержкой JavaScript не может незаметно включить веб-камеру, наблюдать за происходящим и отправлять информацию в ФСБ [6].
– Различные окна/вкладки «не знают» друг о друге. Иногда одно окно, используя JavaScript, открывает другое окно. Но даже в этом случае JavaScript с одной страницы не имеет доступа к другой, если они пришли с разных сайтов (с другого домена, протокола или порта).
Это называется «Политика одинакового источника» (Same Origin Policy). Чтобы обойти это ограничение, обе страницы должны согласиться с этим и содержать JavaScript-код, который специальным образом обменивается данными [13].
Это ограничение необходимо, опять же, для безопасности пользователя. JavaScript может легко взаимодействовать с сервером, с которого пришла текущая страница. Но его способность получать данные с других сайтов/доменов ограничена. Хотя это возможно в принципе, для чего требуется явное согласие (выраженное в заголовках HTTP) с удалённой стороной. Опять же, это ограничение безопасности.
Подобные ограничения не действуют, если JavaScript используется вне браузера, например — на сервере. Современные браузеры предоставляют плагины/расширения, с помощью которых можно запрашивать дополнительные разрешения [4].
JavaScript сам по себе довольно компактный, но очень гибкий. Разработчиками написано большое количество инструментов поверх основного языка JavaScript, которые разблокируют огромное количество дополнительных функций с очень небольшим усилием. К ним относятся:
Программные интерфейсы приложения (API), встроенные в браузеры, обеспечивающие различные функциональные возможности, такие как динамическое создание HTML и установку CSS стилей, захват и манипуляция видеопотоком, работа с веб-камерой пользователя или генерация 3D графики и аудио сэмплов [8].
Сторонние API позволяют разработчикам внедрять функциональность в свои сайты от других разработчиков, таких как Twitter или Facebook.
Также вы можете применить к вашему HTML сторонние фреймворки и библиотеки, что позволит ускорить создание сайтов и приложений.
2.6. Язык Python
В 1989 году сотрудник голландского института, тогда мало кому известный Г. ван Россум взял участие в проекте создания ЯП ABC. Язык предназначался для замены языка программирования BASIC, для обучения основным концепциям программирования.[4]
В результате ученый в течении пары недель на своем домашнем ПК написал интерпретатор другого языка, для чего он позаимствовал некоторое количество прогрессивных идей того времени из ABC. После этого Гвидо начал его распространять созданный ЯП через Интернет.
На ранних этапах создания подключился довольно известный в то время эксперт Стив Маевский, который до 1995 года вел блог "Сравнительная критика ЯП".
Язык стал стремительно развиваться, поскольку в результате его распространения появилось большое количество понимающих и заинтересованных в развитии ЯП людей. Сначала это был простой язык, небольшой интерпретатор, который имел некоторое количество функций. При чем не было в нем поддержки объектно-ориентированного программирования (ООП), но все это было быстро исправлено [14].
Уже в 1990 году появились самые первые средства для обеспечения объектно-ориентированной парадигмы.
Через некоторое время Г. ван Россум переехал в Америку. Его пригласили на работу в корпорацию CNRI, где он и использовал Python для проектов, которыми занималась корпорация.
Так это продолжалось до изобретения в 1998 г. версии 1.5.1, когда в жизни Гвидо начались пертурбации [11].
Корпорация, где он работал, оставляла ему очень мало времени на развитие Питона, а это ученого перестало устраивать.
В результате он оказался довольно преданным фанатом собственного языка. К тому времени сложилось немалое сообщество интернет-пользователей, которым очень нравился данный язык.
Гвидо решил пожертвовать зарплатой и начал искать спонсора, который позволял бы ему работать над развитием интерпретатора и языка. Образовавшаяся в то время фирма под названием BeOpen решила его поддержать [6].
Версия 2.0 – довольно большой шаг вперед, хотя в первую очередь это можно констатировать в социальном плане. В данной версии самое главное, что такой процесс развития ЯП и интерпретатора стал намного открытее. Гвидо перевел все составные части языка на SourceForge.
Сам процесс развития всех версий стал виден большему количеству пользователей. Сообщество пользователей выросло, оно стало требовать предоставления возможности участия для развития языка, и Гвидо пошел на это [11].
Кроме казанной активности произошло еще много чего нового и интересного в развитии ЯП:[16]
– появился Юникод;
– появился новый инструмент регулярных выражений, что работает как для классических строк, так и для формата Юникод.
Через некоторое время в BeOpen начались большие проблемы, а ученый опять уволился и опять начал искать место, где бы мог развивать язык, не обращая никакого внимания на коммерческие проблемы.
В результате в рассматриваемом ЯП появилась иерархия: можно было вкладывать функции друг в друга, так, чтобы они имели доступ к переменным функций, а это является большим шагом вперед.
Язык программирования Python – очень мощный инструмент для проектирования программ самого разного назначения, доступный для новичков. С его применением можно решать задачи самых различных типов: от написания консольных программ до создания синтаксических анализаторов текста.
Язык Python обладает примечательными особенностями, которые могут обуславливать его широкое распространение. В результате, прежде чем начать описание синтаксиса Python, следует рассказать также о его недостатках и достоинствах.
Поскольку Python является интерпретируемым языком программирования, то, с одной стороны, это дает возможность значительно упростить процесс отладки программ, но с другой – обуславливает низкую скорость ее выполнения.[12]
– Динамическая типизация данных – не надо заранее выполнять объявление типа переменной.
– Хорошая поддержка модульности. Вы можете легко написать свой модуль и использовать его в других программах.
– Встроенная поддержка формата Unicode в строках. Для Python необязательно писать код на английском языке, в программе может вполне использоваться другой язык [4].
– Поддержка ООП. При этом реализация его в Python является одной с самых понятных по сравнению с другими языками.
– Автоматическая сборка мусора, а также отсутствие утечек памяти при выполнении программ.
– Интеграция с языками C/C++, если возможностей Python будет недостаточно [11].
– Понятный синтаксис, который способствует ясному отображению программного кода. Удобная система таких функций позволяет при грамотном подходе реализовывать код, в котором легко можно разобраться другому человеку при необходимости.
– Огромное количество модулей (входящих в классическую поставку Python, так и сторонних). В некоторых случаях при написании программы достаточно только найти подходящие модули, а потом правильно их скомбинировать.
– Кроссплатформенность. Программа, которая написана на Python, будет работать совершенно одинаково на зависимо от того, в какой именно операционной системе ее запустить. Отличия возникают только в редких случаях, но их легко заранее можно предусмотреть благодаря наличию документации. [8]
Последние десятилетия все программисты озабочены тем фактом, что нужно тратить меньше времени на непосредственное освоение новой информации, а также создание алгоритмов и других уникальных решений. Язык программирования Python – высший код современного этапа развития программирования, который активно применяется специалистами при создании приложений.
О рассматриваемом ЯП есть уже масса положительных отзывов, поэтому определить его недостатки очень проблематично. Единственным недочетом считают небольшую медлительность в процессе выполнении алгоритма при его сравнении с Java и иными языками программирования. Но зато ЯП Python является интерпретируемым. Если же программа достойна внимания, то разные ее участки можно быстро подкорректировать. Над улучшением работы Python трудятся специалисты, которые учли уже его незначительные недочеты, а также могут внести некоторые адекватные исправления [5].
Сегодня пользователи располагают доступом к двум версиям синтаксической системы Python.
Стоит отметить, что в ЯП присутствуют очень многие модули для его расширяемости.
Эти модули чаще всего пишутся на языке С, а также могут быть разработаны и на Python [8].
Приведем в качестве примера следующие модули:
– Numerical Python – математические возможности, к примеру, манипуляции с матрицами;
– Tkinter – построение приложений графического пользовательского интерфейса на базе распространенного на Windows программного интерфейса;[3]
– OpenGL – это применение обширной библиотеки графического моделирования для трехмерных объектов компании Silicon Graphics Inc. Данный стандарт, в этом числе, поддерживается при таких распространенных и популярных ОС как Windows, Windows Server.
Все имеющиеся переносимые и кроссплатформенные языки программирования могут быть реализованы на одной специфике: для них среда разработки будет похожей на разнообразных платформах [9].
Выполним описание основных средств для создания ПО на языке Python.
Eclipse применяется при написании программ на многих ЯП. Например, на Java. Это приложение достаточно универсальное и освоив его раз разумно применять его и в дальнейшем программировании [4].
Обратная сторона универсальности кроется в бесчисленном количестве плагинов, которые позволяют настроить Eclipse для разрешения практически любой задачи. Все это служит поводом для критики, поскольку среда сильно «раздута» и её итоговая производительность на слабых ПК не слишком высока [15].
Рисунок 9 – Интерфейс Eclipse
Для эффективной работы с ЯП Python служит применение плагина PyDev, добавляющий данной среде много возможностей, которые выходят за рамки классической подсветки синтаксиса.
Каждому пользователю доступны продолжение и анализ программного кода, отладчик, интерактивные консоли и другие функции.[6]
Как сама IDE, так плагин PyDev распространены по лицензии Eclipse Public License.
IDE Eric написана на основе Qt, а также включает в себя целый ряд относительно независимых программных модулей: интерпретатор языка, непосредственно редактор, графический отладчик и другие части. Модульная структура позволяет разработчику не устанавливать ненужные заведомо для работы программные компоненты [13].
Приложение поддерживает множество плагинов, устанавливать которые можно непосредственно с рабочей среды.
Eric в себя включает функцию предварительного просмотра, поэтому может эффективно применяться для разработки оболочек для разнообразных программных приложений. Успешное развитие данной среды делает эту возможность актуальной и востребованной в наше время.[9]
Интерфейс среды показан на рисунке 10:
Рисунок 10 – Программная среда Eric
PyCharm – это коммерческий продукт, который имеет и версию Community, распространяемая бесплатно. По возможностям программа явно не уступает существующие аналоги [13].
Она предоставляет пользователю разные средства отладки, анализатор программного кода и инструментарий запуска тестов.
В версии программы можно также активировать режим встроенного процесса отладки. При этом значения переменных и параметров доступны непосредственно в окне написания кода. [18]