Доброго времени суток читатели.

Хочу представить собственный перевод статьи Петра Ван Роя - "Programming Paradigms for Dummies: What Every Programmer Should Know".

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

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

Прошу оценивать строго и справедливо, так как это один из моих самых первых переводов.


В этой главе описывается введение во все основные парадигмы программирования, их основные концепции и связи между ними. Мы получим широкое представление, помогающее программисту выбрать правильные концепции, необходимые для решения прикладных (насущных) задач. Мы получим иерархию почти о 30-ти парадигмах программирования и как они связаны. Большинство из них различаются только одной или несколькими концепциями, но это делает мир программирования разнообразнее. Мы кратко изучим как парадигмы программирования влияют на (структуру) язык программирования и два (интересных) взгляда: двупарадигмальные языки[1] и языки описания[2]. Также изучим основные концепции программирования:

  • записи;

  • замыкания;

  • параллелизм[3];

  • именованные состояния.

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

  1. декларативный параллелизм[4];

  2. функциональное реактивное программирование;

  3. дискретное программирование;

  4. программирование в ограничениях.

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

Замечания по переводу:

  1. definitive language – дословно «язык объявлений»;

  2. dual-paradigms language – отсебятина в виде слова "двупарадигмальный", так как не смог подобрать другой вариант;

  3. independence (concurrency) – дословно «независимость (параллелизм)». Под контекстом подразумевается независимость в исполнении программ, то есть тот же параллелизм;

  4. declarative concurrency (both eager and lazy) – дословно «декларативный параллелизм (и жадный, и ленивый)».