<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / Комментарии к посту «Поддержка замыканий в C/C++/Objective-C в Snow Leopard» в блоге «Разработка под Apple iOS»</title>
	<link>http://habrahabr.ru/rss/post/66632/</link>
	<description><![CDATA[Новые комментарии к посту «Поддержка замыканий в C/C++/Objective-C в Snow Leopard» в блоге «Разработка под Apple iOS»]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Fri, 10 Feb 2012 17:37:34 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	

	
	
	
	
	
		
	
		<item>
			<title>10.08.2009 12:51:27 izen</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877992</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877992</link>
			<description><![CDATA[Да и макросы тут не смогут сделать аналог С синтаксиса для массивов, нужно только решение на уровне синтаксиса языка.]]></description>
			<pubDate>Mon, 10 Aug 2009 12:51:27 GMT</pubDate>
			<author>izen</author>
		</item>
	

	
		<item>
			<title>10.08.2009 12:49:05 izen</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877977</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877977</link>
			<description><![CDATA[Как? жду примера) понимаю еше что то из макросов но через typedef :D ]]></description>
			<pubDate>Mon, 10 Aug 2009 12:49:05 GMT</pubDate>
			<author>izen</author>
		</item>
	

	
		<item>
			<title>10.08.2009 12:19:24 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877797</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877797</link>
			<description><![CDATA[Спасибо, капитан! Но то было скорее изучение интерфейса habrahabr.ru без претензий на «главную» :)]]></description>
			<pubDate>Mon, 10 Aug 2009 12:19:24 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>10.08.2009 12:17:51 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877782</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877782</link>
			<description><![CDATA[… плюс новые фреймворки с поддержкой Blocks. Точно пока можно сказать только про Grand Central Dispatch (см. pdf выше), но не могут же они ограничиться только им…]]></description>
			<pubDate>Mon, 10 Aug 2009 12:17:51 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>10.08.2009 12:11:24 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877747</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877747</link>
			<description><![CDATA[Если кратко — скачайте plblocks по ссылкам выше, поставьте на 10.5 и скомпилируйте код выше. Он работает.]]></description>
			<pubDate>Mon, 10 Aug 2009 12:11:24 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>10.08.2009 12:10:17 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877734</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877734</link>
			<description><![CDATA[Apple именно что вносит свои собственные правки в gcc. <br/>
<br/>
Часть из них попадает назад, в основную ветку gcc, а часть — нет (несмотря на то, что apple честно выкладывает все исходники). К примеру, они здорово, улучшили ARM-порт gcc, когда запускали свой iPhone.<br/>
<br/>
«This file describes Apple's version of GCC 4.x modified for Darwin /<br/>
Mac OS X. Although Apple's stated policy is to contribute all of its<br/>
GCC work to the FSF GCC mainstream, at any given moment there will be<br/>
changes that are permanently unacceptable for FSF GCC, in need of<br/>
rework before acceptance, or that we simply aren't ready to send in.<br/>
This version of GCC contains all those changes.»<br/>
<br/>
Вот и тут аналогичная ситуация. Gcc с поддержкой блоков у Apple уже есть <a href="http://www.opensource.apple.com/tarballs/seeds/">в исходниках</a>. Автор PLBlocks взял его и скомпилировал для 10.5. <br/>
<br/>
Другое дело, что в Developers Tools в 10.6 он пойдет by default. Да и XCode научится правильно понимать новый синтаксис.]]></description>
			<pubDate>Mon, 10 Aug 2009 12:10:17 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>10.08.2009 11:57:24 bagyr</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877656</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877656</link>
			<description><![CDATA[&gt; Ждем релиза Snow Leopard и нового XCode.<br/>
Что, без этого никак? У Apple, вроде, никаких эксклюзивных компиляторов нет, просто gcc + llvm, не так?]]></description>
			<pubDate>Mon, 10 Aug 2009 11:57:24 GMT</pubDate>
			<author>bagyr</author>
		</item>
	

	
		<item>
			<title>10.08.2009 11:06:15 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877416</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877416</link>
			<description><![CDATA[Я надеялся на принцип sapienti sat, поэтому не разжевывал. Статья — не столько тьюториал, сколько «расширенная новость». Зато в ней, например, отличнейшие тексты по ссылкам (с разнообразными примерами).<br/>
<br/>
Безусловно, Вы правы. Все можно провернуть с помощью указателей. Объекты тоже можно сделать с помощью структур и ассоциированных с ними функций (как оно и происходит «внутри»). В итоге все можно написать на ассемблере. <br/>
<br/>
Вопрос в удобстве и затраченном времени.<br/>
<br/>
Вероятно, суть в том, что для эффективного использования closures к ним нужно несколько привыкнуть и увидеть в деле. Вон, программисты на Ruby выше в комментариях уже высказались :)<br/>
<br/>
Если тема интересна, я продолжу на нее писать. Доберемся и до use cases в obj-c.]]></description>
			<pubDate>Mon, 10 Aug 2009 11:06:15 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>10.08.2009 10:30:32 DaemonI</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877302</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1877302</link>
			<description><![CDATA[Как-то из статьи совсем не вытекает, чем будут полезны замыкания в Obj C. Очевидно, что это хороший syntactic sugar, но не очевидна реальная польза. К тому же в примерах, подобные фишки можно было провернуть с помощью указателей на функции, т.е. функционал — не специфичен только для замыканий.]]></description>
			<pubDate>Mon, 10 Aug 2009 10:30:32 GMT</pubDate>
			<author>DaemonI</author>
		</item>
	

	
		<item>
			<title>10.08.2009 08:43:33 hellraiser09</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876895</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876895</link>
			<description><![CDATA[пример приведите пожалуйста]]></description>
			<pubDate>Mon, 10 Aug 2009 08:43:33 GMT</pubDate>
			<author>hellraiser09</author>
		</item>
	

	
		<item>
			<title>10.08.2009 08:29:43 hmage</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876851</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876851</link>
			<description><![CDATA[Достаточно добавить поддержку этого в gcc. Эппл сам пользуется gcc и имеет доступ изменять его в транке. А как показывает практика, то, что есть в gcc, рано или поздно просачивается в стандарты.]]></description>
			<pubDate>Mon, 10 Aug 2009 08:29:43 GMT</pubDate>
			<author>hmage</author>
		</item>
	

	
		<item>
			<title>10.08.2009 08:25:52 hmage</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876839</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876839</link>
			<description><![CDATA[Как будто microsoft этого тоже не делает — переносимость кода в сторону ms легко, обратно — тяжело. Гляньте как игры портируются на мак — путём подкручивания Cider или Cedega (это wine). Сели на DirectX и уже не перелезут на OpenGL.]]></description>
			<pubDate>Mon, 10 Aug 2009 08:25:52 GMT</pubDate>
			<author>hmage</author>
		</item>
	

	
		<item>
			<title>10.08.2009 08:23:25 hmage</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876834</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876834</link>
			<description><![CDATA[typedef не поможет?]]></description>
			<pubDate>Mon, 10 Aug 2009 08:23:25 GMT</pubDate>
			<author>hmage</author>
		</item>
	

	
		<item>
			<title>10.08.2009 08:20:48 hmage</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876828</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876828</link>
			<description><![CDATA[typedef поможет]]></description>
			<pubDate>Mon, 10 Aug 2009 08:20:48 GMT</pubDate>
			<author>hmage</author>
		</item>
	

	
		<item>
			<title>10.08.2009 07:52:10 sin_avatar</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876758</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876758</link>
			<description><![CDATA[Мне почему-то кажется что вот ваш первый пост: <a href="http://vk2.habrahabr.ru/blog/65393/">Дефрагментация диска Mac OS X при загрузке с внешнего носителя</a>]]></description>
			<pubDate>Mon, 10 Aug 2009 07:52:10 GMT</pubDate>
			<author>sin_avatar</author>
		</item>
	

	
		<item>
			<title>10.08.2009 05:39:21 izen</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876504</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876504</link>
			<description><![CDATA[хотя не, всё почти тоже самое получается, просто я привык воспринимать взятие индекса чуть ли ни как часть имени переменной, а пробел и квадратные скобки для сообщения все портят, хотя такая запись все таки покороче чем objectAtIndex: :)]]></description>
			<pubDate>Mon, 10 Aug 2009 05:39:21 GMT</pubDate>
			<author>izen</author>
		</item>
	

	
		<item>
			<title>10.08.2009 05:26:05 izen</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876490</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876490</link>
			<description><![CDATA[С является подмножеством Objective-C, так что воспринимайте это не как введение замыканий в С, а как введение замыканий в С-шную часть Objective-C и будьте спокойны:)]]></description>
			<pubDate>Mon, 10 Aug 2009 05:26:05 GMT</pubDate>
			<author>izen</author>
		</item>
	

	
		<item>
			<title>10.08.2009 05:15:59 izen</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876482</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876482</link>
			<description><![CDATA[хм, хорошая мысль попробуем :)]]></description>
			<pubDate>Mon, 10 Aug 2009 05:15:59 GMT</pubDate>
			<author>izen</author>
		</item>
	

	
		<item>
			<title>10.08.2009 02:16:27 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876371</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876371</link>
			<description><![CDATA[Я так старался расставлять ссылки…]]></description>
			<pubDate>Mon, 10 Aug 2009 02:16:27 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>10.08.2009 02:11:40 egorinsk</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876368</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876368</link>
			<description><![CDATA[Гм, а как замыкания реализованы технически? Они принимают параметры по значению или по ссылке? Во втором случае есть вероятность же есть, что перемнная сдохнет до того как будет вызвано замыкание!<br/>
<br/>
И как это способствует оптимизации на многоядерных процесорах?<br/>
<br/>
]]></description>
			<pubDate>Mon, 10 Aug 2009 02:11:40 GMT</pubDate>
			<author>egorinsk</author>
		</item>
	

	
		<item>
			<title>10.08.2009 00:01:26 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876341</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876341</link>
			<description><![CDATA[Одними словами пишем практически.]]></description>
			<pubDate>Mon, 10 Aug 2009 00:01:26 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:59:37 hellraiser09</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876340</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876340</link>
			<description><![CDATA[в Objective-C стандарте они будут потому как его де-факто устанавливает Apple.<br/>
<br/>
В стандарт С они будут его проталкивать. До того времени как это произойдет, они все-равно будут использовать Blocks, а для всех остальных буду писать предупреджения, мол поддерживается только нашим компилятором, будте осторожны.]]></description>
			<pubDate>Sun, 09 Aug 2009 23:59:37 GMT</pubDate>
			<author>hellraiser09</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:55:42 hellraiser09</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876338</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876338</link>
			<description><![CDATA[<blockquote>В чем проблема помочь разработчикам gcc реализовывать стандарт (этот вопрос только по С++), а не писать свой (не совместимый со стандартом) патч или следовать практически принятому синтаксису ФП-выражений (по ссылке: The syntax of blocks and C++ lambdas are completely different)?</blockquote>Для особо одаренных, объясняю еще раз:<br/>
1. в топике говорится про стороннюю реализацию. Что сделает Apple достоверно будет известно с выходом Snow Leopard<br/>
2. сторонняя реализация написана исключительно на Си(нечего специфически Си++сного там нет). Поскольку в C++ может использовать Си код, то эта реализация автоматически позволяет(но не заставляет) использовать блоки в С++<br/>
<br/>
что тут не ясно?]]></description>
			<pubDate>Sun, 09 Aug 2009 23:55:42 GMT</pubDate>
			<author>hellraiser09</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:47:23 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876335</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876335</link>
			<description><![CDATA[как знать :) javascript изначально появился как внутренний язык в netscape browser :)]]></description>
			<pubDate>Sun, 09 Aug 2009 23:47:23 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:45:39 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876333</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876333</link>
			<description><![CDATA[Не могу. Я не изучил еще C++ lambda в деталях. Из чисто академического интереса я хочу это сделать (тогда как Blocks я изучу из соображений чисто практических).<br/>
<br/>
<i>«В чем проблема помочь разработчикам gcc реализовывать стандарт (этот вопрос только по С++), а не писать свой (не совместимый со стандартом) патч»</i><br/>
<br/>
Это очень хороший вопрос, кстати. У меня есть версия.<br/>
<br/>
ObjC — надстройка над C. Он не использует фишек C++; ObjC — это просто «Си-с-объектами».<br/>
<br/>
Таким образом, развитие C++ никак не поможет развитию ObjC — тогда как все приложения в Mac OS и iPhone OS пишутся именно на ObjC. <br/>
<br/>
Иными словами, как мне кажется, Эпплу просто нет никакого повода вкладывать силы в развитие C++: <i>они сделали ставку на ObjC</i>, а в силу его природы, некоторые их нововведения оказываются доступными и в C/C++-приложениях.<br/>
<br/>
Почитайте <a href="http://clang.llvm.org/docs/BlockImplementation.txt">clang.llvm.org/docs/BlockImplementation.txt</a> — даже здесь не задействовано ни одной C++-фишки.]]></description>
			<pubDate>Sun, 09 Aug 2009 23:45:39 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:37:13 ShapovalovTS</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876329</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876329</link>
			<description><![CDATA[Если их не будет в С и С++, то спокоен :)]]></description>
			<pubDate>Sun, 09 Aug 2009 23:37:13 GMT</pubDate>
			<author>ShapovalovTS</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:34:40 ShapovalovTS</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876328</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876328</link>
			<description><![CDATA[Эх, Вы опять в обсуждении С и С++ перешли на ObjC (я уже понял, что Вы не любите С++). Все что касается ObjC — я с Вами согласен. Но речь не о нем.<br/>
GUI и API — не входят в «ядро» языков C и С++ — их нет в стандарте! В С++ в стандарте появятся ФП-конструкции, которые (если я в верно понял из данного топика) были в упрощенном виде, с поддержкой ОС, но с отличным синтаксисом введены в gcc c соответствующим патчем. В чем проблема помочь разработчикам gcc реализовывать стандарт (этот вопрос только по С++), а не писать свой (не совместимый со стандартом) патч или следовать практически принятому синтаксису ФП-выражений (по ссылке: The syntax of blocks and C++ lambdas are completely different)? <br/>
<br/>
Возможно ответ кроется в каких-то координальных отличиях blocks от C++-lambda. Можете их перечислить по пунктам?]]></description>
			<pubDate>Sun, 09 Aug 2009 23:34:40 GMT</pubDate>
			<author>ShapovalovTS</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:25:04 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876325</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876325</link>
			<description><![CDATA[Я чуть выше писал — прелесть ситуации с closures в XCode в том, что она предстает не как «ой, мы тут добавили нечто экспериментальное», а в том, что она сразу глубоко интегрируется с SDK и операционной системой. Целостный подход.<br/>
<br/>
В каком-то смысле можно считать, что Snow Leopard обкатывает идею «closures в си-подобных языках» на живых людях :)<br/>
<br/>
p.s. простите, не знал, что стандарт «еще не сделан», хотя про концепты читал. Ну так… когда? Годы идут. Эффективность и читаемость кода нужна сейчас. Ждать, пока все определятся со стандартами и ничего не делать все это время? Есть такой анти-паттерн, <a href="http://www.c2.com/cgi/wiki?PrematureGeneralization">Premature Generalization</a>. <br/>
<br/>
К тому же closures почти наверняка не вылезут за пределы OS X / iPhone OS X, как оттуда не вылезла умнейшая Cocoa (воспринимая после MFC как рай земной).]]></description>
			<pubDate>Sun, 09 Aug 2009 23:25:04 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:23:20 hellraiser09</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876324</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876324</link>
			<description><![CDATA[<blockquote>Apple нарушает совместимость кода, разбивая переносимость ПО — одного из основ разработки ПО, а вы этому и рады</blockquote>нет, мы рады тому, что в Objective-C буду замыкания. И будут они по стандарту(дабы вас успокоить).<br/>
<br/>
Будут ли они также в С и С++ мы не знаем. В сторонней реализации замыканий, описанной в этой статье, они присутствуют. Будут ли они в реализации от Apple — пока еще не знаем(или не говорим из-за NDA). Тем не менее, если они и будут, то Apple несомненно будет их проталкивать в новые стандарты.<br/>
<br/>
Теперь Вы спокойны?]]></description>
			<pubDate>Sun, 09 Aug 2009 23:23:20 GMT</pubDate>
			<author>hellraiser09</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:18:14 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876321</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876321</link>
			<description><![CDATA[Я мог бы возразить, что абсолютно переносимый код зачастую несколько хуже родного (wxWidget vs Cocoa?). Мог бы сказать, что проф. программисты под Windows вполне себе продолжают считаться профессионалами, несмотря на то, что WTL/MFC не собирается под Unix.<br/>
<br/>
Но то GUI, будем считать его platform specific. Спустимся ниже. Я понимаю, библиотеки общего назначения нужно переносить, да? <br/>
<br/>
Но вот смотрите — в свое время потребовалось сделать event-driven library для работы с сетью и низким overhead. <br/>
<br/>
Чем кончилось? Я напомню: kqueue (FreeBSD), rt signals (Linux 2.2.19+), /dev/poll (Solaris 7 11/99+), event ports (Solaris 10). У <b>всех</b> — свои реализации и свой API.<br/>
<br/>
Решение? <a href="http://www.monkey.org/~provos/libevent/">libevent</a> в итоге поддерживает их все. Равно как и nginx, о котором так много пишут последнее время.<br/>
<br/>
Выходит, можно как-то выкрутиться. <br/>
<br/>
Apple всегда <i>выглядела хорошо</i>, потому что одновременно выпускала и софт, и железо. Последнее время они идут дальше — они не только делают platform specific API (как и все), они меняют под него язык. Благо, Obj-C кроме них никому не нужен, не так ли?<br/>
<br/>
И тем не менее, есть попытки поддерживать Cocoa под Windows: <a href="http://www.cocotron.org/.">www.cocotron.org/.</a> Ведь формально Apple блюдет букву opensource — любой gcc умеет компилировать код Objective-C. Даже к Blocks исходники уже отданы всем желающим.<br/>
<br/>
Повторюсь — на мой взгляд, все эти closures сделаны в первую очередь для ObjC. То, что они поддерживаются в чистом C/C++ (а мой пример в XCode был собран как command line C utility project) — чисто для удобства. <br/>
<br/>
Что, мир сильно волнует наличие garbage collector'а в ObjC? он не заметит и closures, поверьте :)]]></description>
			<pubDate>Sun, 09 Aug 2009 23:18:14 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:09:18 ShapovalovTS</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876318</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876318</link>
			<description><![CDATA[&gt;&gt; C++0x сделан в 1998-2003 и еще Бог знает когда станет мейнстримом.<br/>
Нет, он еще не сделан. Как показала недавняя история с концептами — стандарт в разработке. Но это не меняет ситуацию. Хотя бы этого стандарта и не было вовсе, ответственность программиста за переносимость его кода лежит на самом программисте. И насчет «Бог знает когда станет мейнстримом» — что Вы имеете ввиду? Использоваться функциональный стиль в языке станет сразу же после принятия стандарта — компиляторы уже вплотную подошли к поддержке этого стиля уже сейчас, а после принятия стандарта очень быстро допилят поддержку ФП-фич.]]></description>
			<pubDate>Sun, 09 Aug 2009 23:09:18 GMT</pubDate>
			<author>ShapovalovTS</author>
		</item>
	

	
		<item>
			<title>09.08.2009 23:02:19 ShapovalovTS</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876315</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876315</link>
			<description><![CDATA[&gt;&gt; Софт под Мак/iPhone пишется исключительно под Мак/iPhone.<br/>
Вот об этом и речь — смогу ли я использовать наработки программистов, которые используют нестандартный код? Нет. Или даже так: могут ли быть уверены Apple-программисты, что завтра их код не понадобится перекомпилировать компилятором Intel (хотя бы, чтобы повысить скорость выполнения части кода)? Не может. Программисты, использующие не стандартные конструкции языка не могут считаться профессионалами — они не думают о будущем. И да — Apple это выгодно, получается переносимость кода в одну сторону — на платформу Apple, но не наоборот.]]></description>
			<pubDate>Sun, 09 Aug 2009 23:02:19 GMT</pubDate>
			<author>ShapovalovTS</author>
		</item>
	

	
		<item>
			<title>09.08.2009 22:50:10 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876302</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876302</link>
			<description><![CDATA[кстати, сопоставьте два факта.<br/>
<br/>
C++0x сделан в 1998-2003 и еще Бог знает когда станет мейнстримом.<br/>
<br/>
Анонс Blocks сделан год назад и полностьюё реализован в среде разработке Snow Leopard, которую любой желающий скачает через полтора месяца и начнет использовать в своих приложениях.<br/>
<br/>
Ничего не напоминает? w3c, нет?]]></description>
			<pubDate>Sun, 09 Aug 2009 22:50:10 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>09.08.2009 22:45:02 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876298</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876298</link>
			<description><![CDATA[Поскольку замыкания в C/C++ теперь официально есть только под Mac OS, то главная задача других систем — не поддаться соблазну :) <br/>
<br/>
Слава Богу, эта не та ситуация, когда сайт оптимизируется под Firefox, но обязан показываться и в Опере. Софт под Мак/iPhone пишется исключительно под Мак/iPhone. Apple навязала всем Obj-C при разработке под iPhone — и мир стерпел (как стерпел в свое время слоты и moc в Qt; аналогия не так глупа, ведь весь ObjC, по сути — умный препроцессор к Си и тоненький рантайм)<br/>
<br/>
Ну и потом, <i>хочется же вечеринку</i>.]]></description>
			<pubDate>Sun, 09 Aug 2009 22:45:02 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>09.08.2009 22:38:50 ShapovalovTS</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876288</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876288</link>
			<description><![CDATA[Я не говорю про Objective-C — пусть улучшают данный язык, я только «за». Но вот то же самое вводить в С и С++ в обход стандартам не есть правильно. ]]></description>
			<pubDate>Sun, 09 Aug 2009 22:38:50 GMT</pubDate>
			<author>ShapovalovTS</author>
		</item>
	

	
		<item>
			<title>09.08.2009 22:34:19 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876282</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876282</link>
			<description><![CDATA[Б<b>о</b>льшая часть MacOS (Cocoa) и iPhone OS написана на <a href="http://en.wikipedia.org/wiki/Objective-C">Objective-C</a> — языке, который за пределами мак-мира никто, по сути, и не использует. <br/>
<br/>
Да, они добавили совсем недавно в Obj-C 2.0 сборщик мусора и properties… мир, кажется, устоял. Теперь там появились замыкания. <br/>
<br/>
Apple не выпускает средства разработки под любые другие ОС, кроме своей, поэтому:<br/>
<br/>
1) она не слишком влияет на мейнстрим C++<br/>
2) ее не слишком волнует мейнстрим C++<br/>
<br/>
Тот факт, что использовать замыкания можно и в <i>чистом Си</i> — исключительно любовь apple к облегчению жизни разработчика (ну и, возможно, необходимость поддержать code blocks на уровне ядра и системных сервисов, написанных на C/C++).]]></description>
			<pubDate>Sun, 09 Aug 2009 22:34:19 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>09.08.2009 22:23:10 ShapovalovTS</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876270</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876270</link>
			<description><![CDATA[Хм, Apple нарушает совместимость кода, разбивая переносимость ПО — одного из основ разработки ПО, а вы этому и рады?! Это же прямые нарушения стандартов С и С++! Такими вещами нельзя пользоваться. В особенность это качается С++ — стандарт на носу, а они вводят упрощенные замыкания в обход новому функционалу… ]]></description>
			<pubDate>Sun, 09 Aug 2009 22:23:10 GMT</pubDate>
			<author>ShapovalovTS</author>
		</item>
	

	
		<item>
			<title>09.08.2009 21:40:23 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876240</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876240</link>
			<description><![CDATA[Зачем минусовать? :) Первый пост, в конце концов. <br/>
Спасибо всем; получилось… Штука, я думаю, интересная многим.]]></description>
			<pubDate>Sun, 09 Aug 2009 21:40:23 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
		<item>
			<title>09.08.2009 21:29:44 baal</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876233</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876233</link>
			<description><![CDATA[Где-то видел пример, в котором классу NSArray была дописана категория с функцией двоеточие, прототип которой выглядел примерно так:<br/>
— (id): (int) index;<br/>
Функция выполняла ровно то же, что и objectAtIndex, но ее название гораздо короче.<br/>
Работала так: id fifthElement = [array: 5]; <br/>
<br/>
Мне кажется ее несложно написать самому и использовать в своих проектах.<br/>
<br/>
]]></description>
			<pubDate>Sun, 09 Aug 2009 21:29:44 GMT</pubDate>
			<author>baal</author>
		</item>
	

	
		<item>
			<title>09.08.2009 20:31:24 vk2</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876154</guid>
			<link>http://habrahabr.ru/blogs/macosxdev/66632/#comment_1876154</link>
			<description><![CDATA[Судя по тому, что автор PLBlocks сделал порт для Apple iPhone — можно. Но боюсь соврать, я не лез на source-level компилятора.]]></description>
			<pubDate>Sun, 09 Aug 2009 20:31:24 GMT</pubDate>
			<author>vk2</author>
		</item>
	

	
</channel>
</rss>

