i+++++i (но топик не про это :) )
От: Anpek  
Дата: 28.12.12 07:47
Оценка: +17 -2
Во почитал тут про просьбу накидать извратов в С++
И встал вопрос — зачем все это?
Я всю жизнь прогаю на С++, но никак не пойму — зачем писать код, который, чтобы понимать, надо хрен знает сколько знать?

Столкнулся когда-то по работе с любителем буста. Ну это ж просто трындец какой-то. Какой-нить хитрожопый бинд и код запутывается так, что хрен потом разберешься
Это я только пример привел, таких примеров куча
И не надо говорить, что я старый пердун и не хочу разбираться в новых технологиях и веяниях

С++ — это всего лишь молоток, который дан вам в руки. Когда люди начинают хвастаться, что умеют делать молотком массаж простаты с одновременным пломбированием зубов — ну что ж — флаг вам в руки
Re: Любители Буста
От: Qbit86 Кипр
Дата: 28.12.12 07:55
Оценка: 1 (1) +1 :)))
Здравствуйте, Anpek, Вы писали:

A>Столкнулся когда-то по работе с любителем буста. Ну это ж просто трындец какой-то. Какой-нить хитрожопый бинд и код запутывается так, что хрен потом разберешься


У меня для тебя плохая новость: «хитрожопый бинд» переехал из Буста в Стандарт, теперь ты будешь встречать его всё чаще.

A>И не надо говорить, что я старый пердун и не хочу разбираться в новых технологиях и веяниях


Почему не надо? Брюзжание про «любителей Буста» именно так и выглядит.

A>С++ — это всего лишь молоток, который дан вам в руки. Когда люди начинают хвастаться, что умеют делать молотком массаж простаты с одновременным пломбированием зубов — ну что ж — флаг вам в руки


Вгоняет в ступор бинд — ну что ж — плохо быть тобой. По возможности избегайте этого.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Любители Буста
От: Anpek  
Дата: 28.12.12 07:57
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Вгоняет в ступор бинд — ну что ж — плохо быть тобой. По возможности избегайте этого.


Я не именно про бинд говорил, ничего там мудреного нету и все с ним понятно. Я говорил, что можно его так применить, что понимание и дебаг кода превращаются в кошмар
И многие еще хвастаются — гляньте как я умею
Re[2]: Любители Буста
От: MTD https://github.com/mtrempoltsev
Дата: 28.12.12 08:05
Оценка: 32 (7) +4
Здравствуйте, Qbit86, Вы писали:

Q>У меня для тебя плохая новость


У меня для тебя тоже плохая новость. Не в первый раз сталкиваюсь с твоим задором неофита, хотя вроде бы ты не студент. Так вот, по моему мнению, разработчик проходит три этапа:
1. Он еще мало, что знает и пишет так как может
2. Ему кажется, что он уже многое знает и тут начинаются трюки, стремление вместить побольше паттернов, обожествление Буста и Александреску
3. Он действительно знает и умеет, поэтому пишет простой, понятный и расширяемый код

А теперь ссылка на столь почитаемых тобой авторитетов:

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

Брайан Керниган

Re[2]: Любители Буста
От: NeoCode  
Дата: 28.12.12 08:08
Оценка: +1
Здравствуйте, Qbit86, Вы писали:

Q>У меня для тебя плохая новость: «хитрожопый бинд» переехал из Буста в Стандарт, теперь ты будешь встречать его всё чаще.


Я считаю, что прежде чем вносить в Стандарт, нужно было подумать головой и сделать как следует — то есть добавить эту концепцию (и множество других) в сам язык, а не в библиотеку. Сделать ее атомарной (как массивы, функции и классы), а не реализованной на каких-то навороченных шаблонах и дефайнах. Чтобы была нормальная поддержка компиляторами, нормальные сообщения об ошибках и т.д.

