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

Обзор языков программирования высокого уровня (Предпосылки к появлению языков программирования)

Содержание:

ВВЕДЕНИЕ

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

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

Количество и профессионализм сотрудников, текучесть кадров в команде разработки коррелируют с используемым технологическим стеком: каждый язык программирования высокого уровня имеет свою специфику по размеру заработной платы сотрудника, количеству и опыту кадров в поиске нового места работы. Например, более современные языки программирования высокого уровня привлекают профессиональных разработчиков с большим опытом работы, но при этом обладают ограниченным “запасом” сотрудников на рынке труда. Другие языки, напротив, позволяют в короткие сроки собрать команду разработчиков с умеренными зарплатными ожиданиями.

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

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

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

Объект исследования – языки программирования высокого уровня.

Предмет исследования – характеристики и области применения языков программирования высокого уровня.

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

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

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

В качестве основных методов исследования использованы эмпирические, теоретические и количественные методы исследования.

Курсовая работа на тему «Обзор языков программирования высокого уровня» состоит из введения, двух глав, двух параграфов, заключения и списка литературы.

1. Предпосылки к появлению языков программирования

Описание истории языков программирования стоит начать с упоминания об аналитической машине Чарльза Бэббиджа.

Чарльз Бэббидж (1791–1871 гг.) – английский математик, философ, инженер. Одним из изобретений ученого была разностная машина. В 1822 году Бэббидж построил модель разностной машины, состоящей из валиков и шестерней, которые необходимо было вращать вручную при помощи рычага. Получив финансирование от правительства Великобритании, Чарльз Бэббидж приступил к созданию машины. Но эта задача оказалась сложнее, чем предполагал ученый и машина так и не была создана при его жизни.

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

Стоит отметить, что перфокарты использовались до начала 1980-ых годов, а начало их использования зафиксировано в 1808 году в ткацких станках Жаккарда. То есть перфокарты, как технология, использовались на протяжении 175 лет.

Следующей персоной, оказавшей сильное влияние на развитие компьютеров, можно считать Аду Лавлейс (1815-1852 гг.). Ада перевела мемуары итальянского математика Луиджи Менабреа, которые были посвящены аналитической машине Чарльза Бэббиджа. В процессе перевода, Ада предположила, что применение аналитической машины не ограничивается только лишь арифметическими вычислениями и вместе с переводом Ада создала алгоритм вычисления чисел Бернулли. Считается, что этот алгоритм является первой компьютерной программой.[1] Но это сложно назвать языком программирования, потому как многие люди ожидают от этого понятия некоторую силу выражения и читаемость кода. Ни машина Жаккарда, ни аналитическая машина Бэббиджа не обладали такими свойствами.

Машины, работающие на электричестве и наиболее близкие к нашему пониманию современных компьютеров, появились в 1940-е года. Из-за низкой скорости обработки данных и небольшого объема памяти программисты были вынуждены использовать программы на языке Ассемблер с низким уровнем автоматизации. В какой-то момент стало понятно, что написание программ на языке Ассемблер требует больших интеллектуальных усилий.

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

Первым языком программирования высокого уровня считается Plankalkül, разработанный пионером компьютерной науки, немецким инженером, Конрадом Зюсом в промежутке между 1942-м и 1945-м гг. Но эта разработка так и осталась на бумаге и не дошла до практического использования. Чуть позже Конрад Зюс будет очень сожалеть, что разработчики популярного языка ALGOL 58 так и не признались, что их язык был создан под влиянием Plankalkül.

1.1 Первые языки программирования

В 1949-м был написал первый язык программирования высокого уровня Short Code. Его создатель, американский физик Джон Мокли, впервые использовал математические выражения в понятной для человека форме. Тем не менее инженер сразу же столкнулся с тем, что каждый раз при запуске код программы на Short Code интерпретировался в машинный код, что сильно замедляло выполнение программ. Что, в принципе, не отличается от ситуации с языками программирования высокого уровня в наши дни.

Первый компилируемый язык программирования Autocode был разработан британским ученым Аликом Гленном в Университете Манчестера. Вторая итерация языка, известная как Mark 1 Autocode была разработана британским ученым Ральфом Брукером для известного компьютера Mark 1, который во время Второй Мировой Войны помог Великобритании и ее союзникам получить большое количество военных разведданных. Впоследствии, было разработано еще несколько версий Autocode для различных компьютеров.

