<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / Комментарии к посту «Io Language: Объектная система» в блоге «Ненормальное программирование»</title>
	<link>http://habrahabr.ru/rss/post/28254/</link>
	<description><![CDATA[Новые комментарии к посту «Io Language: Объектная система» в блоге «Ненормальное программирование»]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 17:57:41 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	

	
	
	
	
	
		
	
		<item>
			<title>02.07.2008 04:04:33 semka</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_742705</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_742705</link>
			<description><![CDATA[Вам-то виднее, ясен пень (:]]></description>
			<pubDate>Wed, 02 Jul 2008 04:04:33 GMT</pubDate>
			<author>semka</author>
		</item>
	

	
		<item>
			<title>02.07.2008 04:02:10 semka</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_742701</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_742701</link>
			<description><![CDATA[Ну обычно я качаю тарболл с официального сайта, или беру прямо из гита.<br />
Так оно как-то спокойнее (:]]></description>
			<pubDate>Wed, 02 Jul 2008 04:02:10 GMT</pubDate>
			<author>semka</author>
		</item>
	

	
		<item>
			<title>01.07.2008 21:42:54 borodatyj</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_742446</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_742446</link>
			<description><![CDATA[А вот ставить io я бы рекомендовал из исходников. <br />
<br />
в ссылке, что я дал, как раз указан deb-src репозитарий<br />
т.е. ставится так:<br />
<br />
apt-get -b source iolanguage<br />
и потом dpkg -i iolanguage-bla-bla.deb]]></description>
			<pubDate>Tue, 01 Jul 2008 21:42:54 GMT</pubDate>
			<author>borodatyj</author>
		</item>
	

	
		<item>
			<title>01.07.2008 20:58:17 gzigzigzi</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_742335</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_742335</link>
			<description><![CDATA[По поводу вопроса №1.<br />
<br />
В смысле вызова - ничем, а в смысле обработки - принципиально. В случае с отправкой сообщения - ни отправляющая, ни принимающая стороны не имеют информации друг о друге - в отличие от класс-ориентированного подхода, где интерфейсы объектов жёстко определяются интерфейсом класса.<br />
<br />
Обрабатывать сообщение или отклонить - решает принимающая сторона. Говоря в терминах класс-ориентированного ООП, принимающая сторона имеет динамический интерфейс. <br />
<br />
Такой подход понижает связность системы, а значит - делает её более устойчивой к изменениям, нежели чем при использовании статически типизированных классов. Во всяком случае, такую цель ставила себе команда XEROX Parc при реализации сообщений в Smalltalk.<br />
<br />
На тему сообщений есть интересная статья (точное название не помню, из журнала "Byte" за 1981 год, найти можно на Smalltalk.ru). В ней описаны цели создания Smalltalk, как системы, основанной на сообщениях и преимущества такого подхода.<br />
<br />
Асинхронность же тут ни при чём. И синхронная и асинхронная обработка сообщений примерно одинаково реализуются и в случае с вызовами, и в случае с сообщениями. По этим же причинам, мало общего с циклом сообщений Win32 API.]]></description>
			<pubDate>Tue, 01 Jul 2008 20:58:17 GMT</pubDate>
			<author>gzigzigzi</author>
		</item>
	

	
		<item>
			<title>01.07.2008 19:55:52 tenshi</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_742139</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_742139</link>
			<description><![CDATA[какой-то гугол не постоянный...<br />
http://img-fotki.yandex.ru/get/26/sairi-na-tenshi.6/0_1142d_4299be4f_orig]]></description>
			<pubDate>Tue, 01 Jul 2008 19:55:52 GMT</pubDate>
			<author>tenshi</author>
		</item>
	

	
		<item>
			<title>01.07.2008 19:41:44 shiko_1st</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_742072</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_742072</link>
			<description><![CDATA[Согласен с Вашим высказыванием. Лично я отлично обхожусь без асинхронных вызовов методов в Object Pascal, ибо способов их реализовать есть несколько. Мое возражение касалось исключительно высказываний о принципиальной разнице (и преимуществе) т.н. концепции "сообщений" над методами.]]></description>
			<pubDate>Tue, 01 Jul 2008 19:41:44 GMT</pubDate>
			<author>shiko_1st</author>
		</item>
	

	
		<item>
			<title>01.07.2008 19:27:17 tenshi</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_742022</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_742022</link>
			<description><![CDATA[шелл - это не только баш, если что...]]></description>
			<pubDate>Tue, 01 Jul 2008 19:27:17 GMT</pubDate>
			<author>tenshi</author>
		</item>
	

	
		<item>
			<title>01.07.2008 19:19:35 tenshi</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741991</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741991</link>
			<description><![CDATA[о, да, делать всё через задницу - это очень в духе лиспа =) вместо того, чтобы взять исходники/дамп_состояния, запустить на виртуальной машине и отдебажить, они предпочли трахаться с удалённой отладкой.]]></description>
			<pubDate>Tue, 01 Jul 2008 19:19:35 GMT</pubDate>
			<author>tenshi</author>
		</item>
	

	
		<item>
			<title>01.07.2008 19:02:14 tenshi</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741941</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741941</link>
			<description><![CDATA[которую иде? не емакс случаем =)]]></description>
			<pubDate>Tue, 01 Jul 2008 19:02:14 GMT</pubDate>
			<author>tenshi</author>
		</item>
	

	
		<item>
			<title>01.07.2008 18:31:34 semka</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741845</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741845</link>
			<description><![CDATA[Не за что, приходите, будет еще. А вот ставить io я бы рекомендовал из исходников. У меня eeeXubuntu собралось с полпинка.]]></description>
			<pubDate>Tue, 01 Jul 2008 18:31:34 GMT</pubDate>
			<author>semka</author>
		</item>
	

	
		<item>
			<title>01.07.2008 18:19:57 borodatyj</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741820</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741820</link>
			<description><![CDATA[спасибо за отличные статьи - с удовольствием читаю.<br />
решал себе поставить сабж, но не нашел его в репах дебиана :(<br />
<br />
вот неофициальный репозитарий сборок IO :<br />
<br />
http://www.mail-archive.com/debian-mentors@lists.debian.org/msg54241.html]]></description>
			<pubDate>Tue, 01 Jul 2008 18:19:57 GMT</pubDate>
			<author>borodatyj</author>
		</item>
	

	
		<item>
			<title>01.07.2008 17:59:40 ptiss</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741766</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741766</link>
			<description><![CDATA[даешь пять! ;)]]></description>
			<pubDate>Tue, 01 Jul 2008 17:59:40 GMT</pubDate>
			<author>ptiss</author>
		</item>
	

	
		<item>
			<title>01.07.2008 17:58:39 ptiss</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741764</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741764</link>
			<description><![CDATA[Проще говоря - объект есть, его не может не быть.]]></description>
			<pubDate>Tue, 01 Jul 2008 17:58:39 GMT</pubDate>
			<author>ptiss</author>
		</item>
	

	
		<item>
			<title>01.07.2008 17:57:58 ptiss</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741760</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741760</link>
			<description><![CDATA[может, они имели в виду, что Object тоже класс? ;)]]></description>
			<pubDate>Tue, 01 Jul 2008 17:57:58 GMT</pubDate>
			<author>ptiss</author>
		</item>
	

	
		<item>
			<title>01.07.2008 17:31:31 semka</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741680</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741680</link>
			<description><![CDATA[<blockquote>И даже более впечатляющий пример удаленной отладки произошел в миссии NASA «Deep Space 1» в 1998 году. Через полгода после запуска космического корабля, небольшой код на Lisp должен был управлять космическим кораблем в течении двух дней для проведения серии экспериментов. Однако, неуловимая race condition  в коде не была выявлена при тестировании на земле и была обнаружена уже в космосе. Когда ошибка была выявлена в космосе (100 миллионов миль от Земли) команда смогла произвести диагностику и исправление работающего кода, что позволило завершить эксперимент.</blockquote><br />
(c) PCL (<a href="http://pcl.catap.ru/doku.php?id=pcl:%D1%82%D1%83%D1%80%D0%B2repl#fnt__17" title="http://pcl.catap.ru/doku.php?id=pcl:%D1%82%D1%83%D1%80%D0%B2repl#fnt__17">http://pcl.catap.ru/doku.php?id=pcl:%D1%&hellip;</a>)]]></description>
			<pubDate>Tue, 01 Jul 2008 17:31:31 GMT</pubDate>
			<author>semka</author>
		</item>
	

	
		<item>
			<title>01.07.2008 17:27:37 semka</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741664</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741664</link>
			<description><![CDATA[Чот я потерял мысль. При чем тут шелл? Вы вообще лисп в глаза видели? А ide для лиспа?]]></description>
			<pubDate>Tue, 01 Jul 2008 17:27:37 GMT</pubDate>
			<author>semka</author>
		</item>
	

	
		<item>
			<title>01.07.2008 17:23:42 tenshi</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741649</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741649</link>
			<description><![CDATA[боже упаси писать что-либо на лиспе, тем более крупное..<br />
гугль, вот, со мной согласен: http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8E%2C+%D0%BA%D0%B0%D0%BA+%D0%BB%D1%8E%D0%B4%D0%B8+%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D0%BB%D0%B8+lisp+%D0%BA%D0%BE%D0%B4+%D0%BD%D0%B0%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B8%D0%B9%D1%81%D1%8F+%D0%B2+%D0%B3%D0%BB%D1%83%D0%B1%D0%BE%D0%BA%D0%BE%D0%BC+%D0%BA%D0%BE%D1%81%D0%BC%D0%BE%D1%81%D0%B5<br />
<br />
а насчёт репла - смешно, да. из шэлла ковырять многовложенную функцию - занятие для настоящего любителя сэкса..]]></description>
			<pubDate>Tue, 01 Jul 2008 17:23:42 GMT</pubDate>
			<author>tenshi</author>
		</item>
	

	
		<item>
			<title>01.07.2008 17:21:08 gribunin</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741641</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741641</link>
			<description><![CDATA[Что касается реализации асинхронных методов в С++ и Object Pascal, то мне кажется, это вызвало бы больше вопросов, чем каких-то удобств. Поддержки многопоточности на уровне языка в этих языках нет, а асинхронный вызов подразумевает либо использование дополнительных потоков, либо передачу управления из основного потока в какие-то моменты времени в эти "помещённые в очередь вызовов" функции.<br />
<br />
Что это за потоки, какие это будут моменты времени, как всем этим управлять &#151; непонятно.<br />
<br />
А самое главное &#151; если смотреть шире, то сообщения между объектами, это всего лишь частный случай паттерна проектирования event dispatcher/subscriber. Не очень понятно, чем этот паттерн лучше всех остальных, чтобы его реализовывать на уровне конструкций языка, когда его можно реализовать имеющимися средствами, имея в результате бОльший контроль над получившейся системой.]]></description>
			<pubDate>Tue, 01 Jul 2008 17:21:08 GMT</pubDate>
			<author>gribunin</author>
		</item>
	

	
		<item>
			<title>01.07.2008 17:09:18 khizhaster</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741614</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741614</link>
			<description><![CDATA[пхп-пхп, а в Perl есть AUTOLOAD!]]></description>
			<pubDate>Tue, 01 Jul 2008 17:09:18 GMT</pubDate>
			<author>khizhaster</author>
		</item>
	

	
		<item>
			<title>01.07.2008 15:49:04 semka</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741359</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741359</link>
			<description><![CDATA[Epic Fail. В Смолтоке небыло прототипного ооп.<br />
Вы когда-нибудь что-либо крупное на lisp'е писали? Я вот писал, знаете, ничего удобнее REPL еще не придумали для отладки, можете погуглить историю, как люди дебажили lisp код находящийся в глубоком космосе. А пространства имен можно запортачить и в java, нужно просто понимать что ты делаешь, вот и все.]]></description>
			<pubDate>Tue, 01 Jul 2008 15:49:04 GMT</pubDate>
			<author>semka</author>
		</item>
	

	
		<item>
			<title>01.07.2008 15:32:45 tenshi</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741325</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741325</link>
			<description><![CDATA[прототипное ооп - то ещё недоразумение. оно ещё годится к применению в смалтолке, потому как разработка для него происходит исключительно интерактивно в среде разработки. для более традиционных способов написания программ, состоящих и двух последовательных этапов: написание и интерпретация, - прототипное ооп не годится совершенно. всё-равно выделяются объекты, выполняющие функции классов (хранение общих для всех экземпляров свойств в одном месте). либо не выделяются и получается каша-малаша.<br />
<br />
опять же старая добрая проблема пространств имён. есть два модуля, каждый из них создаёт, объект Lobby.RSS, только один из них реализует rss1, а другой - rss2. а мы хотим иметь возможность в нашем приложении создать оба рсс-а.<br />
а вообще, автолоад - то ещё зло. если у нас есть два файла с одинаковым именем, но в разных директориях - начинается веселье с редактированием не того файла.<br />
простота и элегантность программы типа "привет мир" - ничто по сравнению с необходимостью отлаживать последствия такой вот самодеятельности.]]></description>
			<pubDate>Tue, 01 Jul 2008 15:32:45 GMT</pubDate>
			<author>tenshi</author>
		</item>
	

	
		<item>
			<title>01.07.2008 15:04:29 sotakone</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741273</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741273</link>
			<description><![CDATA[не без этого]]></description>
			<pubDate>Tue, 01 Jul 2008 15:04:29 GMT</pubDate>
			<author>sotakone</author>
		</item>
	

	
		<item>
			<title>01.07.2008 15:00:32 semka</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741261</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741261</link>
			<description><![CDATA[в пхп много чего есть только почти все через жопу]]></description>
			<pubDate>Tue, 01 Jul 2008 15:00:32 GMT</pubDate>
			<author>semka</author>
		</item>
	

	
		<item>
			<title>01.07.2008 14:55:30 sotakone</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741256</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741256</link>
			<description><![CDATA[В пхп много чего есть, только этим мало кто пользуется.]]></description>
			<pubDate>Tue, 01 Jul 2008 14:55:30 GMT</pubDate>
			<author>sotakone</author>
		</item>
	

	
		<item>
			<title>01.07.2008 14:54:48 sotakone</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741254</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741254</link>
			<description><![CDATA[Неправильно вас понял :)]]></description>
			<pubDate>Tue, 01 Jul 2008 14:54:48 GMT</pubDate>
			<author>sotakone</author>
		</item>
	

	
		<item>
			<title>01.07.2008 14:33:39 eugenius_nsk</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741214</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741214</link>
			<description><![CDATA[Ещё раз: фраза "класс - это объект" верна (для Ruby), фраза "объект - это класс" ошибочна.<br />
<br />
ontopic: А вот для прототипных языков, кстати, фразу "объект - это класс" в некотором приближении можно считать верной.]]></description>
			<pubDate>Tue, 01 Jul 2008 14:33:39 GMT</pubDate>
			<author>eugenius_nsk</author>
		</item>
	

	
		<item>
			<title>01.07.2008 14:18:40 tenshi</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741188</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741188</link>
			<description><![CDATA[в пхп есть волшебная функция __call которая вызывается, в случае отсутствия у объекта нужного метода.]]></description>
			<pubDate>Tue, 01 Jul 2008 14:18:40 GMT</pubDate>
			<author>tenshi</author>
		</item>
	

	
		<item>
			<title>01.07.2008 14:10:06 shiko_1st</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741168</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741168</link>
			<description><![CDATA[Для позднего связывания есть dispinterface :-)]]></description>
			<pubDate>Tue, 01 Jul 2008 14:10:06 GMT</pubDate>
			<author>shiko_1st</author>
		</item>
	

	
		<item>
			<title>01.07.2008 14:01:30 lrrr</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741145</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741145</link>
			<description><![CDATA[Принципиальная разница в использовании позднего связывания. "Сообщения" &#151; это просто вызов метода, да, но обязательно поиск обработчика должен происходить в рантайме.]]></description>
			<pubDate>Tue, 01 Jul 2008 14:01:30 GMT</pubDate>
			<author>lrrr</author>
		</item>
	

	
		<item>
			<title>01.07.2008 13:20:07 shiko_1st</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_741011</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_741011</link>
			<description><![CDATA[Насчет стрелочек не соглашусь. Мне нравится pascal-style синтаксис.<br />
<br />
Что же касается разнообразия, то достало после php писать в delphi что-то вида for(), а после delphi в php писать for i := 0 to :-)))]]></description>
			<pubDate>Tue, 01 Jul 2008 13:20:07 GMT</pubDate>
			<author>shiko_1st</author>
		</item>
	

	
		<item>
			<title>01.07.2008 13:15:22 sotakone</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_740998</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_740998</link>
			<description><![CDATA[Если бы каждый автор не добавлял своих "особенных извратов", у Вас бы сейчас не было столь любимых стрелочек и точечек. Посмотрите на Smalltalk-80, такой синтаксис у первого оо-языка. Вообще, "прогресс не возможен без отклонений от нормы (с)", поэтому чем разнообразнее языки идейно и синтаксически, тем больше вероятность найти для себя подходящий инструмент :)]]></description>
			<pubDate>Tue, 01 Jul 2008 13:15:22 GMT</pubDate>
			<author>sotakone</author>
		</item>
	

	
		<item>
			<title>01.07.2008 13:02:42 shiko_1st</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_740958</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_740958</link>
			<description><![CDATA[Скорее всего, это действительно лучше. Но раздражает обилие попугайского синтаксиса в таких языках. Почему-то каждый автор стремиться добавить какой-то свой особенный изврат, не имеющий ничего общего с наиболее распространенными вариантами.<br />
<br />
Что же касается Object Pascal, то в случае, когда нужен асинхронный вызов метода (я по прежнему настаиваю на том, что нет принципиальной разницы между методами и сообщениями), реализовать это несложно даже без нативной поддержки. Просто код разбивается на две части &#151; внешняя часть помещает параметры в очередь, внутренняя их разгребает.]]></description>
			<pubDate>Tue, 01 Jul 2008 13:02:42 GMT</pubDate>
			<author>shiko_1st</author>
		</item>
	

	
		<item>
			<title>01.07.2008 12:55:44 sotakone</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_740935</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_740935</link>
			<description><![CDATA[разные языки <s>решают</s> предлагают]]></description>
			<pubDate>Tue, 01 Jul 2008 12:55:44 GMT</pubDate>
			<author>sotakone</author>
		</item>
	

	
		<item>
			<title>01.07.2008 12:54:26 sotakone</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_740927</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_740927</link>
			<description><![CDATA[Однако у разработчиков компилятора такого желания нет (и, сдается мне, на это есть веские причины), так что язык напрямую такой механизм не поддерживает.<br />
<br />
Зачастую разница в реализации - это принципиальная разница. Мы, конечно, можем научить Паскаль универсальному диспатчингу сообщений, но какой в этом смысл? Гораздо лучше, когда разные языки решают предлагают разные механизмы для решения наших задач.]]></description>
			<pubDate>Tue, 01 Jul 2008 12:54:26 GMT</pubDate>
			<author>sotakone</author>
		</item>
	

	
		<item>
			<title>01.07.2008 12:36:18 shiko_1st</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_740873</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_740873</link>
			<description><![CDATA[Ничто не мешает добавить линковку несуществующего метода на некий универсальный вида DispatchUnknownMethod(const Name: String; const Params: array of const);<br />
Было бы желание у разработчика компилятора.<br />
<br />
Так что принципиальной разницы таки нет, есть разница в реализациях, да и то &#151; есть впечатление, что подобные фишки потенциально способны привести к сложнопонимаемому коду.]]></description>
			<pubDate>Tue, 01 Jul 2008 12:36:18 GMT</pubDate>
			<author>shiko_1st</author>
		</item>
	

	
		<item>
			<title>01.07.2008 12:23:54 shiko_1st</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_740830</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_740830</link>
			<description><![CDATA[Это ТОЖЕ обертка, просто оформленная иначе и ничего более :-)]]></description>
			<pubDate>Tue, 01 Jul 2008 12:23:54 GMT</pubDate>
			<author>shiko_1st</author>
		</item>
	

	
		<item>
			<title>01.07.2008 12:11:03 sotakone</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_740787</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_740787</link>
			<description><![CDATA[Разница есть. Если в "классическом" ооп-языке у объекта вызывается несуществующий метод, то код либо не собирается, либо падает в рантайме. А если язык отсылает именно сообщение, то у объекта-получателя есть возможность это сообщение обработать (независимо от того, есть у него соответствующий метод или нет). Например, таким образом можно сделать элегантную реализацию прокси (все сообщения, пришедшие объекту Б, отправляем объекту С). Или вот такой syntax sugar (ruby):<br />
<br />
User.find_by_title_and_author_id("First post", @author);<br />
<br />
Тут класс User получает сообщение "find_by_title_and_author_id", парсит его, выдирает поля для поиска (title и author_id) и делает запрос к базе. Такая вот особая динамическая магия.]]></description>
			<pubDate>Tue, 01 Jul 2008 12:11:03 GMT</pubDate>
			<author>sotakone</author>
		</item>
	

	
		<item>
			<title>01.07.2008 11:47:00 semka</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_740701</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_740701</link>
			<description><![CDATA[Заменя . -> и прочего мусора на " " обусловлена двумя факторами: 1. Наследие Smalltalk'а (А там именно так) 2. Стремление максимально упростить синтаксис.<br />
А в остальном я с вами даже соглашусь, хотя вы сами пишете о том, что вызов метода --- обертка над асинхронным сообщением, тут мы минуя обертку получаем что хотим и все дела (:]]></description>
			<pubDate>Tue, 01 Jul 2008 11:47:00 GMT</pubDate>
			<author>semka</author>
		</item>
	

	
		<item>
			<title>01.07.2008 11:43:52 shiko_1st</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_740692</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_740692</link>
			<description><![CDATA[Не вижу здесь никакой кривоты. Реализация аналогична реализации посылки синхронных/асинхронных сообщений, именно в силу отсутствия принципиальной разницы. Можно даже сказать, что методы &#151; это своего рода красивая обертка для отправки сообщений :-)<br />
<br />
Тем более, тут еще встает вопрос о том, какой именно конструкцией реализовывать отправку сообщений. Если в стиле win23 API &#151; SendMessage(Instance, Message, WParam, LParam) &#151; то ничего человечного тут нет. Куда более человечным будет Instance.Message(WParam, LParam).<br />
<br />
Что же касается конструкций описываемого Вами языка, то ничем иным, кроме желания у его автора выпендриться, я не могу объяснить замену "." или на худой конец "->" пробелами. Ибо как Вы совершенно верно показали в своей предыдущей заметке по теме, никакой принципиальной разницы между Instance print и Instance.print не существует (в том числе и в плане человечности). И то, и другое &#151; это вызов некоего кода, который делает что-то с объектом Instance. Как именно называть это &#151; "вызов метода" или "отправка сообщения" &#151; совершенно неважно, ибо ПО СУТИ действие одно &#151; выполнение некоторого кода в контексте объекта Instance.<br />
<br />
Если же говорить о человекоподобности, то человекоподобным будет print "Hello world", а вовсе не наоборот ;-)]]></description>
			<pubDate>Tue, 01 Jul 2008 11:43:52 GMT</pubDate>
			<author>shiko_1st</author>
		</item>
	

	
		<item>
			<title>01.07.2008 11:38:50 oleganza</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/28254/#comment_740685</guid>
			<link>http://habrahabr.ru/blogs/crazydev/28254/#comment_740685</link>
			<description><![CDATA[Кстати, по теме:<br />
<br />
Number ! := method(self * (self - 1)!)<br />
0 ! := 1<br />
<br />
Io> 5!<br />
==> 120<br />
<br />
(ахтунг тут: <a href="http://pastie.org/225449" title="http://pastie.org/225449">http://pastie.org/225449</a>)]]></description>
			<pubDate>Tue, 01 Jul 2008 11:38:50 GMT</pubDate>
			<author>oleganza</author>
		</item>
	

	
</channel>
</rss>

