Чтобы добавлять сообщения и комментарии, .

@luarviq:
luarviq

Меня заебало ООП в том виде, в котором его втюхивает населению Java. Я ничего не хочу знать про эти ваши сраные классы, я хочу работать с чистыми расовыми объектами. Именно поэтому я все, что можно, запихиваю в nodejs модули. А вы, питонщики, вы тоже пишете классы? Повинен смерти! У вас же есть декораторы, это лучшее в питоне, нахера вам это говно? Воистину, если ты создаешь иерархии классов и не используешь хотя бы один паттерн (хотя бы сраную фабрику объектов), то гнать тебя сраной метлой. А тем, кто это делает на С++, вливать горячий свинец в глотку, ибо это означает, что они ниасилили шаблоны. Быдлокодеры убили ООП, что привело к появлению Java. А теперь они распространили эту заразу и в JavaScript. И как вот блеать работать после этого? Я имею в виду — работать, а не быдлодизайнить

@pimiento2:
pimiento2

По прочтении статьи sites.google.com

Мало чего понял, но уяснил, что лучше использовать фабрику вместо синглетона. Синглтон не удаляется и не отпускает память.

@Shizokl:
Shizokl

"Classical Inheritance generally lets you inherit only from a single ancestor, forcing you into awkward taxonomies. I say awkward because without fail,every OO design taxonomy I have ever seen in a large application was eventually wrong." medium.com

@OCTAGRAM:
OCTAGRAM

octagram.name
Есть такая книга, Saba Zamir, «Handbook of Object Technology», в моей квартире толще неё, наверное, только БСЭ, там обо всём помаленьку. Нравится мне тем, что в этой книге нашлось места и для Ada, и для SOM, и для Object Pascal, и ещё много чего, о чём я не знал, но, может быть, найду время почитать.

Для своей эпохи довольно важная, каждый, кто хотел иметь отношение к объектным технологиям, стремился в эту книгу попасть (Saba Zamir там в роли редактора, а у каждой главы свой автор). Полное оглавление можно посмотреть здесь и даже купить отдельную главу за $20. Многие главы после публикации в книге были переопубликованы в Интернете, такие главы я надёргал отдельными файлами. Например, много, где лежит PDF «An Overview of the C++ Programming Language» под авторством Ricardo Devis, Bjarne Stroustrup, и там в самом начале написано «From The Handbook of Object Technology (Editor: Saba Zamir). CRC Press LLC, Boca Raton. 1999. ISBN 0-8493-3135-8» — как раз из этой книги. А какие–то главы, которые были мне особо интересны, я надёргал в Google Books: books.google.ru
Делать это получалось с переменным успехом, Google показывает не все страницы, но для разных IP скрыты разные, причём, я года два назад трёх провайдеров поменял, и ещё с работы заглядывал, но так и не все страницы взял. Сегодня ещё раз заглянул с ещё одного места, и белые пятна в интересных мне главах практически ликвидировал. Одна страница с парой–тройкой элементов списка литературы осталась скрытой. Переживём как–нибудь без списка литературы, я этой литературы всё равно накачал изрядно, читать — не перечитать.

Интересовал меня раздел V Object Technology Standards and Distributed Objects, а в нём главы с 28ой по 32ую. Там и про CORBA, и про SOM, и про DSOM; а самая последняя глава — про COM. Там я вроде тоже всё знаю, но на всякий случай выдернул и её тоже. Другой интересный раздел был посвящён ООП в разных языках программирования. То, что касается Ada 95, выдернул почти всё, ещё на всякий случай Modula-3, SmallTalk, Objective-C, но там с пробелами. Про Object Pascal я и так всё знал, поэтому даже не выдёргивал. Если в Google Books много страниц посмотреть, он начинает прятать всё большими кусками, так что когда пролистал то, что мне интересно больше всего, остальное оказывается скрыто. Физически книга есть у меня дома ( octagram.name ), если что–то ценное, могу так почитать или отсканировать.

