Страуструп + Мейерс = ! любовь
От: Pushkin Россия www.linkbit.com
Дата: 09.01.03 08:18
Оценка: 1 (1)
Давно во мне шебуршит вопрос, есть ли некий напряг между этими людьми? Я, разумеется, имею в виду не личный напряг, а, как бы помягче сказать, противостояние идеологий.

Почему возник вопрос. Во-первых, полностью противоположные рекомендации.
С: Избегайте глобальных функций, по возможности оформляйте всё в функции-члены.
М: Глобальные функции всегда предпочтительны, только в очень редких случаях (необходимость виртуальности) есть смысл использовать фунции-члены.
С: Избегайте слова "friend", желание его использовать часто говорит о недостатках проектирования.
M: Друзья усиливают инкапсуляцию. Дружественная внешняя фунция всегда лучше функции-члена.
...думаю, можно продолжиь, но уже видно — говорят с точностью до наоборот.

И второе. Почему Страуструп нигде не ссылается на Мейерса? У него сотни ссылок, в том числе на вполне свежие книжки, Гамма есть, Буч есть, ещё множество известных имён, а Мейерса нет. Почему?

Я здесь вполне тёмный — прочитал полторы книжки одного и две статьи другого. Так что простите заранее, если херню порю, было бы очень интересно услышать мнение просвещённой общественности.
Re: Страуструп + Мейерс = ! любовь
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.01.03 08:30
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>Почему возник вопрос. Во-первых, полностью противоположные рекомендации.

P>С: Избегайте глобальных функций, по возможности оформляйте всё в функции-члены.
P>М: Глобальные функции всегда предпочтительны, только в очень редких случаях (необходимость виртуальности) есть смысл использовать фунции-члены.

Товарищ С полностью прав. ИМХО товарищ М фигню говорит.

P>С: Избегайте слова "friend", желание его использовать часто говорит о недостатках проектирования.


Тоже в принципе верно.
... << RSDN@Home 1.0 beta 4 (developer build)>>
AVK Blog
Re: Страуструп + Мейерс = ! любовь
От: retalik www.airbandits.com/
Дата: 09.01.03 08:38
Оценка: 4 (2)
Здравствуйте, Pushkin, Вы писали:

P>Давно во мне шебуршит вопрос, есть ли некий напряг между этими людьми? Я, разумеется, имею в виду не личный напряг, а, как бы помягче сказать, противостояние идеологий.


После прочтения "Effective C++" & "More Effective C++", напротив, полное ощущение их солидарности.

P>Почему возник вопрос. Во-первых, полностью противоположные рекомендации.

P>С: Избегайте глобальных функций, по возможности оформляйте всё в функции-члены.
P>М: Глобальные функции всегда предпочтительны, только в очень редких случаях (необходимость виртуальности) есть смысл использовать фунции-члены.

Ты выдергиваешь цитаты из контекста. Причем, как я понимаю, вторая цитата из "культовой" статьи про инкапсуляцию. Мейерс сам говорит о ее парадоксальности. Речь не идет о глобальных функциях вообще, а о реализации обобщенных "алгоритмов", которые могут применяться одинаково, к примеру, для разных объектов (хороший пример — std::copy).

P>С: Избегайте слова "friend", желание его использовать часто говорит о недостатках проектирования.

P>M: Друзья усиливают инкапсуляцию. Дружественная внешняя фунция всегда лучше функции-члена.
P>...думаю, можно продолжиь, но уже видно — говорят с точностью до наоборот.

Опять передергивание. Тебе бы лишь поспорить. По Мейерсу, лучше всего "недружественная внешняя функция", если это возможно без нарушения инкапсуляции.

P>И второе. Почему Страуструп нигде не ссылается на Мейерса? У него сотни ссылок, в том числе на вполне свежие книжки, Гамма есть, Буч есть, ещё множество известных имён, а Мейерса нет. Почему?

Но последнее издание Страуструпа довольно старое.

P>Я здесь вполне тёмный — прочитал полторы книжки одного и две статьи другого. Так что простите заранее, если херню порю, было бы очень интересно услышать мнение просвещённой общественности.


В упомянутых выше книгах Мейерс выполняет вполне себе просветительскую работу: объясняет, почему в язык введены те или иные конструкции, и как не нужно писать программы на C++. Фактически, он расшифровывает рекомендации Страуструпа, которые тот дает кратко, для более опытной аудитории.
Успехов,
Виталий.
Re: Страуструп + Мейерс = ! любовь
От: vasketsov Россия http://ntprog.by.ru
Дата: 09.01.03 09:29
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>Давно во мне шебуршит вопрос, есть ли некий напряг между этими людьми? Я, разумеется, имею в виду не личный напряг, а, как бы помягче сказать, противостояние идеологий.