В 1954-м году на свет появился легендарный язык программирования FORTRAN, использование которого можно встретить в научных исследованиях и в наши дни. Язык был создан в компании IBM под руководством Джона Бэкуса. Это первый высокоуровневый язык общего применения, который действительно использовался на практике, в отличие от прошлых наработок на бумаге. Первые версии FORTRAN были встречены со скептицизмом. Наличие багов, задержек в разработке языка и низкая скорость по сравнению с программами, написанными на языке Ассемблер, не внушали доверие. Тем не менее, ввиду бурного развития рынка вычислительных устройств, FORTRAN был признан за свою эффективность и универсальность. Интересным фактом является то, что бенчмарками скорости современных суперкомпьютеров все еще являются программы, написанные на FORTRAN.

Соединенные Штаты Америки не сильно отставали в развитии компьютерной науки – ученый Грейс Хоппер с 1955-го по 1959-ый разрабатывала язык программирования под названием FLOW-MATIC. Язык был разработан специально для компьютера UNIVAC I – первого коммерческого компьютера общего предназначения, созданного в США. Предпосылкой к созданию языка стало осознание Грейс Хоппер и ее команды, что людям, обрабатывающим коммерческие данные, было некомфортно использовать строгие математические выражения, и они написали спецификацию англоязычного языка программирования. Впоследствии, этот язык сильно повлияет на разработку языка COBOL.

В 1958-м году появляется язык LISP, который занимает вторую строчку после FORTRAN в рейтинге самых старых языков программирования высокого уровня, до сих пор используемых. Его созданием занимался американский ученый Джон МакКарти. В дальнейшем, LISP будет меняться и появится много диалектов. Наиболее известными диалектами языка LISP станут Clojure, Common Lisp и Scheme. Основным предназначением этого языка были работы с искусственным интеллектом и до сих пор он является одним из основных инструментальных средств в данной области, но также им пользуются для разработки бизнес-приложений, и даже для веб-приложений, но это скорее считается экзотикой в наши дни.

Следующим значимым событием для компьютерной науки стало появление языка COBOL в 1959-м г. Это компилируемый язык программирования, очень похожий на английский язык. Само название языка расшифровывается как “COmmon Business-Oriented Language”. Этот язык в основном использовался в финансовых и административных системах коммерческих компаний и государственных учреждениях. Но, к сожалению, из-за ухода на пенсию опытных программистов на COBOL, программы постепенно переносятся на новые платформы и новые языки программирования, что неукоснительно ведет к уменьшению его популярности. Большая часть программирования на COBOL сейчас ведется исключительно в целях поддержания существующих приложений. Как упоминалось ранее, COBOL базируется на разработках Грейс Хоппер, создателя FLOW-MATIC, которую иногда считают “Матерью COBOL’а”.

И, наконец, завершающим событием этапа становления языков программирования можно считать публикацию американских и европейских ученых в 1960-м г. о “новом языке программирования для алгоритмов” – ALGOL 60. В этом отчете было собрано множество идей, витающих в воздухе и представлено три ключевые инновации в языках программирования:

  • вложенная структура блоков программы: теперь не было необходимости выносить блоки вычислений в отдельные процедуры
  • лексические границы: блоки программы могут иметь свои собственные переменные, процедуры и функции, невидимые для кода снаружи, также это называется “сокрытием информации”

Впоследствии, ALGOL 60 частично повлиял на дизайн более поздних языков, некоторые из которых стали более популярны, чем их предшественник.

1.2 Обзор современных языков программирования высокого уровня

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

Появление языков программирования высокого уровня (FORTRAN, ALGOL) позволило снизить уровень детализации операций.[2] Большим достижением этих языков стала возможность использования подпрограмм. Были созданы большие библиотеки различных подпрограмм. Теперь структура программы состояла из основной программы, области глобальных данных и набора подпрограмм. Появилась возможность совместной разработки ПО несколькими программистами.

Согласно исследованию крупнейшего в мире сервиса, предоставляющего услуги “Version Control System” для коллективной разработки программного обеспечения, как коммерческой, так и “Open source” разработки, на конец 2019-го года топ-лист языков разработки выглядит следующим образом[3]:

Результаты исследования основываются на анализе 44 миллионов открытых репозиториев на платформе GitHub. Для определения актуальной базы кода были взяты “активные” репозитории, в которых происходило любое изменение кода за 2019-ый год.

Для нашего исследования необходимо выбрать только высокоуровневые языки из рейтинга GitHub, ими являются:

  • JavaScript
  • Python
  • Java
  • PHP
  • C#
  • C++
  • TypeScript
  • Ruby

До сих пор ведутся споры к какому классу необходимо относить язык C:

к низкоуровневым или высокоуровневым языкам программирования? Общепризнанного определения низкоуровневого языка до сих пор не существует. Американский ученый в области компьютерных технологий и первый лауреат премии Тьюринга Алан Перлис дал такое определение: “Язык программирования является низкоуровневым, если написанные на нем программы требуют внимания к несущественному”.[4]

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

2. 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] Он хотел, чтобы его язык:

  • был простым в изучении и использовании
  • был достаточно гибким для решения любых задач из области программирования
  • позволял программисту сосредоточиться на решаемой задаче
  • создавал меньше проблем у программиста
  • был объектно-ориентированным

Мац сделал Ruby достоянием широкой публики в 1995-м году. В Японии Ruby стал популярным с момента появления первой общедоступной версии, однако наличие документации только на японском языке сильно сдерживало его развитие в мире. В начале 2000-х вышло несколько книг на английском языке, что способствовало росту популярности Ruby в Западной Европе и Америке.

Одним из основных приложений, связанных с Ruby, продолжает оставаться Ruby on Rails, который продолжает активно развиваться. Тем не менее, использование Ruby значительно шире – на нем разрабатывается большое количество приложений различного назначения, кроме того, он используется в качестве скриптового языка для автоматизации и настройки приложений и написания административных утилит, в частности, в ОС Linux.

Другим ярким примером использования можно назвать приложение Homebrew для MacOS, написанное на языке Ruby. Разработчики программного обеспечения, которые выбрали MacOS в качестве рабочей операционной системы, используют приложение Homebrew для установки дополнительного ПО для разработки.

Ruby используется в NASA, NOAA (национальная администрация по океану и атмосфере), Motorola и других крупных организациях.

ЗАКЛЮЧЕНИЕ

В данной курсовой работе произведен обзор языков программирования по состоянию на ноябрь 2019 года. Среди тенденций можно обозначить:

  • Новые языки появляются как в серверной, так и в клиентской разработке, что говорит о недостаточном развитии технологий программирования. Разработчикам программного обеспечения все еще требуются более быстрые и более удобные инструменты разработки.
  • Наличие языков с долгой историей и большим признанием среди разработчиков (например, C++) не является преградой для того, чтобы более молодые языки развивались и получали широкое распространение (например, Python)
  • Новые технологические стеки и языки программирования появляются каждые несколько лет, существует предположение, что необходимо учить новый язык программирования каждые 5 лет, чтобы иметь спрос на рынке кадров и иметь наиболее привлекательный технологический стек для будущих кандидатов. Тем не менее, более ранние и хорошо зарекомендовавшие себя языки (например, C++ или Java) держатся в рейтинге лидеров более 20-30 лет, что является сигналом к их изучению и использованию в наши дни.

Достаточно четко прослеживается распространенность объектно-ориентированной парадигмы. В топ-3 языков программирования находятся два языка с динамической типизацией и один – со статической, что говорит о том, что скорость выполнения программ не является ключевой характеристикой для разрабатываемого программного обеспечения.

Если предприятие ставит перед собой задачу создания программного обеспечения с максимальным уровнем надежности и скорости работы, то стоит обратить внимание на такие языки, как Java, C++.

Если же предприятие выбирает для себя путь “динамической” разработки, то есть возможности гибко подходить к этапам разработки для того, чтобы ПО развивалось одновременно с развитием компании, то такому предприятию стоит обратить внимание на такие языки программирования, как JavaScript, Python, PHP, Ruby.

Если компания ориентируется на десктопные приложения в среде Windows, то наиболее подходящим вариантом будет платформа .Net Framework и язык C#.

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