До сих пор загадка, как это IBM так сдулись, и их технологии вычеркнулись отовсюду, как в «Черновике» Лукьяненко или как в Потерянной комнате. Своим физическим присутствием книга работает как свидетельство. Собственно описание SOM там гораздо проще, чем остальное, что я читал по этой теме.

@OCTAGRAM:
OCTAGRAM

drive.google.com
Копия: octagram.name (21 Мб)
Приложение к книге: octagram.name

Теперь можно нормально читать «Putting Metaclasses to Work: A New Dimension in Object-Oriented Programming» by Ira R. Forman, Scott H. Danforth.
Martin Iturbide сделал OCR и собрал всё в PDF. Размер уже вменяемый, но состояние ещё сыроватое. Страницы не повёрнуты, чёрный цвет букв выглядит серым и прочие недостатки, которые, наверное, не критичны.
Если есть умельцы, которые хотят и могут сделать лучше, можно скачать 400 dpi сканы здесь: octagram.name (900Mb) Я думаю, Мартин в будущем ещё улучшит качество сам.

Меня потом будет интересовать, как отправить эту книгу в 100500 либрусеков, чтоб везде была

@OCTAGRAM:
OCTAGRAM

octagram.name

24 апреля 2007 года некто Guido van Rossum оставил комментарий к книге «Putting Metaclasses to Work»:

Too bad this is out of print; I keep referring to it as the best tutorial I know for the difficult subject of cooperative multiple inheritance, supported by Python via the super() function.
amazon.com

Книга изначально стоила $39.95. Б/у книги обычно дешевеют, но эту книгу я был счастлив найти б/у за $51, потому что цена на б/у обычно не меньше $80. По моему мнению, если б/у книга дороже новой, когда новая была в печати, это признак, что надо допечатывать новые тиражи. При всём при этом книгу так и не удалось найти в p2p. С книгой, наконец, случилось то, что и должно было. Она отсканирована (первая ссылка), но ничего, кроме этого пока не сделано, и когда будет сделано, не знаю. Я вообще раньше никогда не переводил книги в цифру.

Размеров бояться не надо. Если обложка весит в цвете 23Мб, то типичная страница в оттенках серого получается на 2-4, редко 6Мб. В сумме 1Гб. Разрешение 400dpi. К книге по–хорошему должен был прилагаться CD-ROM или Floppy, но кто–то очень умный решил вместо этого разместить вложение в Интернете. Вложение упомянуто, например, на странице xiii (временный адрес octagram.name ). Как это обычно бывает в таких случаях, фиг там уже что скачаешь. awl.com теперь перенаправляет на сайт нового владельца: informit.com

На сайте написано «Register your product to gain access to bonus material or receive a coupon.», но ничего там в личном кабинете, конечно, не появилось после регистрации, а техподдержка пишет:

Dear Ivan,

If you have registered the textbook but are unable to locate the desired resources, then those resources may no longer exist.

Because this book is 16 years old and out of print since 2001, many of its resources are no longer supported and available online.

We apologize for any difficulty or inconvenience this has caused you.

Основательно поколдовав с Internet Wayback Machine, файлик получилось найти и сохранить: octagram.name

@lovesan:
lovesan

Три воображаемых кита ООП это на самом деле не инкапсуляция, наследование и полиморфизм.

Это изолированность, компонентность и повторное использование кода.

Именно вот эти три вещи ООП по идее должно было дать. К сожалению, не дало. Просрали все полимеры. Ну и еще и обнаружили, по ходу дела, что программирование как вид деятельности не масштабируется, кроме совсем тривиальщины, да и ту лучше программными средствами решать, а не проедать бюджет на всяких макак. Впрочем, из последнего есть забавное следствие — если ты менеджер или владелец аутсорса, можно делать на этом бабло, нагревая заказчиков на кругленькие суммы на починке разной простенькой мелочи средствами индусов/восточноевропейцев. Нечестно, конечно, но чо — деньги не пахнут.

