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

Классификация языков программирования. Критерии выбора среды и языка разработки( Разработка языков программирования)

Содержание:

Введение

На данный момент развития компьютерных технологий просто невозможно представить высококвалифицированного специалиста в сфере информационных технологий не владеющего и не умеющего обращаться с языками программирования. Для свободы действий «общения» с компьютером , а также эффективной работы в данной сфере необходимо знать больше чем один язык программирования. Профессиональные программисты владеют не одним десятком языков программирования. Как говорил Б.Л. Уолф : «Язык формирует наш способ мышления и определяет то, о чем мы можем мыслить».

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

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

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

Цели:

  1. Просмотреть основные сведения о языках программирования.
  2. Рассмотреть по каким критериям осуществляется выбор языка программирования для разработки программ.

Задачи:

  1. Ознакомится с языками программирования.
  2. Рассмотреть развитие языков программирования.
  3. Узнать значение языков программирования.
  4. Изучить в каких технических компаниях какие языки востребованы.
  5. Провести диагностику популярности языков программирования.

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

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

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

1. Языки программирования и их классификация

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

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

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

Имеющиеся на данное время языки программирования можно разделить по функциональному признаку, или же парадигме[1] программирования.

на две группы: процедурные и непроцедурные. (рис.1)

C:\Users\user\Desktop\65.png

рис.1 Общая классификация языков программирования

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

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

К процедурным языкам программирования можно отнести: Pascal,Basic,C и другие.

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

Декларативное программирования – это парадигма, в которой описывается, что нужно сделать компьютеру. В пример этого случая можно привести язык разметки HTML, нужно лишь заключить в тег <img>: ссылку на изображение, ну а каким уже образом она будет отображена на странице – это задача компьютера.

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

Функциональное программирование позволяет кэшировать результаты и вызывать их в нужный момент. В пример можно поставить: LISP – первый функциональный язык, Haskell и другие.

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

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

Первый объектно-ориентированный язык программирования Simula был создан в 1960-х годах Нигаардом и Далом.

Также не хотелось бы обделять язык Ява. Ява – это язык программирования Интернет, которая позволяет разработчикам создавать надежные, безопасные, переносимые объективно-ориентированные интерактивные программы. Интернет и язык Ява тесно связаны между собой, так как первой серьезной программой написанной на этом языке – это был браузер Всемирной паутины.

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

  1. Машинные
  2. Машинно-ориентированные
  3. Машинно-независимые

Либо на 2 уровня:

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

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

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

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

К группе языков низкого уровня относятся машинные языки и языки символического кодирования: Автокод, Ассемблер. Операторами этого языка являются те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Языки программирования низкого уровня ориентированы на определенный тип компьютера, то есть являются машинно-зависимыми.

Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ.

Языками высокого уровня в современной классификации считаются машинно-независимые языки, разработанные для удобства использования. Таким образом, на данный момент авторы все чаще не учитывают машинный код в своих классификациях. Примерами языков программирования высокого уровня являются C++,C#, PHP, Perl, Java и многие другие.

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

В таком случае:

  1. Интерпретируемые языки – программы написанные на этом языке, выполняются только при наличии дополнительной, определенной программы –интерпретатора. Осуществление программы происходит , значительно медленно. При просмотре результата программу нужно постоянно интерпретировать, а это уже недостаток. Интерпретируемый язык – кроссплатформенный. Достаточно популярным примером может служить язык PHP, специально разработанный в 1995 году для создания веб-сайтов.
  2. Компилируемые языки – программы, которые написаны на данном языке, преобразуются специальной программой в машинный код. Во время изменения кода программы могут обнаружиться ошибки в машинных инструкциях, в таком случае, при любом изменении кода программы вновь потребуется компиляция. Такие программы осуществляются быстрее интерпретируемых программ, потому что компилятор переводит сразу и целиком машинные инструкции в исполняемы файл . Основным из языков в данной категории можно привести в пример язык C.
  3. Смешанный тип или же компилируемо-интерпретируемые языки программирования, заключившие в себя достоинства как компилируемых языков, так и интерпретированных. Эти языки переводятся не в машинный язык, а в байт-код. Он на специальной виртуальной машине интерпретируется. Пример в данном случае Java, C#.

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

Первое поколение (начало 1950-х годов) – это язык первых компьютеров. Первый язык ассемблера, который был создан по принципу «одна инструкция – одна строка». Основной отличительной особенностью является ориентирование на конкретный компьютер.

Второе поколение (конец 1950-х-начало 1960-х) – появилось понятие переменной в разработанном символьном ассемблере, является первым полноценным языком. Отличительная способность которого , ориентирование на абстрактный компьютер с такой же системой команд.

Третье поколение (1960-е годы) – разработаны языки программирования высокого уровня, которые имели такие характеристики как:

  1. Относительная простота
  2. Независимость от конкретного компьютера
  3. Возможность использования мощных синтаксических конструкций.

Простота языка позволяет и людям не являющимися профессиональными программистами писать небольшие программы. Ориентирование на алгоритмические языки, то есть алгоритм – отличительная особенность языка третьего поколения.

Примерами данного языка могут служить – C,Pascal,Java,Basic и многие другие. В мире всего существует около 200 популярных языков программирования третьего уровня.

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

