Файл: Современные языки программирования (История развития).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 14.05.2023

Просмотров: 218

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рассмотрим рейтинг языков программирования по версии GitHub, по состоянию на март 2017 года (рис.1).

Рисунок 1

1. Java

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

2. Python

Python — высокоуровневый язык программирования, который часто считается самым легким языком благодаря своей простоте, читаемости и синтаксису. 8 из 10 факультетов информатики в США и 27 из 39 лучших университетов используют Python для обучения студентов программированию.

3. PHP

PHP — это один из наиболее широко используемых языков для разработки динамических веб сайтов. PHP открытый язык разработки, поэтому написаны уже тысячи модулей, которые можно модифицировать до требуемой функциональности. На PHP разработано большинство сайтов, ориентированных на большой объём данных.

4. C#

C# является основным языком для разработки на платформах и сервисах Microsoft. Язык С# позволяет разрабатывать практически любые приложения, которые связаны с Visual Studio IDE. Кроме того, это и один из основных языков для разработки игр на движке Unity.5. JavaScript

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

6. C

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


7. C++

C++ — идеальный выбор для разработки мощного «настольного» программного обеспечения, игр с функцией аппаратного ускорения, а также приложений для ПК, консолей и мобильных устройств, требующих большого объема памяти для работы.

8. Objective-C

Язык является надмножеством языка C (любой C код компилируется Objective-C компилятором). Особенно распространился Objective-C среди разработчиков под платформы Apple. В последнее время теряет популярность на волне подъема языка программирования Swift.

9. R

R — язык программирования системы статистической обработки данных и работы с графикой. Он и сегодня используется для машинного обучения и анализа больших данных.

10. Swift

В 2014 года компания Apple представила собственный язык программирования Swift в качестве замены давнему Objective C. Язык программирования Swift популярен у разработчиков во всём мире как новый, простой и быстрый способ разработки для операционных систем OS X и iOS.

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

1. Java

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

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

Технология Java — это более чем язык программирования, это платформа. Платформа — это аппаратное и (или) программное окружение, в котором работают приложения.

В большинстве языков программирования программа должна быть либо скомпилирована, либо интерпретирована для того, чтобы компьютер мог ее выполнить. Язык Java необычен тем, что программа одновременно и компилируется и интерпретируется. Сначала исходный текст программы компилируется в промежуточный код — (байт-код), который является платформонезависимым и выполняется интерпретатором платформы Java. Компиляция выполняется один раз, при создании программы, а интерпретация — каждый раз при ее выполнении. На первой стадии использование компилятора позволяет выполнить проверку корректности и оптимизацию кода, на второй стадии использование интерпретатора позволяет провести анализ безопасности и трансляцию операций, специфических для конкретного окружения (различных аппаратных платформ и операционных систем). Байт-код является аналогом машинных кодов реальных процессоров для стек-ориентированной виртуальной машины Java. Все интерпретаторы Java являются реализацией этого абстрактного процессора. Следует отметить, что сейчас разрабатываются реальные Java-процессоры, создание которых откроет перед этой технологией новые горизонты. Использование такой архитектуры позволяет реализовать принцип “написано однажды, работает везде” — давнюю мечту программистов — очень близким к реальности. Возможно создавать и компилировать программы на любой удобной платформе, для которой существует компилятор Java, и они будут выполняться на всех платформах, для которых реализована виртуальная машина Java.


В настоящее время пакеты разработчика Java (Java Development Kit, JDK), включающие в себя компилятор, виртуальную машину, прочий инструментарий и исчерпывающую документацию, реализованы для всех основных платформ, включая Windows, Linux, Solaris, MacOS. А клиентские виртуальные машины встраиваются даже в электронные органайзеры и мобильные телефоны.

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

- виртуальной машины Java;

- интерфейса прикладного программирования Java (Java API).

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

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

Достоинства и недостатки Java.

Независимость от архитектуры ЭВМ. Самое большое преимущество Java — его “нейтральность” по отношению к любой архитектуре. Программа, полностью написанная на Java, будет исполняться везде, где есть Виртуальная Java-машина, JVM (Java Virtual Machine). Все оборудование и ОС спрятаны именно там. Разработка системы может вестись на любой удобной платформе, а затем, в зависимости от цены, производительности, имеющейся поддержки либо привязанностей продавца, сгенерированный Java-код, может быть перенесен на любую другую платформу. Единственное, что должны сделать программисты — это изучить язык Java и соответствующие библиотеки классов Java.