@OCTAGRAM:
OCTAGRAM

Есть одна такая книга по программированию: «Putting Metaclasses to Work by Ira R. Forman, Scott Danforth, Addison-Wesley 1999».
Её в последнее время чаще всего упоминают в контексте реализации метаклассов, а также в контексте произхождения Python, в котором метаклассы реализовывались по этой книжке. Так, например, в статье в Wikipedia про метаклассы en.wikipedia.org (в руской Wikipedia аналогично) эта книга — первая в сносках, а последующие — про метаклассы в Python, идеи для которого были взяты из неё же:

python-history.blogspot.ru
I was inspired to implement new-style classes by a very specific book, "Putting Metaclasses to Work" by Ira Forman and Scott Danforth
books.google.ru

В книге описываются возможности метаклассов на примере модифицированного C++, который их поддерживает. Этот язык не вымышленный, под него были компиляторы. Ira (Айра) R. Forman имеет прямое отношение к разработке IBM SOMObjects DTK 3.0, частью которой предполагалось сделать технологию D2SOM (DTS, Direct-to-SOM) — когда компилятор, например, C++, способен напрямую компилировать код для C++ в объекты SOM, сам создаёт файлы .idl. Технологию так и не доработали, и в SOM 3.0 она так и не вошла, а потом у IBM началась череда странностей, в результате которой и OS/2 ушла, а вместе с ней и куча технологий, для которых она была плацдармом. И у Apple с Copland не заладилось, надо же было так совпасть. В принципе, если DTS хочется посмотреть, в компиляторах для OS/2 она есть и, может быть, даже в VisualAge C++ 3.5.6 для Windows тоже, у меня этой версии нет, не проверял.

При всём обилии ссылок на эту книгу найти её в электронном виде в Greylink DC++ p2p или хотя бы из Google Books по страничке надёргивать с разных IP, как это было с «Saba Zamir: Handbook of object technology», не получилось. Её, похоже, нет в сети вообще. Она вышла из печати, а те магазины, где она ещё есть, радуют ценниками в 90 долларов. Не могу сказать, что это проблема книги, скорее проблема нашей айтишной индустрии. Когда кажется, что с новыми мощностями железа мы с удвоенной скоростью помчимся к новым достижениям, случается фазовый переход, и вместо прогресса получается одурение, прогресс вроде бы не нужен, если вот прямо сейчас можно поставить несколько временных костылей, и вся эта мощь начинает тратиться на костыли, а то, что можно было бы переписать и улучшить, так и застывает, вроде бы и не надо ничего менять, и так работает. Нет ничего более постоянного, чем временное. Вот и с технологией программирования так же. Всё то, что я написал, мало, кому известно, а чего–то лучше и не создано. Всё как–то застыло.

На этой неделе я наконец–то получил эту книгу.

@4DA:
4DA

lucacardelli.name

@lovesan:
lovesan

Накатал такое:

habrahabr.ru

Метаобъектный протокол Common Lisp на примере реализации прототипной объектной системы.

@segfault:
segfault

ru.wikipedia.org
то, что я всегда делал интуитивно, оказывается, имеет даже название.

@zxc-by:
zxc-by

В общем хочу язык общего назначения, функциональный, с поддержкой ООП, с крутой статической системой типов, прямым доступом к памяти, чтобы можно было делать ассемблерные вставки, ещё чтобы хорошо распараллеливался и чтобы можно было делать горячую замену кода, а ещё чтобы можно было синтаксис какой угодно делать и изменять код прямо во время работы программы. Ещё нужно чтобы был хороший IDE для языка, и нужно чтобы не нужно было точку с запятой ставить в конце строки, и чтобы программа всегда запускалась и работала, как в PHP, даже если есть ошибки. Нужна поддержка кроссплатформенной компиляции в C, C++, JavaScript (для браузеров), в PHP, Go и в машинный код. И чтобы работало в интерпретаторе и виртуальной машине. Чтобы были встроенные библиотеки для создания игр, вебсайтов, бухгалтерии. Ещё операторы должны называться на русском. Ещё хорошо бы сделать поддержку визуального кодирования цветными блоками, чтобы новичкам легко было изучить язык.