Не знаю что имел в виду топикстартер, но лично у меня претензия не к самой концепции (которая весьма неплоха и весьма полезна), а к тому что все это реализовано средствами, изначально для этого не предназначавшимися. То, что в нормальном языке должно быть потрохами компилятора, в С++ существует в открытом виде в хитрожопых инклудах буста.
Re[3]: Любители Буста
От: Qbit86 Кипр
Дата: 28.12.12 08:22
Оценка: 1 (1) +2
Здравствуйте, MTD, Вы писали:

MTD>Не в первый раз сталкиваюсь с твоим задором неофита, хотя вроде бы ты не студент.


Это не задор неофита. Это неприязнь к луддитам.

Я пишу на разных языках, и C++ вовсе не самый предпочтительный. Буст и новый Стандарт — это вещи, которые делают процесс написания на C++ хоть сколь-нибудь сносным. Их наличие — этот тот минимум, с которым я ещё готов браться за C++.

MTD>Так вот, по моему мнению, разработчик проходит три этапа:


В классической формулировке эти три этапа звучат так:
1) Не уметь использовать.
2) Уметь использовать.
3) Уметь не использовать.

MTD>

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


Использование большей части Буста не требует приложения чрезвычайных умственных усилий. Но использование Boost.Bind всё-таки предполагает понимание концепций функций высших порядков и замыканий. Если Boost.Bind вызывает сложности, то это скорее проблема не Буста, а понимания идей, за ним лежащих. Возможно, стоит начать с чего-то попроще, со Scala/C#/F#/Python (и не побоюсь этого слова Haskell). После этого суть «хитрожопых биндов» будет проще разглядеть за вырвиглазным плюсовым синтаксисом.
Глаза у меня добрые, но рубашка — смирительная!
Re[4]: Любители Буста
От: Anpek  
Дата: 28.12.12 08:26
Оценка: +1 :)
Здравствуйте, Qbit86, Вы писали:

Q>Использование большей части Буста не требует приложения чрезвычайных умственных усилий.


БЛИИИИИИННННН
Не про это топик!!! Вот людям сказать — ГРУША — так они ничего не видят кроме этого
Я не про бинд говорил!!!! Посмотри в заголовок!! Что думаешь я не понимаю что такое i++?
Я писал про ИЗВРАТЫ в применении С++!!!!!

ЗАБУУУДЬЬЬ ЧТО Я НАПИСАЛ ПРО БИИИНННДД!!!!!!!!
Re[3]: Любители Буста
От: Qbit86 Кипр
Дата: 28.12.12 08:29
Оценка:
Здравствуйте, NeoCode, Вы писали:

NC>Я считаю, что прежде чем вносить в Стандарт, нужно было подумать головой и сделать как следует — то есть добавить эту концепцию (и множество других) в сам язык, а не в библиотеку.

NC>Сделать ее атомарной (как массивы, функции и классы), а не реализованной на каких-то навороченных шаблонах и дефайнах. Чтобы была нормальная поддержка компиляторами, нормальные сообщения об ошибках и т.д.

Если делать язык с нуля, то, разумеется, функции желательно делать первоклассными объектами, и поддержка частичных применений должна быть естественной.
Но вносить эти изменения конкретно в ядро C++ — это противоречит его духу, дизайну и эволюции. Страуструп не раз говорил, что решение проблем библиотечными средствами предпочтительней.

NC>Не знаю что имел в виду топикстартер, но лично у меня претензия не к самой концепции (которая весьма неплоха и весьма полезна), а к тому что все это реализовано средствами, изначально для этого не предназначавшимися. То, что в нормальном языке должно быть потрохами компилятора, в С++ существует в открытом виде в хитрожопых инклудах буста.


Всё верно. Но с учётом контекста и истории, на текущем этапе эволюции C++ внесение этих вещей в библиотеку, а не ядро — предпочтительнее.
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: Любители Буста
От: Qbit86 Кипр
Дата: 28.12.12 08:32
Оценка:
Здравствуйте, Anpek, Вы писали:

A>ЗАБУУУДЬЬЬ ЧТО Я НАПИСАЛ ПРО БИИИНННДД!!!!!!!!


Ок. Просто «любители Буста» звучало несколько провокационно и пренебрежительно.
Глаза у меня добрые, но рубашка — смирительная!
Re[3]: Любители Буста
От: Ops Россия  
Дата: 28.12.12 08:35
Оценка:
Здравствуйте, NeoCode, Вы писали:

NC>Я считаю, что прежде чем вносить в Стандарт, нужно было подумать головой и сделать как следует — то есть добавить эту концепцию (и множество других) в сам язык, а не в библиотеку. Сделать ее атомарной (как массивы, функции и классы), а не реализованной на каких-то навороченных шаблонах и дефайнах. Чтобы была нормальная поддержка компиляторами, нормальные сообщения об ошибках и т.д.


NC>Не знаю что имел в виду топикстартер, но лично у меня претензия не к самой концепции (которая весьма неплоха и весьма полезна), а к тому что все это реализовано средствами, изначально для этого не предназначавшимися. То, что в нормальном языке должно быть потрохами компилятора, в С++ существует в открытом виде в хитрожопых инклудах буста.


А тебе не пофиг, как оно реализовано? Я вот очень давно не залезал в исходники ни буста, ни стандартной библиотеки, хотя использую все это каждый день.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: i+++++i (но топик не про это :) )
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 28.12.12 08:38
Оценка: +1
Здравствуйте, Anpek, Вы писали:

A>Столкнулся когда-то по работе с любителем буста. Ну это ж просто трындец какой-то. Какой-нить хитрожопый бинд и код запутывается так, что хрен потом разберешься

A>Это я только пример привел, таких примеров куча
A>И не надо говорить, что я старый пердун и не хочу разбираться в новых технологиях и веяниях

Человек при программировании мыслит паттернами. Причем этих паттернов много, многие из них забываются без надлежащего использования, новые приобретаются. Чистый язык Си, например, достаточно небольшой, и все большинство паттернов можно помнить в одно время. В случае С++ это уже сложнее, обязательно где-то произойдет перекос либо в сторону Си с классами, либо в сторону шаблонизации а-ля boost, либо в сторону ООП с частым использованием множественного наследования и т. п. Конфликт случается, когда ты читаешь код программиста с другим набором таких паттернов. Т. е. разобраться в таком коде ты можешь, но на это уходит больше времени и сил, потому как конструкции не воспринимаются монолитно, а каждую нужно тщательно анализировать.

Кстати, разные code-style также преследуют цель добиться более-менее системы паттернов у программистов, работающих над проектом
Re[4]: Любители Буста
От: MTD https://github.com/mtrempoltsev
Дата: 28.12.12 08:38
Оценка: 2 (2) +5
Здравствуйте, Ops, Вы писали:

Ops>А тебе не пофиг, как оно реализовано?


Мне не пофигу:
1. Скорость компиляции
2. Диагностика ошибок
Re[3]: Любители Буста
От: jazzer Россия Skype: enerjazzer
Дата: 28.12.12 08:45
Оценка:
Здравствуйте, NeoCode, Вы писали:

NC>То, что в нормальном языке должно быть потрохами компилятора, в С++ существует в открытом виде в хитрожопых инклудах буста.


Python — нормальный язык?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[4]: Любители Буста
От: MTD https://github.com/mtrempoltsev
Дата: 28.12.12 08:48
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Python — нормальный язык?


Увы, местами.
Re[6]: Иногда Буст - это просто Буст (-)
От: Alexander G Украина  
Дата: 28.12.12 08:49
Оценка:
Русский военный корабль идёт ко дну!
Re[4]: Любители Буста
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 28.12.12 09:12
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q> Но использование Boost.Bind всё-таки предполагает понимание концепций функций высших порядков и замыканий. Если Boost.Bind вызывает сложности, то это скорее проблема не Буста, а понимания идей, за ним лежащих. Возможно, стоит начать с чего-то попроще, со Scala/C#/F#/Python (и не побоюсь этого слова Haskell). После этого суть «хитрожопых биндов» будет проще разглядеть за вырвиглазным плюсовым синтаксисом.


