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

Современные языки программирования и их функции

Содержание:

Введение

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

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

Создатели языков по–разному толкуют понятие язык программирования. К наиболее распространенным утверждениям, признаваемым большинством разработчиков, относятся следующие:

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

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

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

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

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

1. История языков программирования


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

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

Первые языки программирования, разработанные, чтобы сообщить инструкции к компьютеру, были написаны в 1950-х. Ранним языком программирования высокого уровня, который будет разработан для компьютера, был Plankalkül, развитый для немецкого Z3 Конрадом Цузе между 1943 и 1945. Однако это не было осуществлено до 1998 и 2000.

Короткий код Джона Мочли, предложенный в 1949, был одним из первых языков высокого уровня, когда-либо развитых для электронно-вычислительной машины. В отличие от машинного кода, заявления Короткого кода представляли математические выражения в понятной форме. Однако программа должна была быть переведена на машинный код каждый раз, когда это бежало, делая процесс намного медленнее, чем управление эквивалентным машинным кодом.

В Манчестерском университете Алик Гленни развил Автокодекс в начале 1950-х. Язык программирования, это использовало компилятор, чтобы автоматически преобразовать язык в машинный код. Первый кодекс и компилятор развили в 1952 для Марка 1 компьютер в Манчестерском университете и, как полагают, являются первым собранным языком программирования высокого уровня.

Второй автокодекс развил для Марка 1 Р. А. Брукер в 1954 и назвали «Марком 1 Автокодексом». Брукер также развил автокодекс для Меркурия Ferranti в 1950-х вместе с Манчестерским университетом. Версия для EDSAC 2 была создана Д. Ф. Хартли из Кембриджского университета Математическая Лаборатория в 1961. Известный как Автокодекс EDSAC 2, это было прямым развитием из Mercury Autocode, адаптированного к местным обстоятельствам, и было известно его кодовой оптимизацией объекта и диагностикой исходного языка, которые были продвинуты в течение времени. Современная, но отдельная нить развития, Автокодекс Атласа был развит для Атласа Манчестерского университета 1 машина.

Другой ранний язык программирования был создан Грэйс Хоппер в США, названных ПОТОКОМ-MATIC. Это было развито для UNIVAC I в Remington Rand во время периода с 1955 до 1959. Хоппер нашла, что коммерческая информация, обрабатывающая клиентов, чувствовала себя неловко из-за математического примечания, и в начале 1955, она и ее команда написали спецификацию для английского языка программирования и осуществили прототип. Компилятор ПОТОКА-MATIC стал общедоступным в начале 1958 и был существенно полон в 1959. Поток-Matic был главным влиянием в дизайне КОБОЛ, так как только это и его прямой происходящий AIMACO были в фактическом употреблении в то время. язык ФОРТРАН был развит в IBM в середине 1950-х и стал первым широко используемым языком программирования общего назначения высокого уровня.

Другие языки все еще в использовании сегодня, включайте LISP (1958), изобретенный Джоном Маккарти и КОБОЛ (1959). Другой этап в конце 1950-х был публикацией, комитетом американских и европейских программистов, «нового языка для алгоритмов»; АЛГОЛ 60 Отчетов/ Этот отчет объединил много идей, циркулирующих в это время, и показал три ключевых языковых инновации:

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

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

Другие инновации, связанные с этим, были в том, как язык был описан:

математически точное примечание, Форма Бэкуса-Наура (BNF), использовалось, чтобы описать синтаксис языка. Почти все последующие языки программирования использовали вариант BNF, чтобы описать контекстно-свободную часть их синтаксиса.

Алгол 60 особенно влиял при дизайне более поздних языков, некоторые из которых скоро стали более популярными. Берроуз большие системы был разработан, чтобы быть запрограммированным в расширенном подмножестве Алгола.

Ключевые идеи алгола были продолжены, произведя АЛГОЛ 68:

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

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

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

Установление фундаментальных парадигм