@DespicableMe:
DespicableMe

Области видимости здесь реализованы хрен знает как. После шарпов и джав оно вообще никак не смотрится. Синтаксически всё гораздо понятнее и проще в тех же сях.
Чувствую, что рожу скоро ещё больший говнокод, чем писал когда либо до этого.

@silentium:
silentium

Сорвался

@mikeb:
mikeb

даже захуярив никому не нужный ООП в драйвер, интел всё равно умудряется хуйнуть extern на функцию из другого мудуля и позвать её в коммон коде...

@OCTAGRAM:
OCTAGRAM

octagram.name
Вот это я понимаю, нормальная цена для книги. Жалко, на доставке погорю

@OCTAGRAM:
OCTAGRAM

Долгое время не могу найти в электронном виде Saba Zamir, Handbook of Object Technology crcnetbase.com

В p2p мне известны две магнитные ссылки: magnet:?xt=urn:tree:tiger:5LT56SKGOL2H2LGSGIGVRWVJUEH2D22LYRVDZHQ&xl=19198295&dn=CRC+Press+-+Handbook+of+Object+Technology.zip magnet:?xt=urn:tree:tiger:MMXI5TP5YA2FTWAD4UUA6MQUPC4XPPK3R3I5SFY&xl=18029159&dn=Handbook+of+Object+Technology+(CRC+Press).7z

Обе стоят на закачке который месяц. Нет никого с этими файлами. В поле зрения dc.proisk.org юзеры с такими файлами попадали в начале 2012го года и при мне эти юзеры на хабах так и не появлялись. sci-hub.org не помог. В инете рабочих ссылок не нашёл. При том, что находятся интересные листинги с варезом:
groups.google.com
Очень много в Интернете всяких непонятных лабиринтов типа g5q.ru , где в конце концов попадаешь на поисковик по рапидшарам, но на рапидшаре все ссылки сдохли, либо лабиринтов типа rusbook.net , где в конце концов попадаешь на сайт продавца за много $$$, но перед этим будет обман из ключевых слов Скачать книгу Handbook of Object Technology (Saba Zamir) можно в следующих форматах: rtf.zip, txt, txt.zip, fb2.zip, epub, html.zip, a4.pdf, a6.pdf, java, doc.prc.zip, rb, lit, mobi.prc, lrf, isilo3.pdb.

У меня такое чувство, что я чего–то не улавливаю. У кого–то есть гигантские коллекции книг по программированию и, такое впечатление, ещё и налаженная сеть по распространению этого дела, а в Интернет и DC++ это выплывает по воле случая. Где б надыбать библиотеку программиста, не хуже, чем здесь: groups.google.com Ну и желательно, конечно, с той книжечкой, которую я ищу.

@wasd:
wasd

#!/bin/bash

# ---------------------------------------------------------------------------
# OO support functions
# Kludged by Pim van Riezen <pi@madscience.nl>
# ---------------------------------------------------------------------------
lab.madscience.nl

@4DA:
4DA

On Understanding Data Abstraction, Revisited
ompldr.org

Отличная (короткая!) статья про фундаментальные различия между objects и ADT.
Странно,что ее раньше не видел.

@OCTAGRAM:
OCTAGRAM

iis.sinica.edu.tw

Несколько кратких документов о SOM, которые, как мне показалось, неплохо обрисовывают, чем является SOM, что такое метаклассы, несовместимость метаклассов, бинарная совместимость.
Спойлер:
1) Чувак в курсе про CLOS, ObjVLisp, SmallTalk и т. д.
2) В третьем документе презанятная табличка, сравнивающая SOM с другими средствами обеспечения бинарной совместимости между разными релизами. Оказывается, под SGI IRIX есть некий SGI Delta C++, который тоже много, чего умеет