P>Почему возник вопрос. Во-первых, полностью противоположные рекомендации.

P>С: Избегайте глобальных функций, по возможности оформляйте всё в функции-члены.
P>М: Глобальные функции всегда предпочтительны, только в очень редких случаях (необходимость виртуальности) есть смысл использовать фунции-члены.

Все предельно просто.
Это означает "пишите на C++ а не на С".
C++ без функций-членов — это просто нонсенс.
Васкецов Сергей
http://registry.km.ru
Re[2]: Страуструп + Мейерс = ! любовь
От: Pushkin Россия www.linkbit.com
Дата: 09.01.03 09:39
Оценка:
Здравствуйте, retalik, Вы писали:

R>Здравствуйте, Pushkin, Вы писали:


P>>Давно во мне шебуршит вопрос, есть ли некий напряг между этими людьми? Я, разумеется, имею в виду не личный напряг, а, как бы помягче сказать, противостояние идеологий.


R>После прочтения "Effective C++" & "More Effective C++", напротив, полное ощущение их солидарности.


Такие-то люди мне и нужны, которые прочитали, а не как я, лентяй, пролистали

P>>С: Избегайте глобальных функций, по возможности оформляйте всё в функции-члены.

P>>М: Глобальные функции всегда предпочтительны, только в очень редких случаях (необходимость виртуальности) есть смысл использовать фунции-члены.

R>Ты выдергиваешь цитаты из контекста.


Ты хочешь, чтобы я весь текст нескольких книг и статей привёл?

R>Причем, как я понимаю, вторая цитата из "культовой" статьи про инкапсуляцию. Мейерс сам говорит о ее парадоксальности.


Парадокс — это верное утверждение, в которое трудно поверить. Вот если бы о говорил о спорности...

R>Речь не идет о глобальных функциях вообще, а о реализации обобщенных "алгоритмов


Мне показалось (уж эту-то статью я правда читал ), что там претензия на всеобщность

P>>С: Избегайте слова "friend", желание его использовать часто говорит о недостатках проектирования.

P>>M: Друзья усиливают инкапсуляцию. Дружественная внешняя фунция всегда лучше функции-члена.

R>Опять передергивание. Тебе бы лишь поспорить.


Дык!

R>По Мейерсу, лучше всего "недружественная внешняя функция", если это возможно без нарушения инкапсуляции.


Лучше всего да. Но в его "псевдокоде" ясно стоит фраза "если не получается недружественная, делай дружественную". А ведь не сказал "делай встроенную" !

P>>И второе. Почему Страуструп нигде не ссылается на Мейерса? У него сотни ссылок, в том числе на вполне свежие книжки, Гамма есть, Буч есть, ещё множество известных имён, а Мейерса нет. Почему?

R> Но последнее издание Страуструпа довольно старое.

Но и Мейерс, вероятно, не вчера родился...

R>В упомянутых выше книгах Мейерс выполняет вполне себе просветительскую работу: объясняет, почему в язык введены те или иные конструкции, и как не нужно писать программы на C++. Фактически, он расшифровывает рекомендации Страуструпа, которые тот дает кратко, для более опытной аудитории.


Я про статьи, в основном говорил...
Re: Страуструп + Мейерс = ! любовь
От: MaximE Великобритания  
Дата: 09.01.03 09:50
Оценка: 4 (1)
Здравствуйте, Pushkin, Вы писали:

P>Почему возник вопрос. Во-первых, полностью противоположные рекомендации.

P>С: Избегайте глобальных функций, по возможности оформляйте всё в функции-члены.
P>М: Глобальные функции всегда предпочтительны, только в очень редких случаях (необходимость виртуальности) есть смысл использовать фунции-члены.

"Избегайте глобальных функций" и "по возможности оформляйте всё в функции-члены" выдернуты из разных контекстов. С как раз рекоммендует не злоупотреблять методами.

P>С: Избегайте слова "friend", желание его использовать часто говорит о недостатках проектирования.

P>M: Друзья усиливают инкапсуляцию. Дружественная внешняя фунция всегда лучше функции-члена.