Период с конца 1960-х к концу 1970-х принес главный расцвет языков программирования. Большинство главных языковых парадигм теперь в использовании было изобретено в этот период:

Simula, изобретенный в конце 1960-х Нигэардом и Далем как супернабор Алгола 60, был первым языком, разработанным, чтобы поддержать объектно-ориентированное программирование.

C, ранний язык программирования систем, был развит Деннисом Ричи и Кеном Томпсоном в Bell Labs между 1969 и 1973.

Smalltalk (середина 1970-х) обеспечил полный измельченный дизайн ориентированного на объект языка.

Пролог, разработанный в 1972 Colmerauer, Русселем, и Ковальским, был первым логическим языком программирования.

ML построил полиморфную систему типа (изобретенный Робином Милнером в 1973) сверху Шепелявости, ведение статически напечатало функциональные языки программирования.

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

1960-е и 1970-е также видели значительные дебаты по достоинствам «структурированного программирования», которое по существу означало программировать без использования Goto. Эти дебаты были тесно связаны с языковым дизайном: некоторые языки не включали GOTO, который вызвал структурированное программирование на программисте. Хотя дебаты бушевали горячо в то время, почти все программисты теперь соглашаются, что, даже на языках, которые обеспечивают GOTO, они плохо программируют стиль, чтобы использовать его кроме редких обстоятельств.

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

1980-е: консолидация, модули, работа

1980-е были годами относительной консолидации на обязательных языках. Вместо того, чтобы изобретать новые парадигмы, все эти движения уточнили идеи, изобретенные в предыдущее десятилетие. C ++ объединился ориентированный на объект и программирование систем. Правительство Соединенных Штатов стандартизировало Аду, язык программирования систем, предназначенный для использования подрядчиками защиты. В Японии и в другом месте, обширные суммы были потрачены, исследовав так называемые языки программирования пятого поколения, которые включили программные конструкции логики. Функциональное языковое сообщество двинулось, чтобы стандартизировать ML и Шепелявость. Исследование в Миранде, функциональном языке с ленивой оценкой, начало утверждаться в это десятилетие.

Одна важная новая тенденция в языковом дизайне была увеличенным вниманием на программирование для крупномасштабных систем с помощью модулей или крупномасштабных организационных единиц кодекса. Modula, Ада и ML все разработанные известные системы модуля в 1980-х. Системы модуля были часто связаны узами брака с---непатентованными средствами конструкций универсального программирования быть, в сущности, параметрические модули (см. также полиморфизм в объектно-ориентированном программировании).

Хотя главные новые парадигмы для обязательных языков программирования не появлялись, много исследователей подробно остановились на идеях предшествующих языков и приспособили их к новым контекстам. Например, языки систем Бдительного стража и Эмеральд приспособили объектно-ориентированное программирование к распределенным системам.

1980-е также принесли достижения во внедрении языка программирования. Движение RISC в архитектуре ЭВМ постулировало, что аппаратные средства должны быть разработаны для компиляторов, а не для человеческих программистов собрания. Помогший улучшениями скорости процессора, которые позволили все более и более агрессивные методы компиляции, движение RISC зажгло больший интерес к технологии компиляции для языков высокого уровня.

1990-е: интернет-возраст

Быстрый рост Интернета в середине 1990-х был следующим главным историческим событием на языках программирования. Открывая радикально новую платформу для компьютерных систем, Интернет создал возможность для новых языков, которые будут приняты. В частности язык программирования JavaScript повысился до популярности из-за его ранней интеграции с веб-браузером Навигатора Netscape. Различные другие языки сценариев достигли широкого использования в разработке настроенного приложения для веб-серверов, таких как PHP. 1990-е не видели фундаментальной новинки на обязательных языках, но большой перекомбинации и созревания старых идей. Эта эра начала распространение функциональных языков. Большая ведущая философия была производительностью программиста. Много «быстрых разработок приложений» (RAD), языки появились, который обычно шел с ЯЗЕМ, сборкой мусора, и были потомки более старых языков. Все такие языки были ориентированы на объект.