Часто к ним относят: SQL, SGML (HTML,XML), Prolog и многие другие декларативные узкоспециализированные языки. Единственно некоторый ряд языков, которые относят к языкам четвертого поколения, как таковыми языками программирования не являются. Они скорее выступают, как своеобразные специализированные дополнения к полноценным языкам программирования.

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

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

Некоторые языки могут иметь черты, как третьего поколения, так и четвертого поколения.

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

Пятое поколение. Ну, а пятого поколения языка программирования покамест , не существует.

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

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

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

  1. Клиентские
  2. Серверные

Программы, которые написаны на клиентских языках, обрабатываются со стороны пользователя и его браузера, в этом и осуществляется проблема клиентских языков, так как результат выполнения зависит от браузера пользователя. Самыми распространенными клиентскими языками программирования являются: HTML ,CSS, JavaScript, VBScript, ActionScript ,Java.

Серверные языки программирования – это, когда пользователь на какую-либо страницу дает заброс, то эта страница сначала обрабатывается на сервере, и уже после возвращается к пользователю. Работа программы полностью зависит от сервера, на котором находится сайт. К серверным языкам программирования можно отнести: PHP, Perl, Python, Ruby, любой .NET язык программирования,Java ,Groovy.

1.1 Разработка языков программирования

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

Существует двенадцать основных языков программирования: Ada, C, C++, Fortran, Java, LISP, ML, Pascal, Perl, Postscript, Prolog и Smalltalk.

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

Первые версии Fortran, LIPS были созданы и разработаны в 50-е годы, а история таких языков как Ada, C, Pascal, Prolog, Smalltalk начинается в 70-е годы, в 80-х годах возникли языки C++,ML, Perl, Postscript и самый молодой язык ,появившийся на свет в 90-е годы - это Java.

В 60-е и 70-е годы часто появлялись новые языки во время разработки по созданию программного обеспечения. В 70-е годы Министерство обороны США в рамках основного проекта разработки языка Ada был составлен отчет об используемых языках программирования на то время и выяснилось , что было использовано более 500 языков.

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

В начале 50-х начали появляться первые языки программирования, которые использовали символьные системы обозначений. Грейс Хупер возглавил группу по разработки языка A-0 в компании Univac,а Джон Бэкус создал язык Speedcoding для IBM 701. Эти оба языка были предназначены для преобразования простых арифметических выражений в исполняемый машинный код.

Но в 1957 году произошел большой прорыв, в то время когда Бэкус руководил группой по созданию языка Fortran. На ранних стадиях разработки Fortran был направлен на численные вычисления, но в итоге вышел вполне законченным языком программирования, который включал в себя управляющие структуры, условные операторы и операторы ввода и вывода. Немногие тогда думали и верили, что получится язык способный создать конкуренцию языку ассамблера, в котором машинные команды кодировались в ручную, основной задачей было создать эффективный исполнительный код, поэтому многие операторы разрабатывались с учетом специфики ЭВМ IBM 704. Вся концепция языка выглядела не очень изящно, но в те времена еще ни кто и не думал об элегантном программировании, зато получившийся в итоге язык позволял писать программы достаточно быстро.

Fortran покакал себя весьма удачным языком и оставался доминирующим вплоть до 70-х годов. Следующая версия Fortran вышла в 1958 году и стала называться Fortran II, а спустя еще несколько лет вышел Fortran IV, так как каждый разработчик создавал для своих компьютеров собственную версию языка, то можно сказать начался хаос. Таким образом, в 1996 году Fortran IV стал считаться стандартным и носить название Fortran 66, в результате этого появились такие стандарты как Fortran 77 и Fortran 90.

Так как Fortran оказался весьма успешным языком, в Европе возникли опасения, что IBM будет доминировать в компьютерной отрасли. Немецкое общество прикладной математики GAMM создало комитет по разработке универсального языка. В это же время ACM организовала похожий комитет в США. Несмотря на то, что у европейцев было некоторое опасение по поводу господства американцев, в итоге оба эти комитета слились воедино. Под руководством Питера Наура в этом комитете был разработан IAL, но так как общеупотребительным стало название ALGOL, то решили сделать официальным именно его, хотя с начало было отвергнуто.

Если язык Fortran разрабатывался для эффективного использования на IBM 704, то перед разработчиками ALGOL стояли совершенно другие цели:

  1. Сделать как можно ближе к стандартной математической системе обозначений в ALGOL.
  2. ALGOL должен быть приспособлен для описания алгоритмов.
  3. Программы на ALGOL должны были компилировать в машинный язык.
  4. ALGOL не должен быть привязан к конкретной машинной архитектуры.

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

В настоящее же время он практически забыт, так как его вытесняли другие языки программирования как C,C++,Ada.

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

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

В 1955 году было профинансировано Министерством обороны США совещание по разработке языка CBL, который должен был стать бизнес-ориентированным языком, использовавший на максимум в качестве обозначений для своих программ английский язык, но было много несогласных, поэтому в связи с этим был создан специальный комитет Short Range Committee, члены данного комитета думали, что они должны будут разрабатывать некий промежуточный вариант языка , но так получилось, что опубликованная в 1960 году разработанная спецификация, определила новый язык-COBOL. Он пересматривался в 1961 и 1962 годах и был стандартизован в 1968 году, но в 1974 и в 1984 годах снова подвергся пересмотру.

