Иногда различают пять поколений языков программирования, правда данное разделение является спорным:
Первое поколение
Начало 1950-х годов - язык первых компьютеров. Первый язык ассемблера, созданный по принципу «одна инструкция - одна строка».
Основная отличительная особенность: ориентирование на конкретный компьютер.
Второе поколение
Конец 1950-х - начало 1960-х г.г. Разработан символьный ассемблер, в котором появилось понятие переменной. Это первая полноценная язык.
Основная отличительная особенность: ориентирование на абстрактный компьютер с такой же системой команд.
Третье поколение
1960-е г.г. - Языки программирования высокого уровня. Их характеристики:
- относительная простота;
- независимость от конкретного компьютера;
- возможность использования мощных синтаксических конструкций.
Простота языка позволяет писать небольшие программы и людям, которые не являются профессиональными программистами.
Основная отличительная особенность языка третьего поколения: ориентирование на алгоритм (алгоритмические языки).
Примеры: Си, Паскаль, Джава, Бейсик, и многие другие.
Всего в мире существует около 200 популярных языков программирования третьего уровня.
Четвертое поколение
Начало 1970-х г.г. до сегодняшнего времени. Создаются языки, предназначенные для реализации крупных проектов. Проблемно-ориентированные языки, оперирующие конкретными понятиями узкой области. Как правило, в такие языки встраивают мощные операторы, позволяющие одной строкой описывать функции, для описания которых языках младших поколений потребовалось бы сотни или даже тысячи строк исходного кода.
Часто относят: SQL, SGML ( HTML, XML ), Prolog, и многие другие узкоспециализированных декларативных языков. Правда ряд языков, которые относят к четвертому поколению, не являются языками программирования как таковыми. Например SQL является языком запросов к базам данных, HTML является языком разметки гипертекста, а не полноценными языками программирования, скорее они выступают своеобразными специализированными дополнениями к языкам программирования. Тоже самое касается XML.
Основная отличительная особенность языка четвертого поколения: приближение к человеческой речи (декларативные языки).
Некоторые языки имеют черты одновременно и третьего и четвертого поколений.
Пятое поколение
Пятого поколения языков программирования пока не существует.
Производители пропроиетарних программных продуктов часто пытаются приписать своим продуктам какие маркетинговые особенности, и порой указывают что их продукт - это «язык пятого поколения». В действительности, все эти продукты - это просто среды для ускоренного создания продуктов (Rapid Application Development - RAD), и используют языки третьего и четвертого поколений.
Речь пятого поколения вытеснит ли существенно потеснит языка третьего (напр. Java) и четвертого поколения (например SQL) за счет значительно увеличенной производительности труда программиста - в 10-1000 раз. По прогнозам, 5GL будет оперировать мета-мета-данными.
Сейчас существует единственный язык, который работает с мета-мета-данными, - это язык команд менеджеров пакетов или менеджеров зависимостей, таких как apt, yum, smart, maven, cpan и другие. Они оперируют над метаданными о метаданных о данных в пакетах. Использование apt-get, yum и smart действительно чрезвычайно повысило производительность системных администраторов - примерно в 1000-и дело. Использование менеджеров зависимостей, таких как maven, cpan, rakudo, pim, easy_install, действительно значительно повысило производительность программистов, примерно в 10-ть раз. К сожалению, эти языки являются языками командной строки и не являются языками программирования.