СПИСОК ЛИТЕРАТУРЫ

  1. Fuegi, J. "Lovelace & Babbage and the creation of the 1843 'notes'", Annals of the History of Computing. [Текст] – 2003.
  2. Гниденко, И. Г. Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М.: Юрайт, 2018. – 235 с.
  3. GitHub “The State of the OCTOVERSE”. [Электронный ресурс] // 2019 URL: https://octoverse.github.com/ (дата обращения: 19.11.2019).
  4. Perlis, A. Epigrams on programming. [Текст] – ACM SIGPLAN Notices, 1982.
  5. Браун, Э. Изучаем JavaScript. Руководство по созданию современных веб-сайтов [Текст] / Э. Браун – М.: АЛЬФА-КНИГА – 2017. – 368 с.
  6. Гниденко, И. Г. Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М.: Юрайт, 2018. – 235 с.
  7. Лутц, М. Изучаем Python. Том 1. [Текст] / М Лутц. – М.: Вильямс, 2019. – 832 с.
  8. Шилдт, Г. Java 8. Полное руководство 9-е издание. [Текст] / Г. Шилдт. – М.: Диалектика, 2015. – 1488 с.
  9. Скляр, Д. Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов. [Текст] / Д. Скляр. – М.: Вильямс, 2007. – 464 с.
  10. Скляр, Д. Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов. [Текст] / Д. Скляр. – М.: Вильямс, 2007. – 464 с.
  11. Васильев, А.Н. Программирование на C# для начинающих. Основные сведения. [Текст] / А.Н. Васильев. – М.: Бомбора, 2018. – 592 с.
  12. Страуструп, Б. Язык программирования C++. [Текст] / Б. Страуструп. – СПб.; М.: Невский диалект – Бином, 1999. – 991 с.
  13. Эккель, Б. Философия С++. Введение в стандартный С++. [Текст] / Б. Эккель. – СПб.: Питер, 2004. – 572 с.
  14. Розенталс, Н. Изучaeм ТуреScript 3. [Текст] / Н. Розенталс. – М.: ДМК-Пресс, 2019. – 625 с.
  15. Макгаврен, Д. Head First. Изучаем Ruby. [Текст] / Д. Макгаврен. – СПб.: Питер, 2018. – 640 с.
  1. Fuegi, J. "Lovelace & Babbage and the creation of the 1843 'notes'", Annals of the History of Computing. [Текст] – 2003

  2. Гниденко, И. Г. Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М.: Юрайт, 2018. – 235 с.

  3. GitHub “The State of the OCTOVERSE”. [Электронный ресурс] // 2019 URL: https://octoverse.github.com/ (дата обращения: 19.11.2019).

  4. Perlis, A. Epigrams on programming. [Текст] – ACM SIGPLAN Notices, 1982.

  5. Браун, Э. Изучаем JavaScript. Руководство по созданию современных веб-сайтов [Текст] / Э. Браун – М.: АЛЬФА-КНИГА – 2017. – 368 с.

  6. Гниденко, И. Г. Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М.: Юрайт, 2018. – 235 с.

  7. Лутц, М. Изучаем Python. Том 1. [Текст] / М Лутц. – М.: Вильямс, 2019. – 832 с.

  8. Шилдт, Г. Java 8. Полное руководство 9-е издание. [Текст] / Г. Шилдт. – М.: Диалектика, 2015. – 1488 с.

  9. Скляр, Д. Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов. [Текст] / Д. Скляр. – М.: Вильямс, 2007. – 464 с.

  10. Скляр, Д. Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов. [Текст] / Д. Скляр. – М.: Вильямс, 2007. – 464 с.

  11. Васильев, А.Н. Программирование на C# для начинающих. Основные сведения. [Текст] / А.Н. Васильев. – М.: Бомбора, 2018. – 592 с.

  12. Страуструп, Б. Язык программирования C++. [Текст] / Б. Страуструп. – СПб.; М.: Невский диалект – Бином, 1999. – 991 с.

  13. Розенталс, Н. Изучaeм ТуреScript 3. [Текст] / Н. Розенталс. – М.: ДМК-Пресс, 2019. – 625 с.

  14. Макгаврен, Д. Head First. Изучаем Ruby. [Текст] / Д. Макгаврен. – СПб.: Питер, 2018. – 640 с.