А еще Boost.Bind создает неимоверное количество проблем при отладке с использованием gdb из консоли, о чем многие вендовые разработчики напрочь забывают.
Re[5]: Любители Буста
От: jazzer Россия Skype: enerjazzer
Дата: 28.12.12 09:19
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>А еще Boost.Bind создает неимоверное количество проблем при отладке с использованием gdb из консоли, о чем многие вендовые разработчики напрочь забывают.


Юзай GDB >= 7.0 — там есть питоновские постпроцессоры, можно настроить на выкидывание из стектрейса всяких потрохов Boost.Bind, Boost.Test etc
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[6]: Любители Буста
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 28.12.12 09:24
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, kaa.python, Вы писали:


KP>>А еще Boost.Bind создает неимоверное количество проблем при отладке с использованием gdb из консоли, о чем многие вендовые разработчики напрочь забывают.


J>Юзай GDB >= 7.0 — там есть питоновские постпроцессоры, можно настроить на выкидывание из стектрейса всяких потрохов Boost.Bind, Boost.Test etc


Я не уверен что на Mac OS X доступен GDB >= 7.0. Вернее я на 99% что он там не доступен и никогда не будет доступен, ибо GPL 3.0
Да, так и есть:
GNU gdb 6.3.50-20050815 (Apple version gdb-1820) (Sat Jun 16 02:40:11 UTC 2012)


И да, я говорю не только и не столько о стектрейсе, сколько о команде удобстве использования s, n, fin в этом случае.
Re[5]: Любители Буста
От: jazzer Россия Skype: enerjazzer
Дата: 28.12.12 09:34
Оценка:
Здравствуйте, MTD, Вы писали:

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


J>>Python — нормальный язык?


MTD>Увы, местами.


Я к тому, что в этом нормальном (увы, местами) языке частичное применение реализовано в виде библиотеки functools.partial.
И никто не матерится, вроде, как здесь.

Я уж не говорю про Хаскель — у него частичное применение по-человечески сделано только для начальных аргументов, а чтоб связать, скажем, только третий аргумент — придется лямбду писать и/или юзать костыли типа flip

Так что Boost.Bind — это совсем не плохой пример реализации этой функциональности.
А то, что она со всеми своими _1 не встроена в язык, позволяет использовать _1 еще в куче мест — в Boost.Phoenix, в Boost.MPL etc
А когда допилят полиформные лямбды — изчезнет, я надеюсь, этот ужас с доступом к членам и оно станет еще читабельнее.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[7]: Любители Буста
От: jazzer Россия Skype: enerjazzer
Дата: 28.12.12 09:36
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>>>А еще Boost.Bind создает неимоверное количество проблем при отладке с использованием gdb из консоли, о чем многие вендовые разработчики напрочь забывают.


J>>Юзай GDB >= 7.0 — там есть питоновские постпроцессоры, можно настроить на выкидывание из стектрейса всяких потрохов Boost.Bind, Boost.Test etc


KP>Я не уверен что на Mac OS X доступен GDB >= 7.0. Вернее я на 99% что он там не доступен и никогда не будет доступен, ибо GPL 3.0

KP>Да, так и есть:
KP>
KP>GNU gdb 6.3.50-20050815 (Apple version gdb-1820) (Sat Jun 16 02:40:11 UTC 2012)
KP>


Мак — суксь, я всегда это знал

KP>И да, я говорю не только и не столько о стектрейсе, сколько о команде удобстве использования s, n, fin в этом случае.


это тоже, я уверен, можно перенастроить, чтоб он корректно проваливался/вылетал, пропуская мусор — в GDB же все команды переопределить можно, ЕМНИП.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.