Основные языки программирования и хронология их создания
Существует около 8500 языков программирования (данные не преувеличены), однако, несмотря на такое разнообразие, число языков, на которых пишет большинство, с трудом переваливает за десяток. Причин, почему тот или иной язык не стал популярным, ничуть не меньше, чем самих языков. Это и распри между их создателями, и плохо организованный процесс продажи, и появление новых технологий, и просто откровенная «недоработка». Перечислим основные языки программирования в алфавитном порядке.
Ада, АПЛ, Ассемблер, ActionScript. ABAP/4, AutoIt, AWK, BASIC, C, Кобол, C++, C#, Cw, Clarion, Cloiure, ColdFusion, CommonLisp, D, dBase, Delphi, Eiffel, Erlang, F#, Forth, Фортран, Gambas, Go, Groovy, Icon, Java, JavaScript, Limbo, Lua, MATLAB, Obiect Pascal, Obiective-C, OCaml, Oz, Оберон, Parser, Паскаль, Perl, PHP, PowerBASIC, PureBasic, Python, ПЛ/1, Пролог, Ruby, Scala, Scheme, Smalltalk, SQL, PL/SQL, Tcl, Vala, Visual Basic, VB.NET.
Академические: Clean, Curry, Haskell, Лого, ML, Модула-3, РеФал, Симула.
Прочие: Алгол, Алгол 68, Модула-2, Miranda, Hope.
Хронология создания языков программирования представлена в табл. 2.
Хронология создания языков программирования
| Язык | Год создания | Вид | Автор | география создания |
| Фортран (Fortran) | А | Джон Бэкус | Америка | |
| АПЛ (APL) | I | Джеймс Гослмнг | Америка | |
| Лисп (LISP) | F | Джон Маккрти | Америка | |
| АЛГОЛ-60 (Algol 60) | А | Питер Наур | Международный | |
| Кобол (Cobol) | А | Группа авторов | Международный | |
| Снобол (Snobol) | I | Ральф Грисуолд | Америка | |
| Симула (Simulf) | В | Кристен Нигаард | Европа | |
| Бейсик (Basic) | A | Дион Кемени* | Америка | |
| ПЛ/1 (PL/1) | A | Джордж Радин | Америка | |
| Алгол-68 (Algol 68) | A | Адван Вайнгартен+ | Международной | |
| Сетл (SETL) | I | Джек Шварц | Америка | |
| Форт (FORTH) | A* | Чарльз Мур | Америка | |
| Паскаль* (Pascal) | С | Николаус Вирт | Европа | |
| Си (С) | С | Деннис Ритчи | Америка | |
| Smalltalk | В | Алан Кей | Америка | |
| Пролог (Prolog) | E | Алан Кольмеро+ | Европа | |
| Scheme | F | Гай Стил | Америка | |
| Icon | I | Ральф Грисуолд | Америка | |
| Модула-2 (Modula-2) | D | Николаус Вирт | Европа | |
| Ада (Ada) | Н | Джин Ишбиа | Америка | |
| Оккам (Occam) | С | Дэвид Мэй* | Европа | |
| Си++ | Н | Бьорн Страутруп | Америка | |
| Common Lisp | F | Гай Стил+ | Америка | |
| Objective С | Н* | Брэд Кокс | Америка | |
| Оберон (Oberon) | D* | Николаус Вирт | Европа | |
| Модула-3 | Н* | Билл Калсов* | Америка | |
| Java | Н | Джеймс Гослинг | Америка | |
| Limbo | D* | Дэнис Ритчи | Америка | |
| С# | Н* | Андерс Хейльсбельрг+ | Америка |
Конечно, в табл. 2 представлены не все языки высокого уровня. Поэтому кратко перечислим, какие наиболее популярные языки вошли в ту или иную группу.
Процедурные (императивные) языки: Ada (язык общего назначения), Basic (версии начиная с Quick Basic до появления Visual Basic), Си, КОБОЛ, Фортран, Модула-2, Pascal, ПЛ/1, Рапира. Объектно-ориентированные языки: C#, C++, Java, Delphi, Eiffel, Simula, Object Pascal, VB.NET, Visual DataFlex, Perl, PowerBuilder, Python, Scala, Ruby, Smalltalk, Ada, Xbase++, Vala, PHP.
Языки описания сценариев: Perl, Python, REXX, Tcl предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания сценариев. Так, среди разработчиков Web-страниц популярен JavaScript.
Все популярные языки можно также разделить на универсальные и специализированные. Универсальные языки используются для решения разных задач. Эти языки позволяют решить любую задачу, хотя трудоемкость решения конкретной задачи в разных языках будет сильно отличаться.
К универсальным языкам можно отнести: Pascal, Basic, C++, Java, Delphi, Borland, C#. Специализированные языки предназначены для решения задач одного, максимум нескольких, видов задач.(например, работы с базами данных, web-программирования или написание скриптов для администрирования операционных систем). Например, к языкам, предназначенным для web-программирования относятся:
а) языки, исполняющиеся на сервере, поддерживающего Web-сайт: РНР, Perl, VBScript;
б) языки, исполняющиеся на браузере клиента: JavaScript, JScript, VBScript, HTML и др. Языки программирования можно классифицировать по типам задач.
Эволюция языков программирования
Пятница — самое время расслабиться и вспомнить, с чего все началось. Представляем вам краткий экскурс в историю разработки от GeekBrains.
Доисторическая эра
С точки зрения определения даты рождения языка программирования существует некоторая двойственность.
С одной стороны, в первой половине 19 века Ада Лавлейс описала вычислительную машину и ввела основополагающие понятия цикла и рабочей ячейки, за что получила гордое звание первой женщины-программиста.
С другой, первый язык программирования в современном представлении зародился лишь во время Второй мировой войны на релейной машине Z4 немецкого изобретателя Конрада Цузе. Его название Планкалкюль (нем. Plankalkül — исчисление планов), и это был полноценный язык высокого уровня, поддерживающий условные операторы, арифметические операции, массивы, циклы, исключения и утверждения. Доподлинно известно, что в конце 40-х годов Планкалкюль позволял ЭВМ решать шахматные задачи.
Изобретение Цузе могло бы изменить ход истории, однако итоги войны и усилия американцев по популяризации собственного машинного языка отложили полноценное явление миру Планкалкюля вплоть до 1972 года.

