Добавлен: 28.03.2023
Просмотров: 310
Скачиваний: 1
Для нашего исследования необходимо выбрать только высокоуровневые языки из рейтинга GitHub, ими являются:
- JavaScript
- Python
- Java
- PHP
- C#
- C++
- TypeScript
- Ruby
До сих пор ведутся споры к какому классу необходимо относить язык C:
к низкоуровневым или высокоуровневым языкам программирования? Общепризнанного определения низкоуровневого языка до сих пор не существует. Американский ученый в области компьютерных технологий и первый лауреат премии Тьюринга Алан Перлис дал такое определение: “Язык программирования является низкоуровневым, если написанные на нем программы требуют внимания к несущественному”.[4]
Тем не менее, большинство программистов сходятся во мнении, что C - язык программирования низкого уровня. В нашей научной работе мы исключим язык C из списка высокоуровневых языков.
JavaScript
Язык программирования JavaScript был разработан Бренданом Айком из компании Netscape Communications Corporation в 1995 году. Создатель языка имел серьезный опыт в информатике, и он заложил в JavaScript сложные и передовые идеи, тем не менее первая разработка была “сырой” и критики порицали недостатки предварительного планирования во время его разработки. “...он (JavaScript) опередил время, и потребовалось 15 лет, чтобы этот замечательный язык завоевал популярность у ведущих разработчиков”[5]. До официального названия “JavaScript”, в Netscape Navigator 1995 года язык назывался сначала “Mocha”, а затем “LiveScript”. Наличие приставки “Java” не случайно – таким образом создатель языка использовал славу стремительно набиравшего популярность языка Java.
JavaScript поддерживает несколько парадигм программирования: функциональный, императивный и объектно-ориентированный. На синтаксис языка большое влияние оказали языки Java и C. При создании языка, перед Бренданом Айком была поставлена задача внедрить в браузер Netscape язык Scheme – один из наиболее популярных диалектов Lisp. Таким образом, можно считать, что Lisp тоже оказал свое влияние на JavaScript.
Язык имеет большую популярность среди разработчиков веб-приложений, так как чаще всего используется для взаимодействия с браузером. Последнее время, JavaScript используется и для разработки десктопных приложений. На JavaScript-фреймворке Electron написаны такие известные приложения, как: Slack Desktop, WhatsApp Desktop, VSCode. Также, JavaScript набирает популярность и в серверной разработке благодаря программной платформе Node.js.
Python
Python – высокоуровневый язык программирования общего назначения с динамической типизацией, автоматическим управлением памятью, поддержкой многопоточных вычислений и удобными структурами данных.[6]
Python имеет широкое применение благодаря следующим особенностям: качество программного обеспечения, высокая скорость разработки, переносимость программ, библиотеки поддержки, интеграция компонентов.
Качество программного обеспечения. Программный код на языке Python читается легче, а значит, многократное его использование и обслуживание выполняется гораздо проще, чем использование программного кода на других языках сценариев.
Высокая скорость разработки. Объем программного кода на языке Python обычно составляет треть или даже пятую часть эквивалентного программного кода на языке C++ или Java. Это означает меньший объем ввода с клавиатуры, меньшее количество времени на отладку и меньший объем трудозатрат на сопровождение.[7]
Переносимость программ. Большая часть программ на языке Python выполняется без изменений на всех основных платформах. Перенос программного кода из операционной системы Linux в Windows обычно заключается в простом копировании файлов программ с одной машины на другую.
Библиотеки поддержки. В стандартную библиотеку Python входит большое число собранных и переносимых функциональных возможностей, начиная от поиска текста по шаблону и заканчивая сетевыми функциями.
Интеграция компонентов. Сценарии Python легко могут взаимодействовать с другими частями приложения благодаря различным механизмам интеграции. На сегодняшний день программный код на этом языке программирования имеет возможность вызывать функции из библиотек на языке C/C++, интегрироваться с программными компонентами на языке Java, взаимодействовать с такими платформами, как COM и .NET и производить обмен данными через последовательный порт или по сети с помощью таких протоколов, как SOAP, XML-RPC и COBRA.
Тем не менее, очевидный недостаток языка Python – это скорость выполнения программ, которая не всегда может быть такой же высокой, как у программ, написанных на компилируемых языках программирования, таких как C или C++.
Java
Java - объектно-ориентированный язык программирования со строгой типизацией. Язык Java тесно связан с языком C++, который, в свою очередь, является прямым наследником языка C. От C язык Java унаследовал свой синтаксис, а многие его объектно-ориентированные свойства были перенесены из C++.
Начало разработке языка Java было положено в 1991 г. Джеймсом Гослингом, Патриком Нотоном, Крисом Уартом, Эдом Франком и Майком Шериданом, работавшими в компании Sun Microsystems, Inc. Как ни странно, первоначальной побудительной причиной для создания языка Java послужил совсем не Интернет, а потребность в независящем от конкретной платформы (т.е. архитектурно нейтральном) языке, который можно было бы использовать для создания программного обеспечения, встраиваемого в различные бытовые электронные устройства, в том числе микроволновые печи и устройства дистанционного управления.[8] Использование разнотипных процессоров в различных устройствах приводит к трудностям применения языков C и C++, потому как написанные на этих языках программы должны компилироваться для конкретной платформы. Развитие Интернета только усугубило эту ситуацию – появилась необходимость переносить код внутри распределенной сетевой среды с разнотипными компьютерами, операционными системами и процессорами. В связи с этим обстоятельством, разработчики Java перенесли свое внимание с бытовой электроники на программирование для Интернета. Таким образом, Интернет обеспечил крупномасштабный успех Java.
Основная особенность Java, которая позволяет решать проблемы обеспечения безопасности и переносимости программ, состоит в том, что компилятор Java выдает не исполняемый код, а так называемый байт-код – в высшей степени оптимизированный набор инструкций, предназначенных для выполнения в исполняющей системе Java, называемой виртуальной машиной Java. Java Virtual Machine является своего рода интерпретатором байт-кода, что и обеспечивает переносимость программ между платформами.
PHP
PHP – скриптовый язык общего назначения, активно применяется для разработки веб-приложений и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.
Язык PHP называется серверным потому, что программы на нем выполняются на веб-сервере.[9] Этот язык программирования является кросс-платформенным проектом с открытым исходным кодом. PHP применяется на более чем 200 млн. различных веб-сайтов: от бесконечного числа личных начальных страниц до гигантских порталов вроде Facebook, Wikipedia, Tumblr, Slack и Yahoo.[10] Средствами PHP можно создавать эффективные движки сайтов электронных магазинов, способные обслуживать миллионы клиентов, а также небольшие сайты, на которых автоматически поддерживаются ссылки на изменяющийся список статей или сообщений для печати.
В отличие от других языков программирования, язык PHP с самого начала предназначался для формирования веб-страниц. Это означает, что типичные задачи веб-разработки вроде организации доступа к формам, передаваемым на обработку, и обращения к базе данных зачастую легче решать средствами PHP. Язык PHP обладает возможностями форматировать HTML-документы, манипулировать датами, временем и cookie-файлами, т.е. решать задачи, которые можно реализовать на других языках только с помощью дополнительных библиотек.
C#
C# – объектно-ориентированных язык программирования, имеет статическую типизацию. Относится к семье языков с C-подобным синтаксисом: наиболее близок к C++ и Java. Язык C# полностью объектно-ориентированный, это означает, что даже самая маленькая программа на C# должна содержать описание хотя бы одного класса.
Язык C# создан инженерами компании Microsoft в 1998-2001 годах. Руководил группой разработчиков Андерс Хейлсберг, который до этого трудился в фирме Borland над созданием компилятора для языка Pascal и участвовал в создании интегрированной среды разработки Delphi.[11] При разработке языка был учтен богатый опыт использования языков-предшественников – C++ и Java.
Язык C# поддерживается компанией Microsoft, поэтому он идеально подходит для написания программ под операционную систему Windows. Этот язык является неотъемлемой частью технологии .Net Framework. Основу платформы .Net Framework составляет среда исполнения CLR (Common Language Runtime) и библиотека классов, которая используется при программировании на языке C#. При компилировании программного кода, написанного на языке C#, создается промежуточный код. Этот промежуточный код реализован на языке MSIL (Microsoft Intermediate Language). Промежуточный код выполняется под управлением системы CLR. Система CLR запускает JIT-компилятор (Just In Time), который, собственно, и переводит промежуточный код в исполняемые инструкции.
C++
C++ – компилируемый, статически типизированный язык программирования общего назначения. Поддерживает процедурную, объектно-ориентированную и обобщенную парадигмы программирования. C++ сочетает в себе свойства как высокоуровневых, так и низкоуровневых языков.[12]
Язык появился в начале 1980-х годов благодаря сотруднику Bell Labs Бьерну Страуструпу, который придумал ряд усовершенствований к языку C под собственные нужды. Ранние версии языка, первоначально именовавшегося “Си с классами” стали доступны с 1980 года. Но первый коммерческий выпуск состоялся в октябре 1985 года.
Разрабатывая C с классами, Страуструп написал программу cfront — транслятор, перерабатывающий исходный код C с классами в исходный код простого C. Это позволило работать над новым языком и использовать его на практике, применяя уже имеющуюся в UNIX инфраструктуру для разработки на C. Новый язык, неожиданно для автора, приобрёл большую популярность среди коллег и вскоре Страуструп уже не мог лично поддерживать его, отвечая на тысячи вопросов.
C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также игр.
TypeScript
TypeScript – язык программирования, представленный компанией Microsoft в 2012 году и позиционируемый как средство разработки веб-приложений, расширяющее возможности JavaScript. Разработчиком языка является Андерс Хейлсберг, создавший ранее Turbo Pascal, Delphi и C#.
TypeScript появился из-за предполагаемых недостатков JavaScript в крупномасштабных приложениях как в Microsoft, так и у прочих пользователей JavaScript. Проблемы с разработкой сложных программ на JavaScript привели к необходимости облегчения разработки компонентов языка.
Многие масштабные проекты на JavaScript, в том числе проекты Adobe, Mozilla и Asana, приняли решение перевести свою кодовую базу с JavaScript на TypeScript.[13] В 2014 году команды Microsoft и Google объявили, что Angular 2.0 будет разрабатываться с использованием TypeScript, тем самым объединяя языки AtScript от Google и TypeScript от Microsoft в один.
Такое крупномасштабное отраслевое внедрение TypeScript показывает ценность данного языка, гибкость компилятора и повышение производительности, которое может быть достигнуто с помощью его богатого набора инструментов разработки.
Ruby
Ruby – динамический, рефлективный, интерпретируемый высокоуровневый язык программирования. По синтаксису близок к языкам Perl и Eiffel, по объектно-ориентированному подходу – к Smalltalk. Название навеяно языком Perl, многие особенности синтаксиса и семантики из которого были заимствованы в Ruby: англ. pearl – “жемчужина”, ruby – “рубин”.
Язык обладает независимой от операционной системы реализацией многопоточности, сильной динамической типизацией, сборщиком мусора и многими другими возможностями.
В 1990-е годы японский программист Юкихиро Мацумото (сокращенно Мац) мечтал об идеальном языке программирования.[14] Он хотел, чтобы его язык: