Не так давно решил таки ознакомиться (никак не мигрировать, боже упаси) на представленный в MacOS X 10.6 GCD, почитал их введение в это дело (ровно одна строчка кода, всё остальное - маркетоидный буллщит), но одна фраза заставила на себя обратить внимание - основной компонент этого GCD - блоки - что-то подозрительно напоминали. И добрался до расшаренной коллегой статьи про реализацию блоков, и понял - ну точно, это ж самые что ни на есть closures, которым скоро 50 лет, их наконец-то добавят и в эти языки... Однако, всё сильнее и сильнее этот лагерь офункционаливается.
Со статьёй крайне рекомендую ознакомиться, а потом по ссылкам в конце. Особенно по первой, там чуть ли не дословно цитируют ruby stdlib и часть парадигм RoR и вообще рубишных фреймворков.
Однако в руби их использование гораздо более синтаксически-слаще...
24 октября 2009
C/C++/Obj-C closures
Ярлыки:
c/objc/c++,
devel,
ruby
на 22:22
Подписаться на:
Комментарии к сообщению (Atom)
6 комментариев:
Казалось бы, при чем тут ФП? (:
Клозуры, по большому счету, к фп отношения не имеют, просто так получилось, что впервые они появились в лиспе, потому что тот был сильно динамическим. А дальше в Smalltalk и вперед.
Ну и вообще, переставай уже удивляться, что ObjC/MacOS X так сильно "используют идеологию Ruby", во-первых все как раз наоборот, во-вторых у них общий папа. Папа, кстати, уделывает и Руби и ObjC одной левой до сих пор.
просто офункционаливается тот лагерь не только клозурами - давеча вроде пытались лямбды в сипипи добавить.
Заметь, я не говорил "что ObjC/MacOS X так сильно "используют идеологию Ruby"", я лишь отметил, что в статье в качестве типичных примеров использования клозур приводятся типичные примеры их использования в руби, это раз. И вот то, что наоборот - да ни разу, сам знаешь, что у Матсумото макбук только недавно появился, так что наоборот - нет, общий папа - тоже нет, всё-таки прямыми потомками ни руби ни обжси не являются. Я понял, что ты пытаешься сказать, что у них общие источники для вдохновения, но не путай божий дар с яичницей - никаким макосом в руби не пахнет, и слава богу.
А про папу - если вы такой умный, то почему такой бедный? Как-то даже презентаху смотрел на эту тему - ничего не понял.
>примеров использования клозур приводятся типичные примеры их использования в руби
Которые исторически типичны для Smalltalk'а.
>да ни разу, сам знаешь, что у Матсумото макбук только недавно появился, так что наоборот - нет
Наоборот как раз за счет общего предка я имел в виду.
>прямыми потомками ни руби ни обжси не являются
Ну, эээ, как бы являются оба. Прямой потомок для тебя это использующий конкретный исходный код "папы", что ли?
>А про папу - если вы такой умный, то почему такой бедный? Как-то даже презентаху смотрел на эту тему - ничего не понял.
Ну, наши пилоты, например, учаться на софте написанном на ST. (Гугли "Транзас" если интересно). Я бы вообще не сказал бы, что ST мертв, а уж что он тяжело воспринимается и подавно бы не сказал.
исторически типичны - спорить не буду, не знаю. Прямой потомок - ну да, что-то вроде. А-ля си-сипипи, лисп-схема(наверное; это уже вольный пересказ тебя), паскаль-дельфа итп. В руби же очень много не только от СТ, но и от перла, например, а в обжси почитай всё, кроме мессадж диспатчинга, из си либо своё (Foundation). Они делят со СТ пару идей одного уровня - всё, по-моему.
Нда, а я как-то СТ вокруг себя не наблюдаю. Может он и жив, но сцуко скрытен.
>В руби же очень много не только от СТ, но и от перла
Да кто ж спорит-то. Просто вся OOP часть заинспайрена именно ST.
>а в обжси почитай всё, кроме мессадж диспатчинга, из си либо своё (Foundation). Они делят со СТ пару идей одного уровня - всё, по-моему.
Ты не догоняешь. Весь Smalltalk это три ключевых слова и месседж пассинг. Все, там нету больше ничего. Поэтому ObjC как раз из ST взял почти все, только убрал VM и прочие топ-левел штуки.
>Нда, а я как-то СТ вокруг себя не наблюдаю. Может он и жив, но сцуко скрытен.
Он просто маскируется под руби ((:
Отправить комментарий