Безопасность. В популярной литературе наших дней, особенно если речь заходит об Internet, стало модной темой обсуждение вопросов безопасности. Один из ключевых принципов разработки языка Java заключался в обеспечении защиты от несанкционированного доступа. Программы на Java не могут вызывать глобальные функции и получать доступ к произвольным системным ресурсам, что обеспечивает в Java уровень безопасности, недоступный для других языков.
Система интерпретации и система исполнения Java функционируют таким образом, чтобы Java-программа не смогла нанести какой-либо ущерб пользовательскому компьютеру. Виртуальная Java-машина проверяет каждый байт кода на допустимость, а затем интерпретирует его. И более того, нужно очень потрудиться, чтобы испортить загруженный Java-код. Байтовый код создается таким образом, чтобы директивы типа “записать данные поверх операционной системы” было невозможно выполнить, а те проблемы, которые байтовый код всё же может создать, блокируются виртуальной машиной.


Надежность. Java ограничивает вас в нескольких ключевых областях и таким образом способствует обнаружению ошибок на ранних стадиях разработки программы. В то же время в ней отсутствуют многие источники ошибок, свойственных другим языкам программирования (строгая типизация, например). Большинство используемых сегодня программ “отказывают” в одной из двух ситуаций: при выделении памяти, либо при возникновении исключительных ситуаций. В традиционных средах программирования распределение памяти является довольно нудным занятием — программисту приходится самому следить за всей используемой в программе памятью, не забывая освобождать ее по мере того, как потребность в ней отпадает. Зачастую программисты забывают освобождать захваченную ими память или, что еще хуже, освобождают ту память, которая все еще используется какой-либо частью программы. Исключительные ситуации в традиционных средах программирования часто возникают в таких, например, случаях, как деление на нуль или попытка открыть несуществующий файл, и их приходится обрабатывать с помощью неуклюжих и нечитабельных конструкций (кроме Delphi). Java фактически снимает обе эти проблемы, используя сборщик мусора для освобождения незанятой памяти и встроенные объектно-ориентированные средства для обработки исключительных ситуаций.

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

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

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


Производительность и предсказуемость. Язык Java довольно медленный — в 40 раз медленнее C++. Java — язык медленный, потому что это интерпретатор, потому что он является объектно-ориентированным и потому что это язык с повышенным обеспечением безопасности. Его производительность предсказать трудно, поскольку в нём используется чистка памяти (“сборка мусора”). Размер кода. В целом Java-система очень велика. Создаваемый код довольно велик — Windows-станции для хорошей работы должны иметь хотя бы 20 Мб памяти. Размер программы можно уменьшить, используя динамическую компоновку и подключение классов только в необходимый момент. Конечно, это не позволит исполнять на калькуляторе приложение, разработанное на использование всех ресурсов рабочей станции, однако позволит разрабатывать приложения для работы именно на калькуляторе. В некотором смысле это все-таки нарушает постулат “аппаратной независимости” Java, но только в том, что позволяет Java-приложениям работать там, где в противном случае речь о применении Java не шла бы вовсе.

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

2. Python

Python — активно развивающийся язык программирования, новые версии выходят примерно раз в два с половиной года. Вследствие этого и некоторых других причин на Python отсутствуют стандарт ANSI, ISO или другие официальные стандарты, их роль выполняет CPython.

История создания языка

Разработка языка Python была начата в конце 1980-х годов сотрудником голландского института CWI Гвидо ван Россумом. Распределённой ОС Amoeba требовался расширяемый скриптовый язык для которой Гвидо ван Россум и создал Python. Новый язык позаимствовал некоторые наработки для языка ABC, который был ориентирован на обучение программированию. В феврале 1991 года Гвидо опубликовал исходный текст в ньюсгруппе alt.sources. Название языка произошло не от вида пресмыкающихся. Автор назвал язык в честь популярного британского комедийного телешоу 1970-х «Летающий цирк Монти Пайтона». Тем не менее эмблему языка изображают змеиные головы. После длительного тестирования, вышла первая версия Python 3.0. На сегодня поддерживаются обе ветви развития (Python 3.x и 2.x).