Они включали Обжека Паскаля, Visual Basic и Яву. Ява в особенности получила много внимания. Более радикальный и инновационный, чем языки RAD были новые языки сценариев. Они непосредственно не спустились с других языков и показали новые синтаксисы и более либеральное объединение особенностей. Многие полагают, что эти языки сценариев более производительные, чем даже языки RAD, но часто из-за выбора, который делает маленькие программы более простыми, но большими программами более трудный написать и поддержать. Тем не менее, языки сценариев стали самыми видными, используемыми в связи с Сетью.

Современные тенденции

Развитие языка программирования продолжается, и в промышленности и в исследовании. Некоторые современные тенденции включают:

  • Увеличение поддержки функционального программирования на господствующих языках, используемых коммерчески, включая чистое функциональное программирование для того, чтобы сделать кодекс легче рассуждать об и легче найти что-либо подобное (и в микро - и в макро - уровни)
  • Конструкции, чтобы поддержать параллельное и распределенное программирование.
  • Механизмы для добавления безопасности и проверки надежности на язык: расширенная статическая проверка, зависимая печать, контроль за потоком информации, статическая безопасность нити.
  • Альтернативные механизмы для модульности: mixins, делегаты, аспекты.
  • Ориентированная на компонент разработка программного обеспечения.
  • Метапрограммирование, отражение или доступ к абстрактному дереву синтаксиса
  • Увеличенный акцент на распределение и подвижность.
  • Интеграция с базами данных, включая XML и реляционные базы данных.
  • Поддержка Unicode так, чтобы исходный код (текст программы) не был ограничен теми знаками, содержавшимися в кодировке ASCII; разрешение, например, использование не латинские основанные подлинники или расширенная пунктуация.
  • XML для графического интерфейса (XUL, XAML).
  • Открытый источник как философия развития для языков, включая коллекцию компилятора ГНУ и недавние языки, такие как Питон, Рубин и Писк.
  • AOP или Аспект Ориентированные Программные разработчики разрешения, чтобы закодировать местами в кодексе расширили поведения.
  • В широком масштабе найдите что-либо подобное языкам для кодирования 2 000 графики процессора GPU обработка единиц и суперкомпьютерных множеств.

2. Виды языков программирования

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

Низкоуровневый язык программирования (язык программирования низкого уровня) — язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft .NET) процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов человеческого языка (обычно английских).

Языки программирования низкого уровня

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

Рисунок 1. Пример машинного кода и представления его на ассемблере

Трансляторы делятся на:

компиляторы - превращают текст программы в машинный код, который можно сохранить и затем использовать уже без компилятора (примером являются исполняемые файлы с расширением *. exe);

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

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

Преимущества:

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

Недостатки:

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

результирующая программа не может быть перенесена на компьютер или устройство с другим типом процессора;

значительное время разработки больших и сложных программ.

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

Ассемблер - язык низкого уровня, широко применяется до сих пор.

Языки программирования высокого уровня

Первым языком программирования высокого уровня считается компьютерный язык Plankalkül, разработанный немецким инженером Конрадом Цузе ещё в период 1942—1946 годах. Однако транслятора для него не существовало до 2000 г. Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 г. Транслятор ПП-2 (1955 г., 4-й в мире транслятор) уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур, а транслятор ПП для ЭВМ Стрела-4 уже содержал и компоновщик (linker) из модулей. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957).

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

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

Примеры: C, C++,C#, Java, Python, PHP, Ruby, Perl, Паскаль, Delphi, Lisp. Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинстве из них интегрирована поддержка строковых типов, объектов, операций файлового ввода-вывода и т. п. Недостатком языков высокого уровня является больший размер программ по сравнению с программами на языке низкого уровня. Поэтому в основном языки высокого уровня используются для разработок программного обеспечения компьютеров и устройств, которые имеют большой объем памяти. А разные подвиды ассемблера применяются для программирования других устройств, где критичным является размер программы.

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

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

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

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

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