Интерес к языкам искусственного интеллекта возник в 50-е годы, когда был разработан язык IPL компанией Rand Corporation. Версия IPL-V, стала довольно широко известна, но ее использование ограничилось тем , что этот язык не был языком высокого уровня. Но большим шагом вперед стала разработка Джоном Мак-Карти языка LIPS для компьютера IBM 704. Версия LIPS 1.5 стала стандартом для его реализации на многие годы, но развитие LIPS продолжается до настоящего времени.

LIPS разрабатывался как функциональный язык обработки списков . Естественной областью приложения LIPS является разработка стратегии ведения игры. Другой естественной областью применения этого стал автоматический машинный перевод текста, где одна цепочка символов может заменять на другую. В этой области первой разработкой был язык COMIT, созданный Инге, сотрудником MIT. Каждый оператор программы, написанный на этом языке, был очень похож на контекстно-независимое правило и представлял собой набор замен, которые можно было осуществить, если в исходных данных обнаруживалась конкретная цепочка символов. Поскольку Ингве запатентовал свой код, то тогда группа разработчиков из AT & Bell Telephone Laboratories решили создать свой собственный язык, таким образом и появился язык SNOBOL.

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

В целях повышения эффективности выполняемых программ использование языка ассемблера в системной области продолжалось достаточно долго даже после того, как для приложений в других областях стали использоваться языки высокого уровня. Многие языки системного программирования, такие как CPL, BCPL так и не нашли широкого применения. Все изменилось с появлением языка C. С развитием в 70-е года конкурентоспособной среды UNIX, написанной в основном на языке C, была доказана эффективность использования языков высокого уровня и в системной области.

  1. Старые (но не умершие!)

Fortran, Cobol, PL/I, Basic, Pascal, Ada,Lisp,...

  1. Мейнстримные

C, С++, Java, C#, JavaScript, Python, Ruby, PHP, ...

  1. Новые и будущие

Go, Swift, Hack, Rust, Kotlin, Scala...

  1. Нишевые

D, Clojure, OCaml, Haskell, .

1.2 Роль и значения языков программирования

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

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

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

И так в чем же роль языков программирования?

Изначально языки программирования разрабатывались таким образом, чтобы обеспечить наиболее эффективное выполнение программ. Компьютеры, которые стоили миллионы долларов, определяли главную часть расходов, тогда как оплата работы программистов, работавших примерно 10000 долларов в год, составляла лишь малую их часть. Программа, созданная с помощью любого языка высокого уровня, должна была выполняться по крайне мере так же эффективно, как и программа, написанная на языке ассемблера, где кодирование осуществлялось вручную. Джон Бэкус, создавший для IBM язык Fortran в конце 50-х годов, десятью годами позже говорит:

«Честно говоря, у нас не было даже отдаленного представления о том, как эта штука (Fortran) будет работать…Поскольку большинство людей в то время совершенно не верили в возможности создания подобной вещи, мы просто делали упор на оптимизацию объектной программы и времени выполнения. Считалось, что машинные коды программ, созданные транслятором, будут совершенно не эффективны и их возможно будет использовать для большинства приложений.

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

Мы никак не организовывали нашу деятельность. Каждую часть программы писали один-два человека, которые, за очень большим исключением, были истинными мастерами своего дела, и все вырастало в большой неразберихе…Когда Fortran уже начал распространяться мы столкнулись с тем фактом, что не все из 25000 его инструкций правильно работают и что возникают проблемы, которые можно выявить только после длительного использования.»

После появления языков Fortran, COBOL, LIPS, ALGOL к середине 60-х годов, Бэкус уже понимал, что программирование изменилось, машины становились все дешевле, а услуги программирования, наоборот росли, появилась реальная необходимость переносить программы с одной машины на другую, а поддержка конечного продукта требовала значительных компьютерных ресурсов.

Как и естественные языки, языки программирования развиваются и в конце концов выходят из употребления, умирают. Так, например, язык ALGOL, который использовался в 60-е годы, его сменил Pascal, который в свою очередь вытесняется языками C++ и Java. В сфере деловых приложений уменьшается роль языка COBOL, его так же заменяют C++ . В 60-е годы активно применялись языки APL, PL/1, SNOBOL4, а в 70-е годы Pascal, в настоящее же время они практически исчезли.

Те старые языки, которые еще применяются в настоящее время, постоянно пересматриваются, что бы соответствовать изменениям в других областях компьютерных технологий. Ну а, более новые языки такие как C++,Java и ML созданы на основе опыта , накопленного в процессе использования этих и сотен других более старых языков. На принципе конструирования новых языков влияют следующие факторы.

  1. Возможности компьютера.
  2. Области применения.
  3. Методы программирования.
  4. Методы реализации.
  5. Теоретические исследования.
  6. Стандартизация.

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

Так что же дает нам знание множества языков программирования?

  1. При знании множества языков программирования можно разрабатывать более эффективные алгоритмы.

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

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

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

  1. Пополнение набора полезных программных конструкций.

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

  1. Выбор более подходящего языка.

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

  1. В дальнейшем легкое изучение новых языков.

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

  1. Разработка новых языков.

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

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

C:\Users\user\Desktop\1.png

C:\Users\user\Desktop\2.png

Рис 2. Факторы, повлиявшие на развитие языков программирования

2.Критерии выбора языка для разработки программ

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

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

И так, «какой же язык выбрать?» , в данном случае вопрос нужно задать вопрос не «какой язык выбрать?», а «для чего нам нужно выбрать язык?».

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

