<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.aprelteam.by/index.php?action=history&amp;feed=atom&amp;title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F</id>
	<title>Языки программирования - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.aprelteam.by/index.php?action=history&amp;feed=atom&amp;title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F"/>
	<link rel="alternate" type="text/html" href="https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;action=history"/>
	<updated>2026-08-02T17:27:57Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.44.6</generator>
	<entry>
		<id>https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;diff=3896&amp;oldid=prev</id>
		<title>APRELKUN: Перенаправление на Язык программирования</title>
		<link rel="alternate" type="text/html" href="https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;diff=3896&amp;oldid=prev"/>
		<updated>2024-04-14T15:14:50Z</updated>

		<summary type="html">&lt;p&gt;Перенаправление на &lt;a href=&quot;/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&quot; title=&quot;Язык программирования&quot;&gt;Язык программирования&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;amp;diff=3896&amp;amp;oldid=2964&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>APRELKUN</name></author>
	</entry>
	<entry>
		<id>https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;diff=2964&amp;oldid=prev</id>
		<title>APRELKUN в 11:19, 26 октября 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;diff=2964&amp;oldid=prev"/>
		<updated>2023-10-26T11:19:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;amp;diff=2964&amp;amp;oldid=2963&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>APRELKUN</name></author>
	</entry>
	<entry>
		<id>https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;diff=2963&amp;oldid=prev</id>
		<title>APRELKUN в 11:17, 26 октября 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;diff=2963&amp;oldid=prev"/>
		<updated>2023-10-26T11:17:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 14:17, 26 октября 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l306&quot;&gt;Строка 306:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 306:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Все мейнстримовые языки сейчас — объектно-ориентированные. Так что применяется ООП почти везде, где надо и где не надо. Иногда — [[Как что-то плохое|даже работает]]. Помимо классической C+±подобной реализации, характерные для [[C++]] и потомков ([[Java]], [[C Sharp|C#]], сходные вещи есть и в [[PHP]]), есть более мягкая реализация без приватных полей ([[Python]], Ruby), чуть другое OOP через prototype (характерен для [[JavaScript]], но средний веб-проггер на него забивает) и более хитрый и новомодный «через подмешивание» (Scala, Rust, Go). Последний грозятся добавить в C++, чтобы олдфаги точно на стенку полезли.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Все мейнстримовые языки сейчас — объектно-ориентированные. Так что применяется ООП почти везде, где надо и где не надо. Иногда — [[Как что-то плохое|даже работает]]. Помимо классической C+±подобной реализации, характерные для [[C++]] и потомков ([[Java]], [[C Sharp|C#]], сходные вещи есть и в [[PHP]]), есть более мягкая реализация без приватных полей ([[Python]], Ruby), чуть другое OOP через prototype (характерен для [[JavaScript]], но средний веб-проггер на него забивает) и более хитрый и новомодный «через подмешивание» (Scala, Rust, Go). Последний грозятся добавить в C++, чтобы олдфаги точно на стенку полезли.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==== Не могу молчать! ====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;В своё время был эпичный срач, в котором олдфаги утверждали что любой алгоритм можно написать и без ООП, а потому оно [[не нужен|не нужно]]. На что сторонники ООП утверждали, что ООП улучшает структуру программы, а «любой алгоритм» можно написать на любом тьюринг-полном языке, включая Brainfuck и Assembler. На это утверждение шёл ответ, что ООП не улучшает структуру, а превращает программу в mind-fuck с трудноуловимыми ошибками и утечками памяти. Что для нуба и в самом деле правда, и потому сторонники ООП это обвинение [[троллинг|не только не отрицали]], но и указывали на рукожопость и скудоумие, особенно популярным троллингом было «старую собаку не научишь новым фокусам». Финальную точку в сраче ВНЕЗАПНО поставила [[Windows]] с ее объектно-ориентированным WinAPI (ЧСХ, со [[Костыль|своей реализацией ООП на C]]). Это был EPIC WIN ООП.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Конкретно соснувшие хуйца олдфаги возненавидели лично Билла Гейтса (который в общем-то объективно говоря ничем не хуже Стива Джобса), и стали дружно фапать на тогда ещё полностью консольный [[UNIX]] с его чисто процедурным POSIX, вызывавший у них слезу умиления и ностальгию по тем временам, когда ещё не было ненавистных им юзеров, сидящих на винде. Ну а [[Linux|вчерашнее школоло]], студенты-первокурсники, не понимая, где ООП нужен, а где нет, попыталось [[Есть два стула|сесть на оба этих взаимоисключающих стула]] сразу: с одной стороны, прониклись модным и крутым ООП, развивающимся под Windows же (sic!), а с другой — стали подражать олдфагам, ненавидящим Гейтса, без понимания причин этой ненависти. Вот так: весь этот ихний Масюкль — обезьянничание с ненавидимых и проклинаемых ими же технологий.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==== Продолжение банкета ====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Постепенно роль основных критиков ООП перешла к фанатам [[LISP|Лиспа]]. Забавно, что волну погнал Джон Бэкус, автор Фортрана: получая премию Тьюринга, он высказался в том смысле, прямо со сцены, что «все эти годы мы писали код неправильно». И вот недавно Micro$oft (уже без Била Гейтса) выпустила [[Неведомая Ёбаная Хуйня|гибрид ежа с ужом]] — язык [[:w:F Sharp|F#]], сочетающий в себе «несовместимое»: ООП и функциональное программирование (на самом деле F# — это oCaml с блекджеком и LINQом под .net). Есть аналог и для JVM — [[:w:Scala (язык программирования)|Scala]]. И совсем уж левый Nemerle. Так что готовимся к продолжению банкета со вкусной едой.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Функциональное программирование ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Появилось ещё до языков программирования, когда умный математик Алонзо Чёрч придумал лямбда-исчисление. Впервые было реализовано в Lisp (вторым по счёту ЯП после Фортрана). Заключается в низведении функций до уровня данных, а переменных до уровня констант. Идея здравая, поэтому настоящим программистам нравится, а заказчикам нет. А всё потому, что в функциональной парадигме нужно много думать, а потом написать десяток строчек, в то время как при императивном подходе можно написать 100 строчек вообще не думая — с тем же эффектом. Заказчик видит, что производительность (строчек в час) при использовании императивных языков выше, а значит, они лучше. [[Такие дела]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Функциональный код выглядит короче и наглядней во всех случаях, [[КО|кроме тех, когда он выглядит длиннее и запутанней]]. А поддерживать и дебажить его — тот ещё ад, особенно если ошалевший небыдлокодер начинает необоснованно применять монады или функторы (а оно именно так и бывает в 95 % случаев). Проблема в том, что большинство функциональщиков нихуя не владеют мат-базисом (λ-исчислением и теорией категорий), поэтому просто не понимают, зачем оно нужно (например, чтобы вычесть 1 из 1000000, требуется рекурсия глубиной как раз в 1000000), и используют по принципу «потому что могу» (порядка ради надо отметить, что императивщики дискретную математику вообще и теорию автоматов в частности знают не лучше, но для них это не критично).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Функциональное программирование окружает масса мифов. Перечитавшие [[Джоэл Спольски|Джоэла Спольски]] фонаты уверены, что любая программа на функциональном языке (даже если это домашка из первой главы [[SICP]]) автоматически масштабируется, летает и гарантирует, что его возьмут работать в Гугл. Конечно, функциональный код действительно неплохо масштабируются, но только если хорошенько попотеть. Даже общеизвестный [[LISP]]-овый факториал ни фига не пакетен, не масштабируем и тем более не поддерживает потоков. По сути, функциональная парадигма — это отличный инструмент для решения узкого круга задач, но уж никак не серебряная пуля, как рассказывают нам [[воннаби]]-небыдлокодеры. К примеру, попытка смоделировать систему с постоянно изменяющимся состоянием на каком-нибудь тру-функциональном Хаскеле превратится в монадный ад.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Поэтому функциональные языки всегда были в жопе, в [[серьёзный бизнес|серьёзном бизнесе]] не использовались и оставались уделом гиков, ибо деньги ими заработать нельзя. Так что функциональщикам только и остаётся, что после очередного высера на форуме: «вы все быдло с вашим ООП, смотрите как я получу бесконечную последовательность факториалов одной строчкой… как нахуй не надо?!», идти кодить на ненавистных Джавашарпах. Кушать-то хочется.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Событийно-ориентированное программирование ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Парадигма, которая представляет программу как набор реакций на изменяющееся состояние. Ближайший аналог ИРЛ — условные рефлексы. Это позволяет здорово упростить представление: вместо одной обширной и необъятной блок-схемы, не умещающейся на листе ватмана формата A0, получается более удобный список небольших блок-схем, повешенных на события, что изрядно улучшает структуру обычной программы. Событийные языки поддерживают встроенный обработчик событий (к таковым относятся [[Delphi]] и [[C#]]), но при желании можно легко реализовать события на любом ООП языке с помощью паттерна [[:en.w:Observer]], чем и пользуются разработчики на C++ и Java. Раньше событийная парадигма была золотым стандартом фреймвёрков (её используют такие мастодонты, как Delphi, WinForms и ранние версии QT), но с популяризацией паттернов [[:en.w:MVC]] и [[:en.w:MVVM]] веяние сошло на нет.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Дело в том, что у событий есть одна маленькая проблема. Обработчики, висящие на событии, могут быть объявлены где угодно и кроме как при отладке нигде не видны. Причем они могут изменить состояние вызвавшего их объекта (традиция передавать sender как первый параметр тянется уже добрых четверть века) или вызывать следующие обработчики (ведь события это ни что иное, как реинкарнация оператора goto на более высоком уровне). В итоге простейший код можно превратить в эталонную лапшу. Что быдло и делает.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>APRELKUN</name></author>
	</entry>
	<entry>
		<id>https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;diff=2962&amp;oldid=prev</id>
		<title>APRELKUN: Новая страница: «{{sila_disc|1=Языки программирования}}{{q|pre=1|Известны 10 преимуществ Паскаля перед Си:) Я приведу только одно, но самое важное. На Си вы можете написать: &lt;nowiki&gt;for(;P(&quot;\n&quot;).R--;P(&quot;\ &quot;))for(e=0x3DC;e--;P(&quot;_ &quot;+(*u++/8)%2))P(&quot;| &quot;+ (*u/4)%2);&lt;/nowiki&gt; На Паскале Вы НЕ МОЖЕТЕ такого написать.&lt;ref&gt;Неискажённый...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;diff=2962&amp;oldid=prev"/>
		<updated>2023-10-26T11:16:48Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{sila_disc|1=Языки программирования}}{{q|pre=1|Известны 10 преимуществ Паскаля перед Си:) Я приведу только одно, но самое важное. На Си вы можете написать: &amp;lt;nowiki&amp;gt;for(;P(&amp;quot;\n&amp;quot;).R--;P(&amp;quot;\ &amp;quot;))for(e=0x3DC;e--;P(&amp;quot;_ &amp;quot;+(*u++/8)%2))P(&amp;quot;| &amp;quot;+ (*u/4)%2);&amp;lt;/nowiki&amp;gt; На Паскале Вы НЕ МОЖЕТЕ такого написать.&amp;lt;ref&amp;gt;Неискажённый...»&lt;/p&gt;
&lt;a href=&quot;https://wiki.aprelteam.by/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;amp;diff=2962&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>APRELKUN</name></author>
	</entry>
</feed>