Обычно языки пpогpаммиpования пpедоставляют достаточно огpаниченный набоp пpедопpеделенных типов пеpеменных и сpедства создания новых типов. Пpедопpеделены некотоpые из следующих типов:

  • натуpальные и целые числа pазличной pазpядности;
  • вещественные числа;
  • символы - буквы, цифpы, знаки аpифметических действий и пp.;
  • стpоки символов;
  • логические значения;
  • указатели

Преимущества и недостатки языка высокого уровня:

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

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

Рисунок 2. Модель языков программирования

3. ТОП современных языков программирования

Разработчики программного обеспечения пользуются огромным спросом в настоящее время. В некоторых компаниях даже стажеры-программисты получают высокую зарплату. ИТ-компании борются друг с другом за талантливые кадры.
А кадры, в свою очередь борются за место под солнцем. Успех тех и других будет зависеть от того, насколько хорошо у них получается держать руку на пульсе, быть в тренде, использовать перспективные технологии и языки программирования. Чтобы понять, на что ориентироваться и в каком направлении идти, разработчики ПО и их работодатели изучают различные исследования и рейтинги популярности – будь то бизнес-модели или те же технологии и языки программирования. 
Однако некоторые игроки ИТ-рынка оказались предприимчивыми и создали проекты, посвященные ранжированию и трендам. К примеру, на этой неделе GitHub опубликовал собственный рейтинг 15 самых популярных языков программирования.

15. TypeScript:


Язык своим появлением обязан компании Microsoft. Он создан как средство разработки веб-приложений, расширяющее возможности JavaScript. Основным разработчиком языка TypeScript является Андерс Хейлсберг который ранее участвовал в создании Turbo Pascal, Delphi и C#.

14 — Swift:


Язык собственного приготовления – от компании Apple. Он был создан для iPhone-приложений в 2014 году. Однако Swift за столь короткий срок сумел завоевать популярность. 

Такси-сервис Lyft переписал свое iPhone-приложение на этом языке и сообщил об «огромном скачке» в производительности.
А совсем недавно вышло новое приложение Swift Playgrounds – самый простой способ познакомиться с языком Swift. По крайней мере, в этом уверен Крейг Федериги, старший вице-президент компании Apple по программному обеспечению.

No. 13 — Scala:


Этот язык программирования вышел в свет в 2001 году. Его подхватили такие крупные компании, как Airbnb и Apple. По их мнению, на нем проще и быстрее писать приложения для их нужд, нежели на набившем оскомину языке Java.
Изначально Scala, поддерживающий объектно-ориентированную и функциональную парадигмы, был создан с расчетом на трансляцию в байт-код Java и .NET. Со временем также появился транслятор Scala в код JavaScript — Scala.js. Однако в мае 2016 года стало известно, что в рамках проекта Scala Native создается компилятор, обещающий ускорить выполнение приложений, написанных на этом языке.

No. 12 — Objective-C:


Изначальный С так понравился людям, что у него появились последователи. В частности, некоторые из них вдохновились на создание Objective-C, который предстал перед публикой в 1983 году. Конечно, в него были добавлены новые идеи и элементы языка Smalltalk, но буква С не зря венчает его название. 
Особенно распространился Objective-C среди разработчиков под платформы Apple. Пока он удерживает эти позиции, но Swift грозится потеснить потомка С в скором времени.

No. 11 — Shell:


Это гадкий утенок среди прочих участников списка: Shell – не столько язык, сколько интерпретатор команд для выполнения тех или действий в операционных системах семейства UNIX. Его скрипты используются, например, для автоматизации обновления ПО. Он содержит стандартные конструкции для циклов, ветвления, объявления функций и так далее.
 

No. 10 — Go:


Был разработан внутри компании Google. Первоначальная разработка Go началась в сентябре 2007 года, а его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон. Официально язык был представлен в ноябре 2009 года.
Язык Go разрабатывался как язык системного программирования для создания высокоэффективных программ, работающих на современных распределённых системах и многоядерных процессорах. Он может рассматриваться как попытка создать замену языку Си. 
При разработке уделялось особое внимание обеспечению высокоэффективной компиляции. Программы на Go компилируются в объектный код (хотя доступен и интерпретатор) и не требуют для исполнения виртуальной машины.
 