Этот же вопрос, может для нас повернуться совершенно другим образом «На каком языке программирования придется программировать?». Закончив университет, и устроившись на работу не факт, что нам придется работать с тем языком программирования на котором мы учились программировать. Ведь существует очень много фирм, организации и учреждений которые используют в своей деятельности самые разнообразные языки для написания различного рода программ. И важно в этот момент не расстеряться…

Так вот, некоторые критерии для чего, какой язык используется.

  1. Чтобы понимать, как устроен и как работает компьютер, то есть для многих молодых людей может стать интересно, узнать, как вообще работает компьютер, как, что работает на аппаратном уровне, в этом случае подойдет язык – C, так как он ближе всего стоит к аппаратуре.
  2. Чтобы научиться работать с данными и строить сложные структуры данных, а именно если хочешь уметь обрабатывать большие, сложные структуры данных , так вот ничего лучше из современных языков, как C#, Java , в общем-то не придумали.
  3. Чтобы научиться, эффективно программировать алгоритмы со сложными структурами данных. Очень часто алгоритмы работы со сложными данными написанные на C# и Java не удовлетворяют некоторым, за частую достаточно жестким критериям, например быстродействие и эффективность использования памяти, то есть простыми словами можно довольно легко написать какой-нибудь сложный алгоритм на языке Java, но этот алгоритм либо будет работать медленно, либо займет очень много памяти, вот особенности этих языков именно таковы, программировать на них сравнительно не сложно, но эффективность результирующих программ очень часто бывает недостаточно, а требования на программы, могут быть крайне и крайне жесткими, поэтому ничего лучше для данных целей ,чем язык C++ нету. Он в себе сочетает как свойства языка C, по части близости к аппаратуре, так и свойства более высокоуровневых языков по части манипулирования абстрактными, общими понятиями.
  4. Чтобы научиться делать большие и сложные веб-сайты, с другой стороны, если мы не хотим знать не каких сложных алгоритмов, а просто хотим просто делать красивые веб-сайты, тоже одна из прекрасных профессий, которая при хороших навыках, может принести неплохой доход, в этом случае наилучшим решением может стать JavaScript.

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

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

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

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

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

Как уже и говорилось ранее, что бы хорошо уметь работать в разных областях программирования и уметь применять свои навыки в той или иной сфере, нужно знать несколько языков программирования. Наиболее распространенными в данном случае и наилучшими являются C#,C++, Python и желательно знать так же JavaScript.

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

Си (С – «си»); - широко используется при создании системного программного обеспечения. Наложил большой отпечаток 21 на современное программирование (первая версия – 1972 г.), является очень популярным в среде разработчиков систем программного обеспечения (включая операционные системы). Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль.

Является базовым языком операционной системы Unix, однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе - Turbo C (фирмы Borland), Microsoft C и Quick C (фирмы Microsoft ), а также Zortech C (фирмы Symantec). Многие из указанных версий обеспечивают также работу с Си и Си++.

Основные характеристики языка C:

Низкий уровень (близко к аппаратуре). Выжимает из оборудования максимум. Язык хакеров.

Классический язык: фундамент современного мира ПО. Предмет восхищения и критики.

Традиционный процедурный статически типизированный язык.

Есть на любом компьютере

Примеры программ: Windows, Linux, Android, Tizen.

Где можно попробовать: Microsoft Visual Studio, gcc, Clang (Linux).

#include <stdio.h>

int main() {

printf ("Hello, world!\n");

}

Си++ (С++); объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов . Легло на унаследованную от языка Си определенный низкий уровень. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США).

Основные характеристики языка C++:

Выжимает из оборудования максимум. Совместим с С.

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

«Первый этаж» современного мира ПО. Предмет ожесточенной критики со всех сторон.

Мультипарадигменный язык: процедурный подход + ООП + ...

Примеры программ: Google Chrome, Firefox, Safari, Microsoft Office, Adobe Photoshop, YouTube, ваша любимая игра на PC .

Где можно попробовать: Microsoft Visual Studio, g++ (везде), Clang (Linux).

#include <iostream>

int main() {

std::cout << "Hello, world!"

<< std::endl;

}

C# (произносится си шарп) – объектно-ориентированный язык программирования. Разработан в 1998–2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA- 334 и ISO/IEC 23270. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java . По своему характеру он напоминает языки C++ и Java и предназначен для разработчиков программ, использующих языки C и С++ для того, чтобы программисты могли более эффективно создавать Интернет-приложения. Указывается, что C # будет тесно интегрирован с языком XML. Язык сильно вырос в плане популярности и стал чуть ли не самым предпочитаемым языком среди разработчиков Windows и Web-приложений, которые используют .NET Framework. Отчасти привлекательность языка С# связана с его понятным синтаксисом, который происходит от синтаксиса C/C++, но упрощает некоторые вещи. Несмотря на это упрощение, язык С# обладает той же мощью, что и C++.

Основные характеристики языка C#:

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

Похож на Java (все меньше и меньше).

Основной инструмент программирования традиционных приложений

для Microsoft Windows. Можно программировать смартфоны и веб-сайты.

Без C# встанут банки и не включится смартфон; Windows заглючит.

Язык находится под контролем Microsoft; активно развивается.

Где можно попробовать: Microsoft Visual Studio, Mono Develop (Linux).

using System;