Конечная цель этих инструментов — сделать так, чтобы любые изменения не требующие изменения исходных кодов, не требовали перекомпиляции. То есть, если использовали библиотеку одной версии, и был в ней класс, от которого мы отнаследовались, а в следующей версии этот класс изменился сам и поменял цепочку наследования, SOM или Delta C++ должны избавлять от необходимости перекомпиляции зависимого кода

@folex:
folex

Жуйк, а не посоветуешь книгу/статью по ООП? Именно по ООП, волнует терминология и все такое.
В принципе, не особо важно, какой там будет язык, но C# предпочтительнее.

@zhu:
zhu

 Считается, что ООП позволяет отображать в программе объекты реального мира. Однако в реальности у меня есть собака (с двумя ушами, четырмя лапами и ошейником) и счёт в банке (с менеджером, клерками и обеденным перерывом), а в программе — ВыгулМенеджер, СчётФабрика… ну, вы поняли.habrahabr.ru

@juniorroy:
juniorroy

The idea to make reusable software so attractive. Somehow reuse has become associated with OOP. But software does not have to be OO to be reusable — this is obvious when we look at programming languages (that is, compilers), which are the most reusable software of all. (c) Paul Graham

@lovesan:
lovesan

Иллюстрация к #1737434

@lovesan:
lovesan

к #1737434
pastebin.com

В идеале, еще должен быть и Output(хотя в энергичных языках это должен быть коллбэк, а не поток, наверное), но суть понятна, думаю.

@lovesan:
lovesan

Некоторые мысли про I/O в ОО-языках.
love5an.livejournal.com

@juniorroy:
juniorroy

rigidus.livejournal.com : ООП — Оборачиваем Ошибки Полиэтиленом.

@trilliput:
trilliput

rainman-rocks.livejournal.com

@alar:
alar

Почему современные железные программисты так обожают городить структуры с указателями на структуры с указателями на коллбэки? Неужели они предполагают, что на их устройствах будет что-то вроде динамически загружаемых драйверов? Я ещё понимаю на ARMах каких-нибудь, но на восьмибитных мухобойках такой код встречается даже чаще.

@stanis:
stanis

Вы хочите вбросов? Их есть у меня.
Accessors/mutators VS public properties.
Let the battle begin!

@scame:
scame

Возвращать null страшно, не правда ли? Но почему?

@lovesan:
lovesan

Обобщенные функции CLOS
habrahabr.ru

@yoghurt:
yoghurt

Singletons considered harmful (очередная вариация на тему) object-oriented-security.org

@yoghurt:
yoghurt

Alan Knight: Principles of OO Design, or Everything I Know About Programming, I Learned from Dilbert alanknightsblog.blogspot.com

@yoghurt:
yoghurt

Don't make objects that end with 'er'! objology.blogspot.com

@bioh:
bioh

blogerator.ru
К сожалению, вероятно из-за того, что как я уже сказал выше, ответное выступление объектников "Почему ООП не провалилось" получилось несколько скомканным из-за интеллектуального натиска Lisp'еров, выступающие так и не оформили впоследствии свою позицию преимуществ ООП в развернутом виде.

@vladimir-vg:
vladimir-vg

Вот в прототипном ооп, когда мы говорим об объекте A который получился в результате клонирования B, мы говорим, что что B является прототипом (prototype) A.

А как сказать наоборот? Кем приходится A к B? Потомком? (child)

@zoonman:
zoonman

Вот все бы так писали, было бы намного приятнее habrahabr.ru

@nobodyzzz:
nobodyzzz

The Gang of Four patterns as everyday objects agile.dzone.com

@Crazy-Owl:
Crazy-Owl

(class-of (class-of (class-of (class-of (class-of (class-of (class-of (class-of (class-of (class-of (class-of 1)))))))))))
#<STANDARD-CLASS STANDARD-CLASS>

>> type(type(type(type(type(type(type(type(type(type(type(2)))))))))))<type 'type'>

ок.