No. 9 — C:


Это язык, которому теперь пытаются найти замену. Язык Си был разработан Деннисом Ритчи в 1972 году в Bell Labs. Он является предшественником таких языков программирования как С++, Java, C#, JavaScript и Perl. По этой причине изучение этого языка ведет к понимаю и других языков. Язык С используется для разработки низкоуровневых приложений, так как считается ближе всего к аппаратному, уступая только ассемблеру.

No. 8 — C#:


С# принадлежит семье языков программирования Microsoft и был разработан в 2000 году и стал частью первого релиза .NET framework. Язык С# сочетает в себе надежность С++ с дополнительными возможностями Java. Поэтому если вы хорошо знаете Java, можно легко переключиться на С# и наоборот.
Язык С# позволяет разрабатывать практически любые приложения, которые связаны с Visual Studio IDE.

No. 7 — CSS:


Cascading Style Sheets (каскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.
Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам.

No. 6 — C++:


Языку Си не хватало работы с объектами. Чтобы решить проблему, в 1986 году был разработан С++, который является одним из самых распространенных языков в мире. Google Chrome, Mozilla Firefox, Winamp и линейка продуктов Adobe были разработаны с помощью С++. Кроме того, некоторые современные игры и операционные системы были разработаны на С++ из-за быстрого процессинга и компиляции. Кроме того, разработчики С++ имеют огромный спрос на рынке труда.

No. 5 — PHP:


PHP — это один из наиболее широко используемых языков для разработки динамических веб сайтов. PHP был разработан в 1995 году и является языком сценариев на стороне сервера, что означает, что PHP код обрабатывается на сервера, а конечный результат пользователь получает в виде обычного HTML.
PHP открытый язык разработки, поэтому написаны уже тысячи модулей, которые можно модифицировать до требуемой функциональности. 
Однако недоброжелатели не дремлют: Джефф Этвуд. основатель Stack Exchange, как-то писал, что PHP – это даже не язык программирования, это куча не связанных друг с другом фрагментов функциональности.

No. 4 — Ruby:


Ruby — простой и читаемый язык программирования, ориентированный на разработку веб приложений. Разработанный Юкихиро Мацумто в 1995 году, фреймворк Ruby использовался для разработки Github, Scribd, Yammer, Shopify и Groupon. Ruby сочетает в себе некоторые возможности Lisp, Pearl и Eiffel. Ruby имеет хороший рынок труда и разработчики получают достойно.

No. 3 — Python:


Python — это другой высокоуровневый язык программирования и часто считается самым легким языком, благодаря своей простоте, читаемости и синтаксису. Python был разработан Гвидо Ван Россумом в 1991 году. Python не использовался так широко в прошлом, однако стал особенно популярным за последние годы благодаря инвестициям Google. В настоящее время некоторые весьма известные и надежные сайты работают на python, особенно pinterest.com, instagram.com и rdio.com. Как и PHP, Python можно использовать для разработки веб приложений.

No. 2 — Java:


Java был разработан Джеймсом Гослингом в 1990 году в компании Sun Microsystems. Java дополнительно увеличивает возможности языка С++. Особенность Java заключается в том, что это первый чисто объектно-ориентированный язык программирования. Java был разработан по принципу WORA (Write Once Run Anywhere или «написав код однажды, вы запустите его везде»). Речь идет про переносимость Java. Необходимо скомпилировать исходный код на Java всего лишь раз, а затем запустить на любой машине с установленным JVM (Java Virtual Machine) и затем использовать.

No. 1 — JavaScript:


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

Заключение

Рабочим инструментом для создания компьютерных программ являются языки программирования. Их развитие происходит уже порядка пятидесяти лет. Наиболее совершенными и, следовательно, популярными среди программистов являются языки программирования, рассмотренные ниже.

С++

Несмотря на то, что данный язык программирования и был создан еще в начале восьмидесятых годов прошлого века, его можно отнести к современным, так

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

статистически типизированного языка программирования Си, в результате чего унаследовал от него некоторые минусы:

– относительно неудобный синтаксис, из-за которого могут возникать ошибки, которые труднее распознать, а следовательно, и устранить. В совокупности со сложной спецификации языка неудобство синтаксиса делает его трудным для изучения;

– длинный программный код, что приводит к увеличению времени компиляции и сложностям при использовании программ;

– плохо реализованная поддержка модулей.

К основным плюсам С++ можно отнести следующие:

– легкость обработки компилятором языка С, а следовательно? и высокая совместимость кода. Код на С++ может с минимальными изменениями использоваться в С, и наоборот;

– практически полная универсальность. Си-плюсплюс подходит для решения практически любых программных задач;

– кроссплатформенность и низкие требования к вычислительной мощности ЭВМ;

– свобода программисту выбирать различные стили программирования: структурное, объектно-ориентированное, функциональное, порождающее.

Стандарты языка периодически обновляются. Последний вышел в декабре 2017 года. С++ продолжает развиваться в направлении увеличения производительности и расширения возможностей за счет новых дополнений

для стандартной библиотеки. При этом основным правилом для языка остается сохранения совместимости с языком предшественником — Си. При этом, как отмечают разработчики, писать код на С++ значительно легче.

Java

Язык программирования Java является сильно типизированным и предназначен для объектно-ориентированного программирования. Основан Java, как и С++, на базовом языке Си. Основной особенностью языка является

использование виртуальной машины, которая обрабатывает программный код независимо от операционной системы и оборудования ЭВМ. К достоинствам данного способа обработки относится повышенная безопасность, а к недостаткам можно отнести снижение производительности, с которым борются при помощи усовершенствований способов работы с байт-кодом.

К плюсам самого языка Java можно отнести: – развитые стандартные библиотеки, не требующие дополнений;

– высокая степень переносимости программ;

– относительная простота изучения;

– имеет встроенную поддержку работы в компьютерных сетях.

К отрицательным качествам можно отнести:

– сильная загрузка оперативной памяти машины, и как следствие низкое быстродействие и малая производительность работы;

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

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

Python

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

среди современных языков. Легкость обучения и большое количество стилей программирования (среди которых структурное, функциональное, объектно-ориентированное, императивное и аспектно-ориентированное)

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

Прочие плюсы Python:

– возможность проверки на ошибки отдельных участком программы, а не только всей целиком;

– портатируемость практически под все современные платформы;

– большая стандартная библиотека;

– интергируемость с такими языками как С++ и С.

Недостатки данного языка:

– относительно малая скорость выполнения алгоритмов, свойственная многим интерпретируемым языкам программирования;

– большое количество ошибок в системном коде;

– проблемы с типами данным при передаче файлов в больших проектах, из-за использования динамической типизации.

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

Среди них: PyPy, IronPython, Stackless, Jython, Unladen Swallow, Micro Python и другие.

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

Список использованной литературы

  1. Черпаков, И.В. Основы программирования: Учебник и практикум для прикладного бакалавриата / И.В. Черпаков. - Люберцы: Юрайт, 2016. - 219 c.
  2. Открытые источники интернета
  3. Колдаев, В.Д. Основы алгоритмизации и программирования: Учебное пособие / В.Д. Колдаев; Под ред. Л.Г. Гагарина. - М.: ИД ФОРУМ, ИНФРА-М, 2012. - 416 c.
  4. Бройдо В.Л. Вычислительные системы, сети и телекоммуникации:Учебник для вузов. - СПб.: Питер. 2003. 688 с.
  5. Муртаф, Б. Современное линейное программирование; Мир - Москва, 2010. - 224 c.
  6. Баррон, Дэвид Введение в языки программирования; М.: Мир - Москва, 2011