public class Hello {

public static void Main() {

Console.WriteLine("Hello, world!");

}

Java - платформенно-независимый язык , объективно- ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц.

Если Java представляет собой очередной язык программирования, возникает вопрос: чем же он так важен и почему он преподносится как революционный шаг в разработке программ? С точки зрения традиционных задач программирования ответ очевиден не сразу. Хотя язык Java пригодится и при построении автономных приложений, самым важным его применением было и остается программирование для сети World Wide Web.

Этот язык был создан компанией Sun в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей.

Несмотря на то, что язык Java объектно-ориентирован, не все типы — объекты. Существуют так называемые примитивы (primitives). Вот список всех примитивов в Java:

  1. byte (число, 1 байт)
  2. short(число, 2 байта)
  3. int (число, 4 байта)
  4. long (число, 8 байтов)
  5. float (число с плавающей точкой, 4 байта)
  6. double (число с плавающей точкой, 8 байтов)
  7. char (символ, 2 байта)
  8. boolean (true (истина) или false (ложь), 1 байт)

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

Несмотря на то ,что язык Java неразрывно связан с Интернетом, важно пом­нить, что это, прежде всего, язык программирования. Разработка и усовершен­ствование языков программирования обусловлены двумя основными причинами: адаптация к изменяющимся средам и областям применения; реализация улучшений и усовершенствований в области программирования.

Основные характеристики языка Java:

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

Между языком и компьютером - прослойка: «виртуальная машина Java».

Основной инструмент прикладного программирования традиционных приложений. Можно программировать смартфоны (Android).

Без Java встанут банки и не включится смартфон.

Язык находится под контролем Oracle; развивается медленно.

Где можно попробовать: Eclipse, IntelliJ IDEA, NetBeans (Linux, Windows).

public static class Hello {

public static void main(String[]args) {

System.out.println("Hello, world!");

}

JavaScript - это новый язык программирования , используемый в составе страниц HTML для увеличения функциональности и возможностей взаимодействия с пользователями. Он был разработан фирмой Netscape в сотрудничестве с Sun Microsystems на базе языка Sun's Java.С помощью JavaScript на Web-странице можно сделать то, что невозможно сделать стандартными тегами HTML. Скрипты выполняются в результате наступления каких-либо событий, инициированных действиями пользователя. Создание Web- документов, включающих программы на JavaScript, требует наличие текстового редактора и подходящего браузера. Некоторые средства для просмотра включают в себе встроенные редакторы, поэтому необходимость во внешнем редакторе отпадает.

Несмотря на отсутствие прямой связи с языком Java, JavaScript может обращаться к внешним свойствам и методам Java- апплетов, встроенных в страницу HTML. Разница сводится к тому, что апплеты существуют вне браузера, в то время как программы JavaScript могут работать только внутри браузера. На первой взгляд кажется, что найти информацию по JavaScript несложно. Сначала создается впечатление, что ее можно увидеть везде: на сервере Netscape, в виде электронных руководств и примеров, во многих других местах. Тем не менее разыскать информацию об объектах, операторах, цветах и всем прочем в одном источнике, чтобы она была всегда под рукой, трудно.

Основные характеристики языка JavaScript:

Для программирования клиентских частей веб-сайтов: всё, что вы видите в браузере,- сделано JavaScript’ом.

Поддерживается любым браузером.

Несложен для написания простых программ; низкий порог входа. Однако, отсутствует контроль ошибок (принцип «можно всё»).

«С» для веб - программирования.

Примеры программ: любой сайт; некоторые приложения для iPhone и Android.

Где можно попробовать: Aptana, WebStorm, ZendStudio, Microsoft Visual Studio for Web.

Python (Пайтон, Питон) - скриптовый язык программирования. В отличие от С исполняется ровно в тот момент, когда мы его запускаем. До последнего момента программа - это всего лишь текст.

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

Популярность Python продолжает расти. Его используют в крупных компаниях и стартапах. Например, Instagram, Intal, Positive Technologies , Eve Online, Houdini.

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

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

Основные характеристики языка Python:

Динамический интерпретируемый объектно-ориентированный язык.

Работает везде.

Прост в изучении (сравнительно с C++, Java, C#).

Без него Google не будет искать.

Примеры программ: Google, Яндекс, Instagram, World of Tanks.

Где можно попробовать: Microsoft Visual Studio (Iron Python), PyCharm,

Eclipse + PyDev, Linux Ubuntu (python) .

print "Hello, world!"

Ruby это - динамический язык программирования ,с открытым исходным кодом с упором на простоту и продуктивность. Он обладает элегантным синтаксисом, который приятно читать и легко писать.

Ruby - это тщательно сбалансированный язык. Его создатель Юкихиро Мацумото (так же известный как “Matz”), объединил части его любимых языков (Perl, Smalltalk, Eiffel, Ada и LIPS) чтобы сформировать новый язык, в котором парадигма функционального программирования сбалансирована принципами императивного программирования.

Он часто повторял, что он “пытается сделать Ruby естественным, но не простым” языком, который отражает жизнь.

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

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

Основные характеристики языка Ruby:

Динамический интерпретируемый объектно-ориентированный язык.

Работает везде.

Прост в изучении (сравнительно с C++, Java, C#).

Язык стартаперов. Удобен для создания прототипов программ.

Примеры программ: Groupon ,Twitter (вначале), Githud .

Где можно попробовать: RubyMine, Ruby on Rails, Aptana, ...

puts 'Hello,world!'

PHP - скриптовый язык программирования, применяющийся для создания сайтов. Важное его достоинство языка PHP – это создания динамических веб-сайтов, работа с базами данных (mysql).

PHP(рекурсивный акроним словосочетания PHP:Hypertext Preprocessor) Это распространенный язык программирования, общего назначения с открытым исходным кодом. PHP сконструирован специально для ведения web разработок и его код может внедряться непосредственно в HTML. Синтаксис языка берет начало из C, Java и Perl. PHP достаточно прост для изучения. Преимуществом PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц.

Важным преимуществом языка PHP перед такими языками, как языков Perl и C заключается в возможности создания HTML документов с внедренными командами PHP. 

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

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

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

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

Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминирование в области языков web -программирования, по крайней мере, в ближайшее время.

Основные характеристики языка PHP:

Для программирования серверных частей веб-сайтов.

Работает везде.

Прост в изучении; низкий порог входа.

«Рабочая лошадка» интернета.

Примеры программ: Вконтакте, Facebook (вначале), Wikipedia, любой крупный сайт.

Где можно попробовать: PhpStorm, Aptana, ZendStudio.

<?php

Print "Hello, world!“

?>

Фортран - старейший и сегодня активно используемый в решении задач математической ориентации язык. Является классическим языком для программирования на ЭВМ математических и инженерных задач.

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

Бейсик (Basic) - несмотря на многие недостатки и изобилие плохо совместимых 20 версий - самый популярный по числу пользователей. Широко употребляется при написании простых программ.

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

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

Несмотря на отдельные недостатки Бейсика, никто не будет отрицать, что Кемени и Куртс достигли основной цели: сделать программирование доступнее для большего числа людей.

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

В своей начальной версии Паскаль имел довольно ограниченные возможности, поскольку предназначался для учебных целей, однако последующие его доработки позволили сделать его хорошим универсальным языком, широко используемым в том числе для написания больших и сложных программ. Существует ряд версий языка (например, ETH Pascal, USD Pascal, Turbo Pascal ) и систем программирования на этом языке для разных типов ЭВМ. Для IBM PC наиболее популярной является система Turbo Pascal фирмы Borland (США).

Турбо Паскаль – это система программирования, созданная для повышения качества и скорости разработки программ (80-е гг.). Слово Турбо в названии системы программирования – это отражение торговой марки фирмы-разработчика.

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

Delphi является «наследником» языка Паскаль; основные операторы в этих языках одинаковы. Но Delphi имеет средство для работы с различными графическими объектами (создания форм, кнопок, меню), а также для обработки сложных структур данных. Поэтому он очень популярен при разработке различных Windows- приложений.

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

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

Система Delphi позволяет решать множество задач, в частности:

  1. Создавать ,законченные приложения для Windows самой различной направленности: от чисто вычислительных и логических, до графических и мультимедиа.
  2. Быстро создавать (даже начинающим программистам) профессионально выглядящий оконный интерфейс для любых приложений.
  3. Создавать мощные системы работы с локальными и удаленными базами данных.
  4. Создавать справочные системы (файлы .hlp) для своих приложений и мн. др.

Delphi – чрезвычайно быстро развивающаяся система. Первая версия – Delphi 1.0 была выпущена в феврале 1995 г. А затем новые версии выпускались ежегодно.

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

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

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

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

Структура программы:

Программа на Турбо Прологе состоит из следующих семи разделов:

  1. Директивы компилятора - дополнительные инструкции по обработке программы;
  2. CONSTANTS - раздел описания констант;
  3. DOMAINS - раздел описания доменов;
  4. DATABASE - раздел описания предикатов внутренней базы данных;
  5. PREDICATES - раздел описания предикатов;
  6. CLAUSES - раздел описания предложений;
  7. GOAL - раздел описания внутренней цели.

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

HTML язык по своей сути не является языком программирования... он является языком разметки гипертекстовых документов. Иными словами он отвечает за расположение в документе наших текстов, рисунков, таблиц.. предназначенных для жизни в сети Интернет. Заставить его посчитать, сколько будет дважды два невозможно, в нем нет логических функций, зато красиво и главное легко выложить информацию о том, что дважды два будет четыре - это запросто. Читается этот язык при помощи знакомых нам программ, именуемых браузерами (обозревателями), которые "знают" стандартные команды html языка, и "пережевывая" их выводят на монитор компьютера документы в том виде, в котором хочет представить их веб мастер - составитель документа.

Лисп (LISP) – функциональный язык программирования. Ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации.

Язык ЛИСП (LISP) был разработан в 1958 году американским ученым Джоном Маккарти как функциональный язык, предназначенный для обработки списков.  LISP - означает "лепетать". С появлением этого языка машина стала пока лепетать, a не говорить по-человечески.

Основные особенности Лиспа

  1. Представление программы и данных производится одинаково - через списки. 
    Это позволяет программе обрабатывать другие программы и даже саму себя.
  2. Лисп как правило является интерпретирующим языком, также как BASIC.
  3. Лисп безтиповый язык, это значит что символы не связываются по умолчанию с каким-либо типом.
  4. Лисп имеет необычный синтаксис. Из-за большего числа скобок LISP расшифровывают как Lots of Idiotic Silly Parentheses
  5. Программы, написанные на Лиспе во много раз короче, чем написанные на процедурных языках.

В основу языка положен серьезный математический аппарат:

  1. лямбда-исчисление Черча
  2. алгебра списочных структур
  3. теория рекурсивных функций

Долгое время язык использовался узким кругом исследователей. Широкое распространение язык получил в конце 70-х - начале 80-х годов с появлением необходимой мощности вычислительных машин и соответствующего круга задач. В настоящем - Лисп одно из главных инструментальных средств систем искусственного интеллекта. Он принят как один из двух основных ЯП для министерства обороны США и постепенно вытесняет второй ЯП - АДА.
Система Auto CAD разработана на Лиспе.

АДА - является языком, победившим (май 1979 г.) в конкурсе по разработке универсального языка, проводимым Пентагоном с 1975 году. Разработчики – группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА – прямой наследник языка Паскаль. Этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность параллельной обработки, управления процессами в реальном времени и многое другое, чего трудно или невозможно достичь средствами более простых языков.

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

Абстракции

Переменные объектов
Методы объектов
Переменные классов
Методы классов

Да
Да
Нет
Нет

Ограничение доступа

Для переменных
Для методов

Общедоступные, обособленные
Общедоступные, обособленные

Модульность

Виды модульности

Пакет (Спецификация-тело)

Иерархия

Наследование
Обобщенные блоки
Метаклассы

Нет
Да
Нет

Типирование

Строгое типирование
Полиморфизм

Да
Нет

Параллельность

Многозадачность

Да (определяется в языке)

Устойчивость

Устойчивость объектов

Нет

Табл.1 Характеристики языка АДА 1

Оберон (Oberon) – язык общего назначения, созданный автором Pascal и Modula-2 Никлаусом Виртом и его коллегами из Швейцарского федерального технического института г. Цюрих в ходе разработки одноименной операционной системы для однопользовательской рабочей станции Ceres. Язык и операционная система названы именем одного из спутников планеты Уран – Оберона. Имеет долгую историю создания, является наследником Algil 60 (1960), Pascal (1970) и Modula (1979).

2.2 Какие языки нужны компаниям?

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

Samsung

C, C++, Java, Python, JavaScript

Microsoft

C, C++, C#, HTML5/ JavaScript

Google

C, C++, Java, Python, Go, HTML5/ JavaScript

Apple

Objective – C, Swift

Facebook

PHP, HTML5/ JavaScript, Hack

Интернет - стартапы

Python, Ruby

Табл.2 Языки, которые используют компании

Сейчас многие проекты не живут каким-то одним языком, то есть у них часть какая-то живет на одном языке, часть — на другом, ещё какая-то часть — на третьем.

Почему некоторые языки вроде Python, который никакая компания его не поддерживала вначале, захватили рынок. PHP, который ещё и плохо спроектирован, тоже сам по себе взял и захватил рынок (большую часть). А всякие миллиарды долларов вложены (лектор показывает на Ada) и никуда не пошли, ничего не произошло. С чем это связано? Это связано с тем, что нет инфраструктуры вокруг этих языков. То есть язык может быть отличный, но пока нет документации, пока нет сообщества, которое умеет отвечать на вопросы (на Stack OverFlow) и, наконец, самое главное, пока нет большого количества библиотек, язык не выстреливает. 

Какие языки хорошие, а какие плохие? Ну внутри какой-то группы языков, например между Ruby , Python и PHP, что выбрать? Конечно, правильный ответ – Питон , но на самом деле разница между ними в количестве багов допускаемых, в количестве ещё чего-то - 5%, ну, может 10%. То есть, если у вас уже готовый проект на PHP написан, то никто в здравом уме не будет говорить: «Давайте перепишем всё на Python». Скажут: «Давайте наймём ещё PHP-разработчиков и будем дальше писать на PHP». Отлично, это неплохой выбор. Понятное дело, если вы вдруг затеете писать какой-то проект, то возможно разумно сейчас выбрать Питон. Хотя, это тоже зависит. Может, у вас на рынке куча дешёвых PHP-разработчиков, а питоновские дорогие.

2.3 Популярность языков программирования

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

Март 2018

Март 2017

Изменения

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

Рейтинг

Сдвиг

1

1

Java

14.941%

-1.44%

2

2

C

12.760%

+5.02%

3

3

C++

6.452%

+1.27%

4

5

change

Python

5.869%

+1.95%

5

4

change

C#

5.067%

+0.66%

6

6

Visual Basic .NET

4.085%

+0.91%

7

7

PHP

4.010%

+1.00%

8

8

JavaScript

3.916%

+1.25%

9

12

change

Ruby

2.744%

+0.49%

10

-

change

SQL

2.686%

+2.69%

11

11

Perl

2.233%

-0.03%

12

10

change

Swift

2.143%

-0.13%

13

9

change

Delphi/ Object Pascal

1.792%

-0.75%

14

16

change

Objective-C

1.774%

-0.22%

15

15

Visual Basic

1.741%

-0.27%

16

13

change

Assembly language

1.707%

-0.53%

17

17

Go

1.444%

-0.54%

18

18

MATLAB

1.408%

-0.45%

19

19

PL/SQL

1.327%

-0.34%

20

14

change

R

1.128%

-0.89%

Табл.3 Популярность языков на март 2018

Если разделять языки программирования по популярности, то они делятся на три эшелона. Первый эшелон включает мейнстрим-языки, такие как Java, JavaScript, Python, Ruby, PHP, C#, C++ и Objective-C. Несмотря на то, что некоторые из ведущих языков возможно увядают.

Языки второго эшелона пытаются пробиться в мейнстрим, но ещё не добились этого. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний. Scala, Go, Swift, Clojure и Haskell — языки, которые можно отнёсти ко второму эшелону. Некоторые компании используют эти языки для отдельных сервисов, но широкое применение встречается редко (за исключением Swift, который начинает обгонять Objective -C в качестве основного языка для iOS). Go и Swift имеют хорошие шансы на переход из второго эшелона в первый в течение ближайших двух-трёх лет.

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

  1. С, С++: сохранят популярность, будут активно развиваться, становиться сложнее (особенно С++) и мощнее.
  2. Python: популярность будет возрастать; может потеснить Java.
  3. Java, C#: сохранят текущую популярность. С# будет прогрессировать заметно активнее, чем Java.
  4. Доля PHP будет постепенно снижаться.
  5. Получат распространение новые языки программирования: Go, Swift, Rust, ...
  6. Стандартные библиотеки всех языков: будут активно развиваться, становиться еще мощнее и удобнее в использовании.

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

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

  1. Ни один из мейнстримных языков не исчезнет –ни через пять лет, ни через десять.

Ранее, были представлены языки программирования, которые использовались достаточно давно, их можно уверенно называть «старыми» языками программирования. Так вот не один из этих языков реально не исчез и не исчезнет, до сих пор тысячи программистов программируют на этих языках. Тоже самое можно сказать и о тех языках, которые сейчас считаются мейнстримными. C++ через двадцать лет никуда не денется , Java будет жить.

Так вот, несмотря ни на какие катаклизмы, ни Java, ни C, ни C++, ни один из мейнстримных языков в ближайшее время не исчезнет.

Заключение

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

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

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

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

Библиография

Вестник АГТУ. Сер. Управление, вычислительная техника и информатика 2009. Особенности языка программирования для обучения/ В.В. Лаптев, В.В. Толасова

Пратт Т., Зелковиц М. Языки программирования. Разработка и реализация 2002.

Себеста Р.У. Основные концепции языков программирования 2001.

Эккель Б., Философия Java. Библиотека программиста 2009.

Шилдт Г. - Java 8. Полное руководство – 2015

Технические науки. Языки программирования: классификация, особенности, критерии выбора. Научная специальность 05.13.17 – Теоретические основы информатики / А.В. Пахунов

Ляхович В.Х. Основы информатики / В.Х. Ляхович. – М.: КноРус, 2016. – 346 с.

Колисниченко Д. PHP и MySQL. Разработка Web - приложений / Д. Колисниченко– П.: БВХ - Петербург, 2015. – 592 с

Основы алгоритмизации и программирования : учебное пособие / Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с.

Интернет ресурсы

Пять поколений языков программирования. Языки программирования.

Microsoft/ http://life-prog.ru/view_zam2.php?id=194&cat=5&page=11

Эволюция языков программирования http://www.urtt.ru/bib/dataindex/oaip/lection/_html/lect_05.htm

Языки программирования и их классификация http://www.maksakov-sa.ru/ProgrProd/YazProgr/index.html

Вводный курс по языку программирования Java. Переменные и типы/ http://www.fandroid.info/2-vvodnyj-kurs-po-yazyku-programmirovaniya-java-peremennye-i-tipy/

Путь к Java Junior Developer/ https://habrahabr.ru/post/203688/

Что такое Python и где он пригодится/ https://netology.ru/blog/python

Учебные материалы. Современные языки и системы программирования/ https://works.doklad.ru/view/P_kVpge8BBw/all.html

Классификация языков программирования http://bourabai.ru/alg/classification.htm

Rudy лучший друг программиста/ https://www.ruby-lang.org/ru/about/

Руководство по PHP. Что такое PHP? / http://php.net/manual/ru/intro-whatis.php

PHP введение в курс языка/ http://www.php.su/php/?php

Логическое программирование на языке Prolog / http://bourabai.kz/alg/prolog.htm

Языки программирования: критерии выбора/ Зуев Евгений Александрович, к.ф-м.н., ведущий программист Исследовательского центра Samsung, преподаватель зарубежных и российских вузов. http://docplayer.ru/25996021-Yazyki-programmirovaniya-kriterii-vybora.html

Классификация языков программирования/ Н.П. Быканов, магистрант Балтийский государственный технический университет «ВОЕНМЕХ» им. Д.Ф. Усти- нова (Россия, г. Санкт-Петербург) http://intjournal.ru/wp-content/uploads/2016/11/Bykanov.pdf

Что такое HTML язык и с чем его едят../ http://www.webremeslo.ru/html/glava1.html

Введение. Основные понятия Лиспа/ http://www.mari-el.ru/mmlab/home/lisp/LECTION1/index.html

Язык программирования АДА/ http://bourabai.kz/alg/ada.htm

Классификация языков программирования/ © Кинзябулатова Р.А., Маврина А.Ю.,2016 http://www.aeterna-ufa.ru/sbornik/NK136-2.pdf#page=68

TIOBE Index for March 2018/ https://www.tiobe.com/tiobe-index//

  1. Парадигма – совокупность идей и понятий, определяющих подход к программированию.