В своем факе С объясняет почему friend не нарушает инкапсуляцию.
Re[2]: Страуструп + Мейерс = ! любовь
От: orangy Россия
Дата: 09.01.03 09:55
Оценка:
Offtopic:

ME>В своем факе С объясняет <...>

А почему С, а не С++?
... << RSDN@Home 1.0 beta 4 | Сейчас четверг, 15:01, слушаю The Offspring — The end of the line >>
"Develop with pleasure!"
Re[3]: Страуструп + Мейерс = ! любовь
От: MaximE Великобритания  
Дата: 09.01.03 09:57
Оценка:
Здравствуйте, orangy, Вы писали:

O>Offtopic:


ME>>В своем факе С объясняет <...>

O>А почему С, а не С++?

Сокращенно Страуструп.
Re[3]: Страуструп + Мейерс = ! любовь
От: retalik www.airbandits.com/
Дата: 09.01.03 10:18
Оценка:
Здравствуйте, Pushkin, Вы писали:

R>>Ты выдергиваешь цитаты из контекста.

P>Ты хочешь, чтобы я весь текст нескольких книг и статей привёл?
Нет, но здесь классический случай (как с Лениным и ППС). Раздувать из этого антагонизм — все равно, что надергать строчек их твоих постов в разные форумы и состряпять тему "Пушкин + Пушкин != любовь"

Кстати, причем здесь любовь вообще? То есть люди, по-твоему, обязаны разделять взгляды только с теми, кто им симпатичен?

P>Лучше всего да. Но в его "псевдокоде" ясно стоит фраза "если не получается недружественная, делай дружественную". А

ведь не сказал "делай встроенную" !
Чем-то и мне его псевдокод не понравился. Сейчас уже не скажу, чем именно.

R>>В упомянутых выше книгах Мейерс выполняет вполне себе просветительскую работу: объясняет, почему в язык введены те или иные конструкции, и как не нужно писать программы на C++. Фактически, он расшифровывает рекомендации Страуструпа, которые тот дает кратко, для более опытной аудитории.


P>Я про статьи, в основном говорил...

Ты про нелюбовь говорил. Где факты, типа "Страуструп называет в бане Мейерса нехорошими словами на глазах трудящихся"?
Успехов,
Виталий.
Re[2]: Страуструп + Мейерс = ! любовь
От: Pushkin Россия www.linkbit.com
Дата: 10.01.03 14:31
Оценка: 4 (1)
Здравствуйте, MaximE, Вы писали:

P>>С: Избегайте слова "friend", желание его использовать часто говорит о недостатках проектирования.

P>>M: Друзья усиливают инкапсуляцию. Дружественная внешняя фунция всегда лучше функции-члена.

ME>В своем факе С объясняет почему friend не нарушает инкапсуляцию.


Разницу между "не нарушают" и "усиливают" чувствуешь?
Re[2]: Страуструп + Мейерс = ! любовь
От: Pushkin Россия www.linkbit.com
Дата: 10.01.03 14:34
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Все предельно просто.

V>Это означает "пишите на C++ а не на С".
V>C++ без функций-членов — это просто нонсенс.

Ровно в этом ключе я пытался однажды высказываться в споре с Павлом Кузнецовым. Еле ноги унёс
Re[4]: Страуструп + Мейерс = ! любовь
От: Pushkin Россия www.linkbit.com
Дата: 10.01.03 14:36
Оценка:
Здравствуйте, retalik, Вы писали:

R>Кстати, причем здесь любовь вообще?


Исключительно для смешного названия темы

R>Чем-то и мне его псевдокод не понравился. Сейчас уже не скажу, чем именно.


Меня напрягает сам факт псевдокода для выполнения человеком
Re[3]: Страуструп + Мейерс = ! любовь
От: vasketsov Россия http://ntprog.by.ru
Дата: 10.01.03 15:44
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>Ровно в этом ключе я пытался однажды высказываться в споре с Павлом Кузнецовым. Еле ноги унёс ]


Private или ссылка есть?
Васкецов Сергей
http://registry.km.ru
Re[4]: Страуструп + Мейерс = ! любовь
От: Pushkin Россия www.linkbit.com
Дата: 11.01.03 13:13
Оценка:
Здравствуйте, vasketsov, Вы писали:
P>>Ровно в этом ключе я пытался однажды высказываться в споре с Павлом Кузнецовым. Еле ноги унёс ]

V>Private или ссылка есть?


здесь
Автор: Pushkin
Дата: 04.11.02
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.