Здравствуйте, Alexey Chen, Вы писали:
AC>Здравствуйте, Glоbus, Вы писали:
G>>Так может проблема в том аллокаторе который ты подсунул, то ест ькак ты сказал в людях?
AC>Что-то у меня последнее время создается впечатление, что знатоки STL'я, которые упрекают меня в том, что я его не знаю, совсем не понимают его проблем. Видимо сказывается стереотип мышления вбитый в мозги поп-изданиями и крутыми авторами. Ладно дальше пытаться не буду.. те кто могут думать не только так, как завещал великий отец, думаю, уже поняли о чем я говорил.
Я извиняюсь нижайше за грубость, но: пукнул и в кусты чтоли?
Если честно я так и не понял, чтож ты так плачешь из-за STL (может конечно не такой кулхацкер как ты и мысли читать не умею ) — если есть аргументы, то объясни их по-человечески, а нечего тут пустой флейм разводить.
Диспут должен быть подтверждён фактами, имхо.
Re[16]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Курилка, Вы писали:
G>>>Так может проблема в том аллокаторе который ты подсунул, то ест ькак ты сказал в людях? AC>>Что-то у меня последнее время создается впечатление, что знатоки STL'я, которые упрекают меня в том, что я его не знаю, совсем не понимают его проблем. Видимо сказывается стереотип мышления вбитый в мозги поп-изданиями и крутыми авторами. Ладно дальше пытаться не буду.. те кто могут думать не только так, как завещал великий отец, думаю, уже поняли о чем я говорил.
К>Я извиняюсь нижайше за грубость, но: пукнул и в кусты чтоли?
Да ладно, я так понимаю это обычное явление на этом форуме. Наверное жжёт обьем накопленого опыта и знаний
К>Если честно я так и не понял, чтож ты так плачешь из-за STL (может конечно не такой кулхацкер как ты и мысли читать не умею ) — если есть аргументы, то объясни их по-человечески, а нечего тут пустой флейм разводить. К>Диспут должен быть подтверждён фактами, имхо.
Я не плачу, я хочу понять откуда такая жесткая вера в отцов.
Относитлеьно конкретно этой проблемы.
Допустим у тебя есть контейнер параметризированный по типу элемента. Как и чего он там внутри распределяет, синхранизирует, сравнивает, по идее, функциям, с ним работающим, должно быть монописсуально. Их волнует только интерфейс контейнера и тип элемента.
Теперь берём STL и наблюдаем интересное архитектурное решение при котором функция, работающая с контейнером, еще зависит и от того, как контейнер распределяет память, от того как считает ключи/порядок, ....
Понятно конечно ЗАЧЕМ так сделано, не понятно почему это БЕЗУСЛОВНО ПРАВИЛЬНО.
Я понятно выразился? Для вас такая структура стандартной библиотеки естественна? Для меня вот нет.
Re[9]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Шахтер, Вы писали:
LVV>>Я из NARG помню только одно слово "вычет" (абсолютно забыв при этом, что оно означает — и не надо мне объяснять, все равно тут же забуду, уже сознательно) LVV>>
Ш>А зря.
Каждому свое
Я предпочитаю в С++ копаться — интересно!
А ТФКП — ну не люблю я ето дело!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Vogul, Вы писали:
V>Здравствуйте!
V>Если я правильно понял, то обсуждение идет о том, можно ли считать того, кто не использует библиотеки STL, boost и т.п., профессиональным программистом. Или скажем мягче. Что правильней? Использовать библиотеки или писать свои реализации необходимой функциональности. Тогда лучше сначала определиться, в какой области программирования лучше использовать сторонний код, а в какой писать код самому. А то получится, что с одной стороны сидит писатель драйверов, а с другой пользовательского интерфейса и спорят, что лучше C или C#.
Скажем так — профессиональным програмистом можно считать любого, кто умеет составлять и формализовать алгоритмы. С++ или шарп или кобол — это просто средства формализации. Как говаривал мой препод в инстике "Я могу программировать находясь на расстоянии в 20 км от машины", и я думаю что он тыщу раз прав. Но опять же — тут речь идет о том что нам дают эти библиотеки ваще. Я утверждаю что с точки зрения ращзработчика они дают много, товарищ не согласен — вот мы и сцепились
Удачи тебе, браток!
Re[16]: Проф. пригодность, boost, Александреску и Ko
AC>Не знаю, может быть. Но я, например, пишу и драйвера, и крупный серверный софт, и мелкую шаровару, и везде использую, как STL (это ведь не только контейнеры), так и свои классы. Бывает прада на C пишу, но это уже другая история. Вот меня и удивляет жёсткая позиция некоторых товарищей, с аргументацией построенной на предположениях и мифах. Причем с уклоном: чем сложнее и мощнее решение — тем лучше!
Человек, фразы про то что чем сложнее решеня тем лучше звучат только от тебя. С этого ты собственно и начал эту ветку. Покажи мне пальцем на сообщение, где говорилось бы о том что чем сложнее либа тем она лучше? Где тебе навязываются библиотеки итп? Ты тут воюешь с ветряными мельницами.
Удачи тебе, браток!
Re[15]: Проф. пригодность, boost, Александреску и Ko
AC>Ну вот мы и вернулись к теме топика. А что если он способен понять буст и считает его монструозным? Получается — 'надо призадуматься над квалификацией'?
Ткнуть пальцем в монструозность буста, что непонятно-то? само собой, есть свои особенности ( я вот например далеко не все из него пользую, но кое-что полезное попадается ) ну так не нравится не пользуй их — тебя никто не заставляет
AC>Дык мне его навязывают. Извиняюсь, конечно, не в данном треде, здесь приемущественно к STL'ю привязать пытаются.
Ты его сам навязал в самом первом своем посте. Типа "почему алекснадреску буст и стл (хороший коктейль) считается хорошим стилем и примером для подрадражания если это на самом деле такой отстой" — смысл изначального поста был примерно таким.
AC>Что-то у меня последнее время создается впечатление, что знатоки STL'я, которые упрекают меня в том, что я его не знаю, совсем не понимают его проблем. Видимо сказывается стереотип мышления вбитый в мозги поп-изданиями и крутыми авторами. Ладно дальше пытаться не буду.. те кто могут думать не только так, как завещал великий отец, думаю, уже поняли о чем я говорил.
Да ладно тебе, старичек...стереотип мышления ...проблемы стл. Проблем у стл нету — проблемы у тех кто его пользует. Стол не претендует на всеохватывающую библиотеку
Давай по пунктам
Ты сказал
У тебя есть функция которая, например, работает со строками, но в конкретном случае тебе для оптимизации узкого места, пришлось сменить аллокатор, и что же мы видим? А видим мы, что готовую функцию мы уже испоьзовать не можем
почему это мы ее использовать не можем? давай конкретный пример. Или так просто ляпнул?
Здравствуйте, Patalog, Вы писали:
ГВ>>Нельзя, поскольку это решение заменило log4cpp. Но принципы могу раскрыть поподробнее.
P>Было бы очень интересно. Собираюсь передывать то, что есть сейчас, так что любые идеи пойдут.
Отпиши мне на мыло в профайле.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[7]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Alexey Chen, Вы писали:
AC>Здравствуйте, jazzer, Вы писали:
AC>Удивительно как люди разделяют эпохи — до STL и после STL, другого не дано в принципе. Эта ограниченость мышления тоже ведь последствие безальтернативного наследия популистов
Эк каково загнул..внушаить, товарищ комисар Мы в рабстве у оголтелых буржуазных популяризаторов стл. Кстати, а как тебе разделение до С++ и после С++? Тоже кстати были свои популяризаторы ООП.
AC>И обе в чем-то криво, каждая в своем. Это не предположение, это факт.
не бывает абсолютного идеала. однако стл как грится pretty fucking close
AC>Я вообще-то конкретный пример привел, а ты как обычно скатился в общности.... сувать STL, как и буст во все щели не есть верное решение.
дык кто же тебя заставляет. ясный перец — если тебе чтото не подходит в библиотеке — пиши свое. но я смотрю ты против библиотек ваще. даже против стандартных.
AC>В своем рвении твой подход мало отличается от подхода людей писавших ту лбу, это просто другая крайность.
J>>Еще нужны аргументы? AC>ИМХО, это не аргументы, это эмоции по поводу того как все плохо. Впрочем, мой топик тоже эмоции
эт без базара
Удачи тебе, браток!
Re[7]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Alexey Chen, Вы писали:
AC>Вот в пункте 23.1 говорится, что, вообще говоря, типа должна быть константная. Дальше внимательно смотрим, горячо нами любимый, STLport и видим что она, блин, линейная. Странно да?
читать майерса "Эффективное использование стл" совет 4.
AC>И тоже везде одинако работает? AC>Я про то что C++ — это совсем не стандарт, а набор рекомендаций, и STL не везде и не всегда одинаково работает.
Относительно стринг могу ошибатся, но мне кажется что там вопрос реализации отдан на откуп авторам. и работает может и не одинаково, но компилироваться должен сто пудов на платформах, поддерживающих станларт хотя бы приблизительно.
AC>Это не значит что его не надо использовать, это значит, что не надо повторять на каждом углу миф о его абсолютной портабельности.
а кто кричит кроме тебя?
AC>Нда... в общем замечания верные но не в данном случае. Тут именно тот случай когда мне предлогают юзать, что есть, по тому, что так принято, а здравый
смысл, как обычно, идет лесом
Вопрос — сколько времени убъет команда на создание и вылизывание своего аналога стл с нужными им функциональностями и особенностями?
Здравствуйте, Шахтер, Вы писали:
Ш>Здравствуйте, serg_mo, Вы писали:
_>>Здравствуйте, Mr. None, Вы писали:
MN>>>Внесу свои пять копеек. Забудем о регистрах, тем более, что я и сам стараюсь никогда не опускаться до такого уровня. Программист, использующий .NET или Java, существенно зависит от разработчика соответствующего Framework`а, потому что без него родимого вы практически ничего сделать не сможете. Сложность нестандартной задачи — задачи, не решаемой напрямую или косвенно фраймоворком, возрастает многократно.
_>>Эээ... А что, на С++ не та же фигня? _>>Программист на С++ не зависит от того же STL?
Ш>Если зависит, то это уже не программист, а наркоман.
Здравствуйте, Курилка, Вы писали:
К>Здравствуйте, serg_mo, Вы писали:
К>Спроси себя — могу ли я на плюсах писать без STL? К>Конечно да. К>А могу ли я написать класс джавовский без фреймворка? К>Конечно нет.
Теоретически, конечно, да. А на практике? Что, на С++ мы все пишем с нуля?
Ни фига подобного. Используем и STL, и MFC, и WTL и кучу сторонних библиотек.
Так, простите, в чем же разница?
К>Конечно некоторая аналогия есть в ситуациях, но очень хлипкая, имхо
Здравствуйте, serg_mo, Вы писали:
_>Здравствуйте, Курилка, Вы писали:
К>>Здравствуйте, serg_mo, Вы писали:
К>>Спроси себя — могу ли я на плюсах писать без STL? К>>Конечно да. К>>А могу ли я написать класс джавовский без фреймворка? К>>Конечно нет.
_>Теоретически, конечно, да. А на практике? Что, на С++ мы все пишем с нуля? _>Ни фига подобного. Используем и STL, и MFC, и WTL и кучу сторонних библиотек. _>Так, простите, в чем же разница?
Ну ты теоретически напиши джавовский классс без поддержки всего рантайма жабного!
А я в лёгкую напишу программу для виндов без всяких стл, мфц, втл, тока пыхтеть придётся больше (поэтому я лучше проверенные библиотеки использую, те которые захочу, а на джаве попробуй структуру корневого класса изменить на другую — что у тебя будет?)
Re[8]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Шахтер, Вы писали:
LVV>>>Сам язык играет гораздо меньшую роль, чем его реализация и маркетинг. ГВ>>Так вроде бы C++ — то без особого маркетинга распространился. Вот что интересно...
Ш>Ничего странного. Он пришелся по душе профи, которые в ту пору ещё не были вытеснены ваятелями формочек.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[17]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Alexey Chen, Вы писали:
G>>>>Так может проблема в том аллокаторе который ты подсунул, то ест ькак ты сказал в людях? AC>>>Что-то у меня последнее время создается впечатление, что знатоки STL'я, которые упрекают меня в том, что я его не знаю, совсем не понимают его проблем. Видимо сказывается стереотип мышления вбитый в мозги поп-изданиями и крутыми авторами. Ладно дальше пытаться не буду.. те кто могут думать не только так, как завещал великий отец, думаю, уже поняли о чем я говорил. К>>Я извиняюсь нижайше за грубость, но: пукнул и в кусты чтоли? AC>Да ладно, я так понимаю это обычное явление на этом форуме. Наверное жжёт обьем накопленого опыта и знаний
Ничего, бывает.
К>>Если честно я так и не понял, чтож ты так плачешь из-за STL (может конечно не такой кулхацкер как ты и мысли читать не умею ) — если есть аргументы, то объясни их по-человечески, а нечего тут пустой флейм разводить. К>>Диспут должен быть подтверждён фактами, имхо. AC>Я не плачу, я хочу понять откуда такая жесткая вера в отцов.
Да никто в них не верит особо. Их привыкли противопоставлять очередным "магистралепрокладчикам" индустрии, которые открывают очередную лыжню в будущее.
AC>Относитлеьно конкретно этой проблемы.
AC>Допустим у тебя есть контейнер параметризированный по типу элемента. Как и чего он там внутри распределяет, синхранизирует, сравнивает, по идее, функциям, с ним работающим, должно быть монописсуально. Их волнует только интерфейс контейнера и тип элемента.
AC>Теперь берём STL и наблюдаем интересное архитектурное решение при котором функция, работающая с контейнером, еще зависит и от того, как контейнер распределяет память, от того как считает ключи/порядок, ....
Значит ты не просёк главного: STL — это не фетиш. Видимо, тут проблема в другом — в стереотипе восприятия. Да, я понимаю, когда MS выпускает новую либу и та становится "промышленным стандартом" (подразумевается — средством решения всех проблем), то считается, что писать под эту либу — правильно. Куча менеджеров и "архитекторов" начинает раздувать щёки по поводу очередного прыжка в будущее через зловонную яму сложности и т.п. Можно запустить сертификацию по этой либе, можно вставить её название в резюме и т.п. Короче — фетиш он и есть фетиш.
Но вот проблема — если перенести такой же стереотип на использование STL, то полезут рога и копыта во все стороны. И это правильно. Поскольку STL — просто стандартная библиотека для C++, но отнюдь не "промышленный стандарт", т.е. — не панацея и таковой не прикидывается. Пойми, дружище, нечто "стандартное" — это вовсе не то, что должно решать все проблемы. Это просто нечто такое, о чём удалось договориться. А как правило, удаётся договориться о чём-то таком, что никому сильно не мешает, но кое-что, кое-где всем понемногу упрощает. Ну представь себе MFC в виде стандарта, принятого ISO! Ды кто ж согласится-то на такое кроме самой MS?
С другой стороны, когда покрутишься в этом бардаке фетишизма, то поневоле приходишь к тому, что стоит вместо одного фетиша подсунуть другой, более "правильный". Это не всегда правильно, но иной раз срабатывает. Вот народ и начинает визжать, что "самое правильное — это STL" и т.п. Есть, конечно, и другие причины. Более того, они в каждом конкретном случае — свои. Но есть общая черта — поминать авторитетов к месту и не к месту. Но это уже к доктору.
В тових словах есть рациональные зёрна, но подумай — в каком контексте ты сам крутишься? И не провоцируешь ли чем-то других сам на такую контраргументацию, как ссылки на "отцов"?
AC>Понятно конечно ЗАЧЕМ так сделано, не понятно почему это БЕЗУСЛОВНО ПРАВИЛЬНО.
А никто так и не говорит. "БЕЗУСЛОВНО ПРАВИЛЬНО" — это какой-то психоз, что-ли. Впрочем, это манагёры в основном любят. Ну так хочешь страшный совет? Никогда не принимай мнение менеджера близко к сердцу.
AC>Я понятно выразился? Для вас такая структура стандартной библиотеки естественна? Для меня вот нет.
ИМХО, такая структура для этой библиотеки — вполне себе даже неплоха. Хотя и не идеальна. Вернее — мне не во всём нравится. Я ей пользуюсь только по соотношению цена/качество. Если тебе нужна полная независимость от реализации, то накрой контейнер интерфейсом — хоть с виртуальными функциями, хоть через JNI, хоть через COM. Зато в пределе, используя STL можно получить быстродействующую реализацию контейнера — правда, придётся ещё и аллокаторы перекрыть.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Шахтер, Вы писали:
Ш>>Здравствуйте, jazzer, Вы писали:
J>>>Здравствуйте, Шахтер, Вы писали:
Ш>>>>Здравствуйте, jazzer, Вы писали:
J>>>>>Так что как только я слышу слова: "STL большая и страшная, и что еще хуже — модная, давайте лучше быстренько напишем свой класс списка" — я очень жалею, что я не менеджер и не могу этого человека немедленно уволить.
Ш>>>>Не судьба мне у тебя работать.
J>>>Ну, если ты предпочитаешь писать свои велосипеды — да.
Ш>>Не угадал. Я пишу реактивные самолёты. А велосипеды -- это то, на чем вы ездеете.
J>то, на чем мы в настоящее время ездим (если ты читал внимательно мой пост) — это даже не самокат, скорее, конь на палочке J>хотя народ, его написавший, наверняка уверен, что это как минимум МИГ-25
Сочуствую. Хотя эта ситуация для меня хорошо знакома.
J>Шахтер, если ты действительно пишешь вещи, намного превосходящие STL и boost по всем параметрам — выкладывай их в исходники, или закинь в тот же boost.
Сравнение не корректно. Я не пишу аналоги STL или boost. Я говорил о другом -- о качестве решений, не использующих эти библиотеки.
J>Давайте сделаем настоящие реактивные самолеты стандартом, чтобы никаким жаверам и шарперам даже и в голову не приходило сравнивать свои языки с С++.
Копирайт душит. Между прочим, многие ценные идеи и решения из-за этого не слишком широко известны. А в книжках разных преобладают легковесные примеры, или примеры, имеющие чисто академический интерес.
J>Мы ведь тут для обмена опытом собрались, а не просто друг перед другом пальцы покидать, ведь так?
Вопрос на засыпку. Библиотека iostream -- одна из самых старых стандартных библиотек. Так почему она так плохо написана? Несмотря на большое количество людей, её использующих. Несмотря на то, что она переписывалась три раза.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Alexey Chen, Вы писали:
AC>>Я не плачу, я хочу понять откуда такая жесткая вера в отцов. ГВ>Да никто в них не верит особо. Их привыкли противопоставлять очередным "магистралепрокладчикам" индустрии, которые открывают очередную лыжню в будущее.
ГВ>Значит ты не просёк главного: STL — это не фетиш. Видимо, тут проблема в другом — в стереотипе восприятия. Да, я понимаю, когда MS выпускает новую либу и та становится "промышленным стандартом" (подразумевается — средством решения всех проблем), то считается, что писать под эту либу — правильно. Куча менеджеров и "архитекторов" начинает раздувать щёки по поводу очередного прыжка в будущее через зловонную яму сложности и т.п. Можно запустить сертификацию по этой либе, можно вставить её название в резюме и т.п. Короче — фетиш он и есть фетиш.
Да просек, я все. Просто хотелось закинуть в форум мнение, что BOOST — это фетишь и посмотреть как на него прореагируют потом уже скатились до STL'я. И не просто так такое желание возникло, но после того как меня, хм, как бы это помягче выразиться... назвали проф непригодным, по причине того, что я не пользуюсь BOOST'ом и не делаю копи-паст из широко известной литературы На самом деле так оно и было. Иногда сильно раздражает, когда кто-то, начитавшийся умных книжек, начинает судить об окружающем не своей головой, а цитатами .
Остальное же для большей амлтитуды. А уж сколько адреналина!!! Но, надеюсь, я смог подобрать аргументы близкие к реальным.
А STL, норамльное стандартное средство. Я прикрасно понимаю, что значит стандартное, как и что именно я делаю когда я пишу его конструкции. Но вот часто стал замечать, как некоторые мои колеги/знакомые пользуют его на автомате как прочитали или где-то увидили. С одной стороны это хорошо, пишут однообразный (однотипный/шаблонный) хотя и не всегда понятный код, с другой плохо — они не задумываются что пишут и почему именно так. Как автоматы.
Re[8]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Glоbus, Вы писали:
G>Здравствуйте, Alexey Chen, Вы писали:
AC>>Вот в пункте 23.1 говорится, что, вообще говоря, типа должна быть константная. Дальше внимательно смотрим, горячо нами любимый, STLport и видим что она, блин, линейная. Странно да? G>читать майерса "Эффективное использование стл" совет 4.
Дык там именно количество элементов было нужно Пришлось радом хранить.
AC>>И тоже везде одинако работает? AC>>Я про то что C++ — это совсем не стандарт, а набор рекомендаций, и STL не везде и не всегда одинаково работает.
И? Ты мне показал куда ссылатся на тему, что STL работает поразному, дык я это знаю.
Интересно вот что, чего это у нас стандарт то мозги компостирует? Можен он совсем не стандарт?
Может я его невнимательно смотрел и так где-то есть сносочка, что конкретно list может делать все что хочет.
AC>>Нда... в общем замечания верные но не в данном случае. Тут именно тот случай когда мне предлагают юзать, что есть, по тому, что так принято, а здравый смысл, как обычно, идет лесом G>Вопрос — сколько времени убъет команда на создание и вылизывание своего аналога стл с нужными им функциональностями и особенностями?
Конкретно по этому решению — ноль. И своего универсального класса списка там никто не писал, но и стандартные списки тоже не пользовали. Это конкретное решение конкретной задачи, в которой STL нафиг был не нужен. И заняло это чуть болше десятка строчек кода. Но мы же поступили неправильно, нам нужно было написать сруктурку в которой будет лежать кондишин, распределить ее на хипе, потому как она некопируемая, потом умным указателем зафигчить ее в лист, который тоже будет на хипе, затем по взрослому это дело юзать, на каждом контекст свиче. Я правильно понимаю?