Z4 в Немецком музее, Мюнхен
Языки для компьютеров
Вместо этого эволюция пошла по пути машинного языка. Он был удобен для компьютеров, но не очень удобен для программистов. Это была буквально работа с железом вручную: были лишь те команды, которые были зашиты в процессор, все остальные операции приходилось реализовывать вручную.
Прямым развитием машинного языка стал язык ассемблера. Это был первый размен скорости на удобство: ассемблер был чуть менее нативным, но гораздо более дружелюбным к программисту. До языков высокого уровня, комфортных для программиста, было еще далеко.
Качественный скачок произошёл после изобретения транзистора и первых доступных компьютеров. Это побудило в период с 1954-1957 году компанию IBM активно работать над разработкой популярного коммерчески языка Fortran (от англ. Formula и Translation).
Fortran — язык для научных и инженерных вычислений. Считается, что именно он стал первым реализованным языком высокого уровня. Благодаря большому количеству математических библиотек Fortran был и остается важным языком для разного рода научных изысканий.
Далее началось бурное развитие программирования: практически одновременно появились Algol, алгоритмический высокоуровневый язык, активно использовавшийся в СССР и Европе, LISP и COBOL.
Языки для народа
Но по-настоящему массовым программирование стало с появлением языка BASIC в 1964 году. Преподаватели Дартмутского Колледжа Джон Кемени и Томас Курц разработали его для обучения студентов основам программирования ЭВМ.
BASIC был алгоритмическим языком, для его создателей было важно не быстродействие и эффективность, а легкое понимание. Тем не менее BASIC быстро обрёл популярность в реализациях от Microsoft и Apple. Но не все были им довольны. По мнению противников языка простота и бесструктурность ранних версий BASIC поощряли применение порочных и опасных методик разработки.

