Здравствуйте, Kernan, Вы писали:
K>Просто ты не осилил. В шаблонной "магии" используются простые принципы языка. ты их не знаешь, отсюда и непонимание того как оно всё работает.
Здравствуйте, kurchatov, Вы писали:
K>Откуда пошла эта мода на обмазывание шаблонами к месту и не к месту? Нет, я ничего не имею против шаблонов, если действительно надо — только приветствую. K>Но в последние годы появился какой-то особенный класс С++ программистов, которые пихают шаблоны везде, делая код и ошибки компиляции нечитаемыми.
Ну так выразительных средств в плюсах мало и новых не добавляется, вот и приходится обмазываться шаблонами.
Здравствуйте, Олег К., Вы писали:
ОК>Чувак, только потому что в языке есть фича еще не значит что ее надо пихать куда не попадя.
чел, ты про нечитаемые ошибки? так а кто-то разве сует в свой код нечитаемые ошибки? оО
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
P>>>spirit — это либа, предоставляющая такие возможности (embedded EBNF), которые просто невозможно достичь иными способами.
K>>Да вот только не EBNF она предоставляет, а нечитаемую пародию на него.
P>Дело скорее вкуса. Достаточно быстро адаптируешься, а для задач, под которые, как я считаю он более всего подходит (см. ниже) — большего и не надо.
Это не дело вкуса, а дело инженеринга. Мне довелось поддерживать проект в который такие любители запихали Спирит. Абсолютно нечитаемый и неподдерживаемый код был в тех местах. Ну и в первую очередь вообще в том проекте не нужно было придумывать файлы которые надо было парсить. Без них можно было обойтись.
K>>На практике от использования спирита возникает больше проблем, чем решается.
P>Ниша спирита — небольшие встроенные парсеры, в местах где не хватает регекспов. P>Если пытаться написать на нем парсер плюсов — проблемы несомненно будут =)
Чукча не читатель — чукча писатель? Все кто ратует за Спирит и есть вот такие чукчи.
K>>Самое оптимальное почти во всех случаях — сделать прототип на ANTLR и написать рабочий парсер вручную по мотивам сгенерированного кода.
P>Это ваш опыт. Возможно вам так удобнее. Мой опыт — либо полностью автогенереный код, куда смотреть вообще не нужно, либо достаточно спирита. P>То что я видел "по мотивам сгенерированного кода" — нечитаемое говно, единственное "достоинство" которого — нет шаблонов =)
А ты представь если бы в то гавно еще и шаблоны запихали! Было б вообще весело!
K>>Если все еще непонятно, о чем говорю — приведу пример — boost::spirit. Это просто экстремум шаблонофилии.
_>На самом деле не экстремум. Экстремум можно поискать где-то в области пересечения boost.mpl, boost.proto, boost.fusion... )
+1.
_>Что касается boost.spirit, то пожалуй не соглашусь. Во всяком случае пока никто не продемонстрирует мне настолько же удобный и быстрый аналог, но без "шаблонофилии".
Ты видимо никогда не поддерживал код в который такие любители запихали Спирит. Иначе бы быстро поменял мнение.
_>Т.е. вот допустим есть тривиальная задачка: прочитать большой текстовый файл в специфическом формате (например какая-нибудь вариация на тему csv). Какое вы предложите решение, чтобы оно было быстродействующим и при этом занимало пару строчек кода? )
Жесть какая-то. Чтобы прочитать цсв Спирит не нужен!
Здравствуйте, Олег К., Вы писали:
P>>Дело скорее вкуса. Достаточно быстро адаптируешься, а для задач, под которые, как я считаю он более всего подходит (см. ниже) — большего и не надо. ОК>Это не дело вкуса, а дело инженеринга. Мне довелось поддерживать проект в который такие любители запихали Спирит. Абсолютно нечитаемый и неподдерживаемый код был в тех местах.
"Это не дело вкуса, а дело инженеринга. Мне довелось поддерживать проект в который такие любители запихали [PLACEHOLDER]. Абсолютно нечитаемый и неподдерживаемый код был в тех местах."
Следует ли из этого это что использование [PLACEHOLDER], делает код абсолютно не читаемым и не поддерживаемым? Нет.
Например, goto в кривых руках превращает код в лапшу, а в прямых — это всего лишь инструмент с определённым предназначением
K>C++ с годами становится все сложнее и сложнее. Особенно в последнее время, когда стандарты стали готовиться с невиданной скоростью (C++11, C++14, ...).
K>Отличный язык превращается в сложнейшего монстра. Группа гиков от программирования написала Boost, и я очень рад, что далеко не все компании (особенно топовые) решаются использовать его. K>Это только удорожает и удлиняет разработку ПО. Скучаю по C++ 03.
Некоторые вещи в бусте полезны, но я большему счет согласен с тобой. Только это применимо не только к С++. Вообще вся разработка идет не в ту сторону. Все инженерные решения должны быть простыми. На деле же в ИТ попала куча (м|ч)удаков которых надо гнать бейсбольными битами. Настоящих инженеров мало. Зато много вот таких вот любителей навернуть сверх меры и надобности. В плюсах это шаблоны где не попадя. В Джаве малюсенькие классы с какими-то через чур абстрактными названиями, малюсенькие функции, паттерн на паттерне и гигантские колл стэки. И ведь не понимают же!
K>>Удачи! X>спасибо, но ты прочти еще раз мой первый пост в этом треде
Чувак, вряд ли к твоему мнению можно вообще прислушиваться. Ты там в ветке про Сайберакса ныл про плохой код который ты решил переписать. А теперь ответь, почему ты решил, что никто не прийдет и не скажет что твой говнокод нужно переписать?
Здравствуйте, Олег К., Вы писали:
ОК>Некоторые вещи в бусте полезны, но я большему счет согласен с тобой. Только это применимо не только к С++. Вообще вся разработка идет не в ту сторону. Все инженерные решения должны быть простыми. На деле же в ИТ попала куча (м|ч)удаков которых надо гнать бейсбольными битами. Настоящих инженеров мало. Зато много вот таких вот любителей навернуть сверх меры и надобности. В плюсах это шаблоны где не попадя. В Джаве малюсенькие классы с какими-то через чур абстрактными названиями, малюсенькие функции, паттерн на паттерне и гигантские колл стэки. И ведь не понимают же!
о, оракул, открой нам истину!
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
PM>>не люблю Qt X>да, это ужасное творение. но для ГУЯ приходится использовать, увы
Ну так запили свое гавно на темплейтах.
PM>>Высказывания "не используем boost потому что он слишком сложный" для меня признак низкой квалификации ведущего разработчика. Работать в такой команде — профессионально деградировать. X>угу.
Чувак, проблемы бизнеса надо решать а не дрочить на язык!
Здравствуйте, Олег К., Вы писали:
ОК>Чувак, вряд ли к твоему мнению можно вообще прислушиваться. Ты там в ветке про Сайберакса ныл про плохой код который ты решил переписать. А теперь ответь, почему ты решил, что никто не прийдет и не скажет что твой говнокод нужно переписать?
чел, ты читаешь только то, что тебе удобно, мы уже это поняли
про плохой код: я писал, что он плохой и по мнению самого Сайберакса. но тебе-то это не интересно, потому что неудобно
про мой код: наверняка кто-то таки скажет что мой код плохой, как и говорили уже ранее. но куда мне до тебя-то, о великий!
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
P>На практике получается, что нежелающие "тратить драгоценное время на разработку с бустом" — тратят его на написание каких-то своих убогих велосипедов, вместо "оптимизации дизайна и алгоритмов".
А желающие — тратят его на написание каких-то своих шикарных костылей к готовым бустовским байкам. По сути так на так и выходит. Плюсы при использовании буста — человеку со стороны, знающему конкретную примененную часть буста проще понять код (ну, ему еще надо будет разобраться в прилагающихся костылях, но это, допустим, мелочи). Минусы — любое обобщенное решение сложно, а значит потенциально ненадежно и потенциально неоптимально. Примеры — boost::optional (редкостный силос, ИМХО) и boost::asio (без слез и мата работать с ним невозможно). Или вот, скажем, boost::circular_buffer. Ну просится, просится сделать не буфер, а просто адаптер-итератор, гораздо полезнее, ИМХО, но итератор — это не по-пацански, на нем не показать, что ты умеешь аллокаторы и move-semantics, потому и целый, извините, буфер.
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Здравствуйте, slava_phirsov, Вы писали:
_>Примеры — boost::optional (редкостный силос, ИМХО) и boost::asio (без слез и мата работать с ним невозможно).
мдя... не хотелось верить, что вас больше двух...
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)