Re[6]: Проф. пригодность, boost, Александреску и Ko
От: Шахтер Интернет  
Дата: 05.10.04 20:11
Оценка: +1 :))
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, Шахтер, Вы писали:


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


J>>>Так что как только я слышу слова: "STL большая и страшная, и что еще хуже — модная, давайте лучше быстренько напишем свой класс списка" — я очень жалею, что я не менеджер и не могу этого человека немедленно уволить.


Ш>>Не судьба мне у тебя работать.


J>Ну, если ты предпочитаешь писать свои велосипеды — да.


Не угадал. Я пишу реактивные самолёты. А велосипеды -- это то, на чем вы ездеете.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[6]: Проф. пригодность, boost, Александреску и Ko
От: Шахтер Интернет  
Дата: 05.10.04 20:11
Оценка: -1
Здравствуйте, korzhik, Вы писали:

K>Здравствуйте, Шахтер, Вы писали:


K>>>А зачем писать своё если есть готовое проверенное решение

Ш>>НЕТ решения, в этом всё и дело.
K>ЕСТЬ

НЕТ.

Ш>>Большинство проблем, которые решает boost -- надуманные.


K>ну вот что я использую из boost в текущем проекте:

K>1. boost::lexical_cast
K>использую, потому что lexical_cast удобно использовать в шаблонном коде
K>и он бросает исключение в случае неудачи. То есть это то что мне нужно.
K>Там примерно такой код
K>
K>template<typename T>
K>void parser::parse_value(T& value)
K>{
K>  if (m_tok.next())
K>  {
K>    tokenizer::token tk = m_tok.current_token();

K>    value = boost::lexical_cast<T>(std::string(tk.ptr, tk.len));
K>  }
K>}
K>


Про lexical_cast я на форуме писал -- использовать это чудо не стоит.

K>2. boost::numeric_cast

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

Не знаком.

K>3. boost::shared_ptr

K>4. boost::scoped_ptr
K>5. stl::auto_ptr
K>не хочу думать об освобождении памяти, ну и в случае исключения всё почистится

Эти вещи юзабельные. Хотя по-хорошему, счетчики ссылок должны быть интруизивными.

K>6. boost::bind

K>удобно

Если ты злоупотребляешь функторами -- тогда да.

K>-------------------------------------------------------------------------


K>>>shared_ptr в несколько строк не напишешь, это очень мощная штука.

Ш>>Это очень злементарная штука.
K>а элементарная штука не может быть мощной?

Может.

K>-------------------------------------------------------------------------


K>>>Ну Александреску я бы не рекомендовал читать новичкам, лишняя нагрузка на мозг.

K>>>А вот Саттера и Мейерса очень рекомендую.

Ш>>Все трое -- ламеры.

K>ну вы хоть согласны, что среди ламеров они всё таки не самые ламеристые?

Конечно, без сомнения.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[8]: Проф. пригодность, boost, Александреску и Ko
От: Шахтер Интернет  
Дата: 05.10.04 20:11
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Кодт, Вы писали:


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


J>>>Если помнишь, сие уравнение и все члены, в него входящие — комплекснозначные.

J>>>Добавь в уравнение нестационарный член, попробуй раскрутить потом все это по квазиклассике — сразу можно вспомнить про многолистные функции (помнишь ТФКП?) и над этим помедитировать с годик. А то и с десяток.

К>>Офф: кто-нибудь, можете поделиться ссылочкой на тему "волосы экспоненты". Помню, что было что-то очень математически красивое, да конспекты по ТФКП не сохранил.

LVV>Да ладно мужики, выпендриваться
LVV>Я из NARG помню только одно слово "вычет" (абсолютно забыв при этом, что оно означает — и не надо мне объяснять, все равно тут же забуду, уже сознательно)
LVV>

А зря.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[10]: Проф. пригодность, boost, Александреску и Ko
От: Шахтер Интернет  
Дата: 05.10.04 20:11
Оценка:
Здравствуйте, Кодт, Вы писали:

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


К>>>>Офф: кто-нибудь, можете поделиться ссылочкой на тему "волосы экспоненты". Помню, что было что-то очень математически красивое, да конспекты по ТФКП не сохранил.

LVV>>>Да ладно мужики, выпендриваться
LVV>>>Я из NARG помню только одно слово "вычет" (абсолютно забыв при этом, что оно означает — и не надо мне объяснять, все равно тут же забуду, уже сознательно)
LVV>>>

J>>что тут выпендриваться — я чуть диссер на эту тему не написал


К>Про волосы или про вычеты? Если про волосы — то хотя бы скажи, куда искать. Гугл мне не помог.


Честно говоря -- первый раз слышу. На что оно хотя бы похоже?
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[8]: Винии-Пух и небольшая история
От: Шахтер Интернет  
Дата: 05.10.04 20:11
Оценка: :))) :)
Здравствуйте, serg_mo, Вы писали:

_>Здравствуйте, Mr. None, Вы писали:


MN>>Внесу свои пять копеек. Забудем о регистрах, тем более, что я и сам стараюсь никогда не опускаться до такого уровня. Программист, использующий .NET или Java, существенно зависит от разработчика соответствующего Framework`а, потому что без него родимого вы практически ничего сделать не сможете. Сложность нестандартной задачи — задачи, не решаемой напрямую или косвенно фраймоворком, возрастает многократно.


_>Эээ... А что, на С++ не та же фигня?

_>Программист на С++ не зависит от того же STL?

Если зависит, то это уже не программист, а наркоман.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Offtopic
От: Шахтер Интернет  
Дата: 05.10.04 20:12
Оценка:
Здравствуйте, Stepkh, Вы писали:

S>Здравствуйте, Геннадий Васильев, Вы писали:


ГВ>>Если ты сделал что-то быстро, но плохо, то люди быстро забудут о том, что ты сделал это быстро, но будут помнить о том, что это было плохо. А если сделал хорошо, но медленно — люди тоже забудут о том, что ты сделал медлено, но будут помнить о том, что это было — хорошо. (c) пословица.


S>(c) Королев С.П.

S>http://www.rtc.ru/encyk/bibl/golovanov/korolev/52.html

Цитата.

Адскую по объему работу предстояло провести с новой ракетой баллистикам ОКБ: Святославу Сергеевичу Лаврову, Рефату Фазыловичу Аппазову, Михаилу Сергеевичу Флорианскому и другим. Борцы с "тлетворной буржуазной идеологией" позаботились о том, чтобы к этому времени у нас в стране существовала единственная (!) счетная машина — БЭСМ — "чудо техники". Если она работала четыре минуты подряд и не ломалась — это расценивалось как подарок судьбы! 476
Баллистики приезжали ночью, считали и были счастливы, потому что несколько минут работы этих загадочных шкафов равнялись многонедельному труду девчонок-расчетчиц, которые с утра до вечера трещали в Подлипках на своих допотопных, еще из Германии привезенных "Рейнметаллах", "Мерседесах" и уж совсем никуда не годных "Феликсах".


Я плакал.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[7]: Проф. пригодность, boost, Александреску и Ko
От: Шахтер Интернет  
Дата: 05.10.04 20:32
Оценка: 1 (1)
Здравствуйте, Геннадий Васильев, Вы писали:

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


LVV>>На самом деле, распространенность и "признание" во-многом зависят от двух вещей: реклама; персональный компьютер.

LVV>>Кто знал о пакале до турбо-паскаля? Персоналки сыграли свою решающую роль. Ну и реализация удачная была. Но самое главное — цена!!!!!!! 49.50 $
ГВ>Хммм... 1987 или 1988 г., ЕС-1035, СВМ, R-PASCAL — курсовики точно на нём писали.

ГВ>Потом, AFAIK, в успехе турбо-паскаля основную роль сыграла интегрированная среда. А реклама была что-то там на одну страницу BYTE. Хотя, может быть, это я какую-то легенду Борландовскую пересказываю.


LVV>>Сам язык играет гораздо меньшую роль, чем его реализация и маркетинг.

ГВ>Так вроде бы C++ — то без особого маркетинга распространился. Вот что интересно...

Ничего странного. Он пришелся по душе профи, которые в ту пору ещё не были вытеснены ваятелями формочек.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[7]: Проф. пригодность, boost, Александреску и Ko
От: jazzer Россия Skype: enerjazzer
Дата: 06.10.04 04:27
Оценка: 10 (6) +2
Здравствуйте, Шахтер, Вы писали:

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


J>>Здравствуйте, Шахтер, Вы писали:


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


J>>>>Так что как только я слышу слова: "STL большая и страшная, и что еще хуже — модная, давайте лучше быстренько напишем свой класс списка" — я очень жалею, что я не менеджер и не могу этого человека немедленно уволить.


Ш>>>Не судьба мне у тебя работать.


J>>Ну, если ты предпочитаешь писать свои велосипеды — да.


Ш>Не угадал. Я пишу реактивные самолёты. А велосипеды -- это то, на чем вы ездеете.


то, на чем мы в настоящее время ездим (если ты читал внимательно мой пост) — это даже не самокат, скорее, конь на палочке
хотя народ, его написавший, наверняка уверен, что это как минимум МИГ-25

Шахтер, если ты действительно пишешь вещи, намного превосходящие STL и boost по всем параметрам — выкладывай их в исходники, или закинь в тот же boost.
Давайте сделаем настоящие реактивные самолеты стандартом, чтобы никаким жаверам и шарперам даже и в голову не приходило сравнивать свои языки с С++.

Мы ведь тут для обмена опытом собрались, а не просто друг перед другом пальцы покидать, ведь так?
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[8]: Проф. пригодность, boost, Александреску и Ko
От: mefrill Россия  
Дата: 06.10.04 06:53
Оценка: :)
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Кодт, Вы писали:


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


J>>>Если помнишь, сие уравнение и все члены, в него входящие — комплекснозначные.

J>>>Добавь в уравнение нестационарный член, попробуй раскрутить потом все это по квазиклассике — сразу можно вспомнить про многолистные функции (помнишь ТФКП?) и над этим помедитировать с годик. А то и с десяток.

К>>Офф: кто-нибудь, можете поделиться ссылочкой на тему "волосы экспоненты". Помню, что было что-то очень математически красивое, да конспекты по ТФКП не сохранил.

LVV>Да ладно мужики, выпендриваться
LVV>Я из NARG помню только одно слово "вычет" (абсолютно забыв при этом, что оно означает — и не надо мне объяснять, все равно тут же забуду, уже сознательно)
LVV>

Ага, если при этом учесть, что вся машинная арифметика — это, на самом деле, арифметика вычетов по модулю максимального значения целого в данной реализации, то получается, что работаешь с этим много лет, но как называется не знаешь
Re[7]: Винии-Пух и небольшая история
От: Patalog Россия  
Дата: 06.10.04 07:05
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

[]

ГВ>Нельзя, поскольку это решение заменило log4cpp. Но принципы могу раскрыть поподробнее.


Было бы очень интересно. Собираюсь передывать то, что есть сейчас, так что любые идеи пойдут.
Почетный кавалер ордена Совка.
Re[11]: Проф. пригодность, boost, Александреску и Ko
От: jazzer Россия Skype: enerjazzer
Дата: 06.10.04 08:04
Оценка: 3 (2) +7
Здравствуйте, Alexey Chen, Вы писали:

AC>Здравствуйте, Glоbus, Вы писали:


AC>>>Сюда посмотри, это как пример о стереотипе. http://www.rsdn.ru/Forum/Message.aspx?mid=836687&amp;only=1
Автор: jazzer
Дата: 04.10.04


Я встряну, с Вашего позволения, раз уж мои слова обсуждаются

G>>Ну так я не понял в чем соль? Человек говорит тебе, что есть библиотеки — продуманные и вылизанные, гарантирующие отсутствие ошибок и гарантирующие определенные возможности — почему не пользовать их?

AC>Нет, он говорил о том, что некие люди пишут плохой код, но если бы они использовали STL/BOOST то всем было бы счастье... но как я уже говорил в других топиках, до первого столба. Почему он так думает я не знаю. Но он ведь не только так думает, а считает что это ЕДИНСТВЕННО ПРАВИЛЬНОЕ мнение. Если мение не правильное смотри пункт первый :) Чем подкреплено это мнение? Сравнением удачного и не удачного проекта? И только. Я вот знаю обратную картину. Какой можно сделать вывод? Дело не в STL'е или BOOST'е, а в людях. Меня же интересовало почему эти самые люди думают иначе. На что мне отвечают, что дык, правильно думают, по той причине что смотрите ... дальше идет текст приведенного топика.

вот именно что дело в людях.
И если я пользуюсь STL или boost или RWTools или Tools++ или еще чем-то общеизвестным, то я всегда могу поконтактировать с производителем, пообщаться с пользователями библиотеки, потому что имя им — легион, я могу посмотреть в исходники библиотеки и разобраться, как она работает, а в случае стандартной STL именно благодаря ее стандартности я могу еще и просто сменить реализацию, если какая-то конкретная меня в чем-то не устраивает, ибо интерфейс STL остается тем же.
В случае же велосипедов, написанных конкретными людьми, у меня такой возможности нет: люди (те самые "некие") в этой фирме давно уже не работают, исходный код недоступен, сменить библиотеку никакой возможности нет (вернее, есть, но ценой переписывания всего проекта).

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

Именно потому, что дело в людях, велосипедов в проекте должно быть как можно меньше.
И уж абсолютно неоправдано использование велосипедов, если они не имеют явных преимуществ по сравнению с общедоступными версиями.

G>>Давай пример попроще приведу. Есть функция синуса, вшитая в язык. Почему ты не пишешь свою, если так не доверяешь библиотекам? или ты признаешь только голый язык — типа грамматика + компилятор и никакие библиотеки тебе не нужны?

AC>Наверное по тому, что реализация синуса меня устраивает, а вот когда мене для задачи не устраивает функция генерации случайных чисел я пушу свою.

такое действительно бывает — все проекты разные, в каждом есть хоть какая-то изюмнка

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

G>>Ты ж пойми — о бусте говорят как о стандарте де-факто не потому что это модно, а потому что он вобрал в себя кучу типовых решений, так же как это сделала стл к примеру.

AC>Которые в большенстве своем решают выдуманные проблемы, а те, что решают типовые? могут быть реализованы существенно проще и гораздо прозрачнее.

чем не устраивают бустовские xxx_ptr, bind, checked_delete, xxx_traits и прочая?
или они решают выдуманные проблемы?
согласен, в бусте есть сырые куски, так их никто и не стандартизирует пока — посмотри на сайте wg21, что реально собираются стандартизировать.

AC>Ладно фиг с ним, с бустом. У нас есть много универсальных контейнеров, которым даже можно определить свои алокаторы и отношения порядка, но весь код работающий с этими контейнерами, (!) должен быть шаблонным. Иначе он будет работать только с конетенером имеющим конкретный аллокатор и конкретное оношение упорядочения. Круто, да? Тоесть функция которой надо взять из хеша/мапа/листа/... значение, должна знать, как контенер распределяет память и вычисляет ключи... мега дизайн!!!! А если мы вдруг соберем один модуль с одним STL'ем, а другой с другим... баах!!! Странно а компилер вроде один, и конструкции тоже. Вот я и не понимаю почему это правильно? А мне, я так полагаю, нужно этим пользоваться, ибо это единственно верный путь для профессионального программиста.:)


точно.
А поскольку велосипед один, с разными точно не скомпилироваться.
супераргумент.
а по поводу аллокаторов — я не очень понял, почему весь код должен быть шаблонным — у меня написана куча нешаблонного кода, который отлично работает с любыми STL.
Да, конечно, его надо будет перекомпилировать, но, во-первых, шаблонный код уж тем более придется перекомпилировать, а во-вторых, я не знаю самоубийц, которые при смене библиотеки (даже просто версии), используемой в проекте, не перекомпилировали бы весь проект целиком.

AC>Мы вроде как не про программеров-любителей говорим, правильно? Как алгоритмы работают занем, как тесткейсы писать тоже. И опыт некоторый имеется. Вот у меня и возникает вопрос, что мне дают контейнеры STL'я, кроме гемороя с его кривой (сорри, специфической) архитектурой? Ответ — стандартность, причем мнимую. Только стандартность, но ни как не стабильность, переносимость, производительность. А если еще и BOOST будет двать стандартность ...


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

AC>У нас в команде есть подобные классы, оттестированные на классе решаемых ими задач. Совершенно детерминированные на тех платформах с которыми мы работаем. Но почему-то когда я пользую их, кулл программеры, разбрасывают пальцы веером и говорят — уууу... ламер, БЮСТА не тебя нет! А в приведенном, как пример, топике, человек четко говорит — УВОЛЬНЯТЬ! Вот это промывка мозгов, это я понимаю!!! :)


Я уже сказал выше, в каких случаях я допускаю написание и использование собственных велосипедов.
В остальных случаях при упорстве данного разработчика — да, увольнять.
Либо сажать писать формочки.
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[10]: Проф. пригодность, boost, Александреску и Ko
От: jazzer Россия Skype: enerjazzer
Дата: 06.10.04 08:08
Оценка:
Здравствуйте, Кодт, Вы писали:

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


К>>>>Офф: кто-нибудь, можете поделиться ссылочкой на тему "волосы экспоненты". Помню, что было что-то очень математически красивое, да конспекты по ТФКП не сохранил.

LVV>>>Да ладно мужики, выпендриваться :)
LVV>>>Я из NARG помню только одно слово "вычет" (абсолютно забыв при этом, что оно означает — и не надо мне объяснять, все равно тут же забуду, уже сознательно)
LVV>>> :) :) :)

J>>что тут выпендриваться — я чуть диссер на эту тему не написал :)


К>Про волосы или про вычеты? Если про волосы — то хотя бы скажи, куда искать. Гугл мне не помог.


Про многозначные решения нестационарного уравнения Шредингера.

Про волосы — покопаюсь с своих конспектах по ТФКП, но вряд ли сегодня-завтра :)
Но раз гугл не помог — наверное, ты что-то перепутал, потому что кое-какие лекции по ТФКП в сети лежат
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[12]: Проф. пригодность, boost, Александреску и Ko
От: Alexey Chen Чили  
Дата: 06.10.04 08:44
Оценка:
Здравствуйте, jazzer, Вы писали:

J>вот именно что дело в людях.

J>И если я пользуюсь STL или boost или RWTools или Tools++ или еще чем-то общеизвестным, то я всегда могу поконтактировать с
производителем, пообщаться с пользователями библиотеки, потому что имя им — легион, я могу посмотреть в исходники библиотеки и разобраться, как она работает, а в случае стандартной STL именно благодаря ее стандартности я могу еще и просто сменить реализацию, если какая-то конкретная меня в чем-то не устраивает, ибо интерфейс STL остается тем же.
Перечисленное тобой означает, что за данный код не отвечает ни кто, и каждый может сделать что он хочет. С кем именно ты бдешь контактировать, к примеру, из тех кто прикручивал к Sun C++ STLport, и будут ли они контактировать с тобой и на сколько хорошо..
Это бедь бизнес. Это может быть выгодно или нет... А денежки то текут и работу делать тем немениее надо.

J>В случае же велосипедов, написанных конкретными людьми, у меня такой возможности нет: люди (те самые "некие") в этой фирме давно уже не работают, исходный код недоступен, сменить библиотеку никакой возможности нет (вернее, есть, но ценой переписывания всего проекта).

Интересно. Откуда ты взял, что собственны код команды не доступен внутри команды, при этом обязательно не оттестирован и криво написан?

J>Ты, безусловно, считаешь себя очень крутым программером,


J>который никогда не напишет плохой код, и плох, наверное, программер, относящийся к своему коду иначе, но реалии таковы, что идеальных
А не бывает хорошего кода, бывает код решающий задачу за приемлемые деньги и устраивающей стимостью саппорта, все остальное это домыслы.

J>Ни один велосипед не сравнится в этом смысле с общими библиотеками.

Да что вы говорите!? Общие библиотеки решают конкретные задачи плохо по определению и пользуются ими по причине низкой стоимости переиспользования. Я же имею множество примеров когда стоимось переиспользования (в том числе саппорта) дороже стоимости разработки.

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

У меня вот есть совершенно конкретный вопрос, если вдруг ты словишь ошибку второго или третьего рода где-то в глубине буста, что будешь делать? Вешаться? Или быстренько раскидаешь буст, поймешь что к чему и пойдешь искать причину? Дык,это как-то не сочитается с 'набрать новых людей'... таких спецов ооооочень мало.

J>У нас же в проекте (да и в любом проекте, использующим велосипеды) пара месяцев уходит только на то, чтобы человек просто въехал в библиотеку, сценарии ее использования, основные баги и объездные пути.

А в тех что используют STL, BOOST, и т.д. такого нет? Что-то вы путаете уважаемый.

J>И уж абсолютно неоправдано использование велосипедов, если они не имеют явных преимуществ по сравнению с общедоступными версиями.

Вопрос о преемуществах очень сложен Каковы ваши критерии? Для меня основной — простота, в смысле что написано то и делает, и что надо делать то и написано, а не вообще решение которое иногда делает то, что нужно.

J>но я вначале смотрю, есть ли уже оттестированная и общеизвестная библиотека, реализующая то, что мне нужно, так, как мне нужно, и только если мне не удалось ничего найти, я пишу свой велосипед и тщательно его комментирую и документирую.

Обажаю теоретиков, а если она у меня уже написана, но написана мной а не мега-кулл-программером из групы буста? Ну нафиг велосипед, я лучше скачаю фиг знает что и буду дого вникать что же оно делает... я правильно понимаю подход?

G>>>Ты ж пойми — о бусте говорят как о стандарте де-факто не потому что это модно, а потому что он вобрал в себя кучу типовых решений, так же как это сделала стл к примеру.

AC>>Которые в большенстве своем решают выдуманные проблемы, а те, что решают типовые? могут быть реализованы существенно проще и гораздо прозрачнее.

J>чем не устраивают бустовские xxx_ptr, bind, checked_delete, xxx_traits и прочая?

Тем, что они мне НЕ НУЖНЫ. Тем, что в том виде в котором мне нужна ПОДОБНАЯ ФУНКЦИОНАЛЬНОСТЬ они монструозны, трудно понимаемы и несопровождаемы. Однако мнение о том, что это де-фато стандарт, предпологает, что их ДОЛЖЕН знать и пользовать КАЖДЫЙ. Бред какой-то.

AC>>Ладно фиг с ним, с бустом. У нас есть много универсальных контейнеров, которым даже можно определить свои алокаторы и отношения порядка, но весь код работающий с этими контейнерами, (!) должен быть шаблонным. Иначе он будет работать только с конетенером имеющим конкретный аллокатор и конкретное оношение упорядочения. Круто, да? Тоесть функция которой надо взять из хеша/мапа/листа/... значение, должна знать, как контенер распределяет память и вычисляет ключи... мега дизайн!!!! А если мы вдруг соберем один модуль с одним STL'ем, а другой с другим... баах!!! Странно а компилер вроде один, и конструкции тоже. Вот я и не понимаю почему это правильно? А мне, я так полагаю, нужно этим пользоваться, ибо это единственно верный путь для профессионального программиста.


J>а по поводу аллокаторов — я не очень понял, почему весь код должен быть шаблонным — у меня написана куча нешаблонного кода, который отлично работает с любыми STL.


Обясню. У тебя есть функция которая, например, работает со строками, но в конкретном случае тебе для оптимизации узкого места, пришлось сменить аллокатор, и что же мы видим? А видим мы, что готовую функцию мы уже испоьзовать не можем. Вот мне и интересно зачем утильной функции зависить еще и от распределителя памяти окромя интерфейса обьекта. Это совсем простой пример

J>Да, конечно, его надо будет перекомпилировать, но, во-первых, шаблонный код уж тем более придется перекомпилировать, а во-вторых, я не знаю самоубийц, которые при смене библиотеки (даже просто версии), используемой в проекте, не перекомпилировали бы весь проект целиком.

А если проект состоит из модулей которые завият только по интерфейсам и пишутся разными командами, только одна использует MS STL, а другая STL port? И находятся вообще в разных городах и конторах? А вроде стандартная либа

J>про тесткейсы, которые тестируют и покрывают всю функциональность — вот этих сказок я уже наелся по самое не хочу.

Ну если для вас это сказки, а не инструмент, тогда звиняте...
Кстати, что вы подразумевали под 'всю'? У конкретного утильного класса должна быть очень узкая функциональность, опять же по определению, хотя смотря на буст, мне кажется, что народ считает это плохой практикой.
Re[11]: Проф. пригодность, boost, Александреску и Ko
От: Кодт Россия  
Дата: 06.10.04 09:06
Оценка:
Здравствуйте, Шахтер, Вы писали:

К>>Про волосы или про вычеты? Если про волосы — то хотя бы скажи, куда искать. Гугл мне не помог.


Ш>Честно говоря -- первый раз слышу. На что оно хотя бы похоже?


Какой-то очень затейливый фрактал — многозначное решение уравнения с экспонентой. При том, что уравнение не громоздкое, а решения (должны) получаться в виде семейства спиралей.
Ну напрочь не помню, что там за фигня. 10 лет назад ТФКП в институте изучали, лектор однажды показал это дело. Вот сейчас вспомнил, что было нечто такое...
Перекуём баги на фичи!
Re[11]: Проф. пригодность, boost, Александреску и Ko
От: Glоbus Украина  
Дата: 06.10.04 09:08
Оценка:
Здравствуйте, Alexey Chen, Вы писали:

AC>Нет, он говорил о том, что некие люди пишут плохой код, но если бы они использовали STL/BOOST то всем было бы счастье... но как я уже говорил в других топиках, до первого столба. Почему он так думает я не знаю. Но он ведь не только так думает, а считает что это ЕДИНСТВЕННО ПРАВИЛЬНОЕ мнение. Если мение не правильное смотри пункт первый Чем подкреплено это мнение? Сравнением удачного и не удачного проекта? И только. Я вот знаю обратную картину. Какой можно сделать вывод? Дело не в STL'е или BOOST'е, а в людях. Меня же интересовало почему эти самые люди думают иначе. На что мне отвечают, что дык, правильно думают, по той причине что смотрите ... дальше идет текст приведенного топика.


ДА, насчет людей ты конечно прав — но это аксиома которую не стоит повтоярть. А насчет того кто что кому навязывает — да нет таким ничего такого. приводится просто пример,зачем нужны стл-и буст-ы и тп. Вот ради интереса прикинь, скольк овремени тебе опнадобится чтоб написать свой аналог стл? Или хотя бы ту часть, которая потребуется в товем прожекте плюс некоторые возможности расширения на будущее? А теперь добавь это время к времени прожекта. И то же самое проделай для любой другой библиотеки. И вот мы и посмотрим сколько займет у тебя написание всего прожекта. А время это все еще пока ресурс как ни крути.


AC>Наверное по тому, что реализация синуса меня устраивает, а вот когда мене для задачи не устраивает функция генерации случайных чисел я пушу свою.


Чем не устраивает реализация вектора в стл?

G>>Ты ж пойми — о бусте говорят как о стандарте де-факто не потому что это модно, а потому что он вобрал в себя кучу типовых решений, так же как это сделала стл к примеру.

AC>Которые в большенстве своем решают выдуманные проблемы, а те, что решают типовые? могут быть реализованы существенно проще и гораздо прозрачнее.

Пальцем ткнуть в выдуманную проблему

AC>Ладно фиг с ним, с бустом. У нас есть много универсальных контейнеров, которым даже можно определить свои алокаторы и отношения порядка, но весь код работающий с этими контейнерами, (!) должен быть шаблонным. Иначе он будет работать только с конетенером имеющим конкретный аллокатор и конкретное оношение упорядочения. Круто, да? Тоесть функция которой надо взять из хеша/мапа/листа/... значение, должна знать, как контенер распределяет память и вычисляет ключи... мега дизайн!!!! А если мы вдруг соберем один модуль с одним STL'ем, а другой с другим... баах!!! Странно а компилер вроде один, и конструкции тоже. Вот я и не понимаю почему это правильно? А мне, я так полагаю, нужно этим пользоваться, ибо это единственно верный путь для профессионального программиста.


Какой-то бред Не нужно тебе думать о том как контейнер распределяет память — он это сделает без тебя.

AC>Мы вроде как не про программеров-любителей говорим, правильно? Как алгоритмы работают занем, как тесткейсы писать тоже. И опыт некоторый имеется. Вот у меня и возникает вопрос, что мне дают контейнеры STL'я, кроме гемороя с его кривой (сорри, специфической) архитектурой? Ответ — стандартность, причем мнимую. Только стандартность, но ни как не стабильность, переносимость, производительность. А если еще и BOOST будет двать стандартность ...


А, то есть вот в чем ключ — просто не рубишь архитектуру либы? Тогда понятно откуда вопросы

AC>У нас в команде есть подобные классы, оттестированные на классе решаемых ими задач. Совершенно детерминированные на тех платформах с которыми мы работаем. Но почему-то когда я пользую их, кулл программеры, разбрасывают пальцы веером и говорят — уууу... ламер, БЮСТА не тебя нет! А в приведенном, как пример, топике, человек четко говорит — УВОЛЬНЯТЬ! Вот это промывка мозгов, это я понимаю!!!


раскидывание пальцев это проблема кул программеров. А насчет буста может они и правы — ты бы посмотрел туда может и увидел что то что вытам всей командой тестили и вылизывали уже давно оттестировано и вылизано за вас.

насчет увольнять — я с ним в некотором смысле согласен. Если бы у меня подчиненный имея задачу реализовать скажем интерфейс проги начал рзрабатывать свой мфц и еще при этом аргументировал это действия кривостью архитектуры существующего( что есть то есть ) я бы призадумался о его проф пригодности.
Удачи тебе, браток!
Re[13]: Проф. пригодность, boost, Александреску и Ko
От: Glоbus Украина  
Дата: 06.10.04 09:34
Оценка:
Здравствуйте, Alexey Chen, Вы писали:


AC>Интересно. Откуда ты взял, что собственны код команды не доступен внутри команды, при этом обязательно не оттестирован и криво написан?


Команда поехала на рыбалку и разбилась на автобусе — нужно нанимать новых. Сколько времени уйдет у низ на то чтобы охватить все тонкости вашей внутренней библиотеки?


AC>А не бывает хорошего кода, бывает код решающий задачу за приемлемые деньги и устраивающей стимостью саппорта, все остальное это домыслы.


бывает хороший код — стл например


AC>Да что вы говорите!? Общие библиотеки решают конкретные задачи плохо по определению и пользуются ими по причине низкой стоимости переиспользования. Я же имею множество примеров когда стоимось переиспользования (в том числе саппорта) дороже стоимости разработки.


Глупости какие-то — нет библиотек которые были бы настолько общими насколько вы ту тпреодносите. стл решгает вполне конкретные задачи, буст тоже самое — отделные его части можно вполне спокойно использовать для вполне конкретных задачь забыв про существование остальных частей.


AC>У меня вот есть совершенно конкретный вопрос, если вдруг ты словишь ошибку второго или третьего рода где-то в глубине буста, что будешь делать? Вешаться? Или быстренько раскидаешь буст, поймешь что к чему и пойдешь искать причину? Дык,это как-то не сочитается с 'набрать новых людей'... таких спецов ооооочень мало.


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


AC>А в тех что используют STL, BOOST, и т.д. такого нет? Что-то вы путаете уважаемый.


Каанечно нет. Зачем разбираться в стл если ты его и так знаешь


AC>Вопрос о преемуществах очень сложен Каковы ваши критерии? Для меня основной — простота, в смысле что написано то и делает, и что надо делать то и написано, а не вообще решение которое иногда делает то, что нужно.


кретерии: доступность информации, распространность, наличие поддержка
и поясни относительно выделенного что имелось в виду напримере стл, а то че-то какая-то демагогия.


AC> Обажаю теоретиков, а если она у меня уже написана, но написана мной а не мега-кулл-программером из групы буста? Ну нафиг велосипед, я лучше скачаю фиг знает что и буду дого вникать что же оно делает... я правильно понимаю подход?


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



J>>чем не устраивают бустовские xxx_ptr, bind, checked_delete, xxx_traits и прочая?

AC>Тем, что они мне НЕ НУЖНЫ. Тем, что в том виде в котором мне нужна ПОДОБНАЯ ФУНКЦИОНАЛЬНОСТЬ они монструозны, трудно понимаемы и несопровождаемы. Однако мнение о том, что это де-фато стандарт, предпологает, что их ДОЛЖЕН знать и пользовать КАЖДЫЙ. Бред какой-то.

То что ты их не можешь опнять не делает их плохими Ваще надо призадуматься над квалификацией селовека, которые не может понять буст, считая его монструозным. Да, сырые решения есть, но их никто не собирается вводить в стандарт.
насчет выделенного — нигде я че-то такого утверждения не видел.
У тебя ваще очень хорошия стиль — выдвигаем неверное утверждение от лица оппонента и с блеском опровергаем его.

AC>Обясню. У тебя есть функция которая, например, работает со строками, но в конкретном случае тебе для оптимизации узкого места, пришлось сменить аллокатор, и что же мы видим? А видим мы, что готовую функцию мы уже испоьзовать не можем. Вот мне и интересно зачем утильной функции зависить еще и от распределителя памяти окромя интерфейса обьекта. Это совсем простой пример


Так может проблема в том аллокаторе который ты подсунул, то ест ькак ты сказал в людях?


AC>А если проект состоит из модулей которые завият только по интерфейсам и пишутся разными командами, только одна использует MS STL, а другая STL port? И находятся вообще в разных городах и конторах? А вроде стандартная либа


ну так пересобирели только исправленный модуль — в чем проблемато?


AC>Ну если для вас это сказки, а не инструмент, тогда звиняте...

AC>Кстати, что вы подразумевали под 'всю'? У конкретного утильного класса должна быть очень узкая функциональность, опять же по определению, хотя смотря на буст, мне кажется, что народ считает это плохой практикой.

пальцем ткнуть в буст где размазана функциональность
Удачи тебе, браток!
Re[3]: Проф. пригодность, boost, Александреску и Ko
От: LCR Россия lj://_lcr_
Дата: 06.10.04 10:37
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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


M>>Про "светлое будущее всех C++ программеров". Часто ли глядя на С++ код других людей (саппорт, рефакторинг и т.п.) ты можешь сказать что это писал профессионал, понимающий язык и его возможности? Я — не часто. БУСТ — пример того, как в трех строчках кода записать свою мысль наиболее выразительно, используя всю мощь языка. Не в "стиле С", как тебе уже отвечали, а "в стиле С++".

LVV>Я сам С++ люблю именно за всякие фичи, которые открываешь. И так можно, и этак, и еще вот эдак, блин!!!!!
LVV>Но вспоминаю высказывние одного гуру про язык APL: программу из 4 строчек он рашифровывал около 4 часов. Скоро С++ станет в этом смысле похож на APL.

Хочу посмотреть, можно?
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[14]: Проф. пригодность, boost, Александреску и Ko
От: Vogul  
Дата: 06.10.04 10:59
Оценка:
Здравствуйте!

Если я правильно понял, то обсуждение идет о том, можно ли считать того, кто не использует библиотеки STL, boost и т.п., профессиональным программистом. Или скажем мягче. Что правильней? Использовать библиотеки или писать свои реализации необходимой функциональности. Тогда лучше сначала определиться, в какой области программирования лучше использовать сторонний код, а в какой писать код самому. А то получится, что с одной стороны сидит писатель драйверов, а с другой пользовательского интерфейса и спорят, что лучше C или C#.
Re[15]: Проф. пригодность, boost, Александреску и Ko
От: Alexey Chen Чили  
Дата: 06.10.04 11:37
Оценка:
Здравствуйте, Vogul, Вы писали:

V>Если я правильно понял, то обсуждение идет о том, можно ли считать того, кто не использует библиотеки STL, boost и т.п., профессиональным программистом. Или скажем мягче. Что правильней? Использовать библиотеки или писать свои реализации необходимой функциональности.


В частности это. Или лучше сказать — в основном это, плюс причины почему это так.

V>Тогда лучше сначала определиться, в какой области программирования лучше использовать сторонний код, а в какой писать код самому. А то получится, что с одной стороны сидит писатель драйверов, а с другой пользовательского интерфейса и спорят, что лучше C или C#.


Не знаю, может быть. Но я, например, пишу и драйвера, и крупный серверный софт, и мелкую шаровару, и везде использую, как STL (это ведь не только контейнеры), так и свои классы. Бывает прада на C пишу, но это уже другая история. Вот меня и удивляет жёсткая позиция некоторых товарищей, с аргументацией построенной на предположениях и мифах. Причем с уклоном: чем сложнее и мощнее решение — тем лучше!
Re[14]: Проф. пригодность, boost, Александреску и Ko
От: Alexey Chen Чили  
Дата: 06.10.04 12:02
Оценка: 1 (1) +1
Здравствуйте, Glоbus, Вы писали:

G>То что ты их не можешь опнять не делает их плохими Ваще надо призадуматься над квалификацией селовека, которые не может понять буст, считая его монструозным. Да, сырые решения есть, но их никто не собирается вводить в стандарт.

Ну вот мы и вернулись к теме топика. А что если он способен понять буст и считает его монструозным? Получается — 'надо призадуматься над квалификацией'?

G>У тебя ваще очень хорошия стиль — выдвигаем неверное утверждение от лица оппонента и с блеском опровергаем его.

Дык мне его навязывают. Извиняюсь, конечно, не в данном треде, здесь приемущественно к STL'ю привязать пытаются.

AC>>Обясню. У тебя есть функция которая, например, работает со строками, но в конкретном случае тебе для оптимизации узкого места, пришлось сменить аллокатор, и что же мы видим? А видим мы, что готовую функцию мы уже испоьзовать не можем. Вот мне и интересно зачем утильной функции зависить еще и от распределителя памяти окромя интерфейса обьекта. Это совсем простой пример

G>Так может проблема в том аллокаторе который ты подсунул, то ест ькак ты сказал в людях?

Что-то у меня последнее время создается впечатление, что знатоки STL'я, которые упрекают меня в том, что я его не знаю, совсем не понимают его проблем. Видимо сказывается стереотип мышления вбитый в мозги поп-изданиями и крутыми авторами. Ладно дальше пытаться не буду.. те кто могут думать не только так, как завещал великий отец, думаю, уже поняли о чем я говорил.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.