«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они умственно изувечены без надежды на восстановление».
Эдсгер Дейкстра.
Кайнозой
В 1960-х годах компания Bell Labs всерьёз взялась за разработку операционной системы Unix для своих миникомпьютеров. Первые ОС были написаны на ассемблере, но эксперимент оказался неудачным.
Потом в алфавитном порядке Кеном Томпсоном и Деннисом Ритчи был специально разработан интерпретируемый язык B (Би), но и в этот раз результат оставлял желать лучшего.
Всё изменилось с третьей попыткой в 1972 году и языком C, который оказался настолько успешным, что и спустя 40 лет занимает важное место в разработке ПО. Например, по данным IEEE Spectrum С в 2015 году стоял на втором месте: «The 2015 Top Ten Programming Languages».
В другом полушарии на останках языка Algol-68 Никлаус Вирт разработал Pascal. Цель он преследовал ту же самую, что и BASIC — простота в обучении и наглядность выполняемых операций.
Несмотря на внешнюю незамысловатость, Pascal оказался крайне эффективным языком не только в деле обучения, но и в серьезной разработке. Он остаётся крайне востребованным как в школах, так и в мире больших приложений: Total Commander, WinRAR, ранние версии Skype и Nero Burning ROM были написаны на Pascal.
В конце 1970-х были сформированы принципы ООП, на основе которых был доработан язык C, получив сперва название «С with classes», а потом более привычное взгляду C++. Отчасти из-за совершенства творения, отчасти из-за славы одного из первопроходцев, C++ долгое время оставался самым востребованным языком. На нём были написаны операционные системы Symbian, Windows и OS X, браузеры Google Chrome и Mozilla, и ещё тысячи популярных приложений.
Через четыре года после появления первой версии C++ Ларри Уолл разработал Perl — «практичный язык для извлечения данных и составления отчётов» (Practical Extraction and Report Language). Изначально язык обрёл популярность благодаря функциям, заложенным в названии, однако позднее расширил свои возможности и аудиторию.
Сегодня Perl по-прежнему активно используется в качестве удобного средства обработки текста в командной строке, но не меньше востребован и в системном администрировании, веб-разработке и даже играх.
Современность
В статье об истории эволюции языков просто обязан упоминаться Python, горячо любимый не только преподавателями GeekBrains, но и, судя по широте использования, многими иностранными университетами и крупными зарубежными компаниями. Его структура и философия направлены на то, чтобы ускорить разработку готового продукта программистом. С точки зрения развития, это куда более совершенный язык, нежели все существовавшие до 1991 года. Он минималистичен, но при этом более читабелен, достаточно часто обновляется и прекрасен по соотношению «скорость — качество разработки».
Впрочем, теми же самыми характеристиками можно описать и Ruby, увидевший свет в 1995 году, с поправкой на то, что у Юкихиро Мацумото было 2 года, чтобы подумать, чем его язык может стать лучше современников.
Развитие интернета в конце XX века требовало более качественных языков обработки текста и данных. Так на свет появились HTML, PHP, CSS и JavaScript, без которых сегодня очень трудно представить веб-разработку.
Вместе с этим появился и Java — объектно-ориентированный язык, использующий виртуальную машину JVM. Это обеспечивает языку практически полную независимость от машины, на которой производится запуск. Совокупность этих факторов и популярность смартфонов c ОС Android позволяет Java возглавлять список самых популярных языков по версии Tiobe, а нам — рекомендовать его начинающим разработчикам в качестве первого или основного.
Если взглянуть на этот же самый рейтинг, в конце второго десятка можно отыскать современные языки программирования. Например, Swift — продукт компании Apple, популярный не только за счет своих качеств, но и благодаря громкому имени производителя.
Будущее
Уже сейчас появляются языки программирования, которые можно назвать языками сверхвысокого уровня. Они предназначены не для написания прикладных программ, а для обработки больших массивов данных и статистики. В их числе R, MATLAB и Julia.
Можно предполагать, что в будущем появятся человекоориентированные языки, на которых написать программу будет не сложнее, чем пост в ЖЖ. С другой стороны, квантовые компьютеры потребуют свой особый, квантовый ассемблер.
Как думаете, что будет дальше, и на какой из существующих языков поставите вы?
Как появились языки программирования: исторический экскурс в истоки мира программирования
Языки программирования создавались и разрабатывались в течение многих лет. Некоторые из них до сих пор находятся в процессе развития, так как потребности потребителя растут, разрабатывается новое «железо» и программистам приходится искать новые решения, а также принципы работы с инновациями.
Само понятие «язык программирования» можно трактовать как формальную знаковую систему, которую программисты используют для написания компьютерных программ. Однако, о языке машин инженеры стали задумываться намного раньше, чем у них появилась возможность писать на нем и создавать программы.
Идею о создании языка машин впервые в 19 веке высказал ученый Чарльз Бэббидж. Его считают основателем и отцом первого в мире компьютера. На тот момент его идеи были лишь предположениями. Он не знал о мониторах и микросхемах, но ему удалось точно описать основные принципы работы вычислительных машин. Со временем инженеры сделали грандиозный вывод о том, что эффективное использование компьютеров заключается в правильно подобранных алгоритмах.
Пик развития языков программирования пришелся на 50-е годы 20 века. Тогда, чтобы программировать, инженерам приходилось знать полностью всю архитектуру компьютера и понимать его машинные коды. В 50-е ты не мог быть программистом, если не знал, как собирается компьютер и из чего он состоит. У компьютеров того времени даже клавиатуры не было, но были перфокарты, которые не очень упрощали будни тогдашнего инженера-программиста.
Когда человеку нужно упростить свой труд, сделать его более автоматизированным, он начинает придумывать новые идеи и изобретать то, что могло бы облегчить ему жизнь. Так начали появляться первые языки программирования.
В то время инженеры-программисты были вынуждены детально изучать все машинные команды, а потом внимательно писать код, каждый раз тщательно его проверяя. Чтобы как-то упростить задачу, программистам требовалось перевести цифровые обозначения операций в буквы. Так появился первый язык программирования – Ассемблер (от английского assemble – собирать). Сейчас его считают языком низкого уровня программирования, но в свое время он произвел настоящий фурор. Программы, написанные на Ассемблере, были достаточно эффективны и работоспособны.
Затем программистам понадобилось создать язык более высокого уровня, который бы ориентировался на написание и запуск алгоритмов. В 1954 году был изобретен новый язык программирования – FORmula TRANslator или просто FORTRAN. Он жив до сих пор и достаточно востребован в Data Science. Существует множество версий Фортрана, но первая и оригинальная из множества версий использовалась еще на перфокартах, как и Ассемблер. Затем внедрение новых типов цифровых устройств побудило программистов не стоять на месте и создавать новые языки машин.
После Фортрана в 1958 году изобрели Algorithmic Language или Algol. Его создали на основе обособленных блоков. Это алгоритмический язык, которым сейчас уже никто не пользуется. По сути его можно назвать мертвым. Однако, в 58 году он был очень востребованным, так как предназначался для научных отчетов и публикаций.
Стремление программистов преобразовать язык программирования в подобие человеческого языка повлияло на создание COBOL в 1959 году. Его синтаксис значительно отличался от Ассемблера и Фортрана и был похож на естественный английский. Это стало новым веянием в мире программирования, так как у программистов появилась возможность работать с текстом и записями, а не машинным кодом.
Все вышеперечисленные языки программирования уже стали историей. Они очень стары и ими практически никто не пользуется. На их основе были созданы более современные языки, такие как С, С++, С#, Java и многие другие. О них мы подготовили для вас серию нарративов, которые мы начнем публиковать со следующей недели. У вас будет возможность подробнее ознакомиться с преимуществами и историей современных языков программирования. Вся информация будет простой и понятной.
Если мы сумели вас заинтересовать – подписывайтесь на наш канал. Дальше – все самое интересное!

