Очень интересно мнение форумчан, насколько широко люди, программирующие на С++, используют boost & STL? Речь идет о самом широком срезе -- студенты, программисты, хобби-девелоперы...
Иными словами, насколько актуально, например, обучать этому людей? Или уже все, кто пишет на плюсах, эти штуки знают?
Особенно интересует STL, т.к. буст, по моему (практически твёрдому убеждению) точно используют недостаточно широко. Спасибо!
Здравствуйте, rg_software, Вы писали:
_>Очень интересно мнение форумчан, насколько широко люди, программирующие на С++, используют boost & STL? Речь идет о самом широком срезе -- студенты, программисты, хобби-девелоперы...
Программирую на C++ с 1992-93 гг. STL начал использовать где-то в 96-м или 97-м. С тех пор использую его постоянно, если платформа/компилятор обеспечивают его поддержку.
Boost не использую. Но не столько из-за сложности/качества Boost-а, а из-за некоторых организационных факторов.
_>Иными словами, насколько актуально, например, обучать этому людей? Или уже все, кто пишет на плюсах, эти штуки знают?
По моему мнению, обучать этому нужно, поскольку STL -- это часть языка.
Обучать ли Boost-у? Если собираетесь использовать его в своих проектах, то однозначно -- да.
В остальных случаях достаточно хотя бы поверхностно ознакомиться с тем, что в Boost есть. Для того, чтобы не изобретать заново то, что в Boost уже сделано.
Если есть цель освоить C++ в совершенстве (т.е. до мельчайших деталей стандарта языка), то может иметь смысл разобраться с тем, как некоторые Boost-овские библиотеки устроены.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, rg_software, Вы писали:
_>Иными словами, насколько актуально, например, обучать этому людей? Или уже все, кто пишет на плюсах, эти штуки знают?
Актуально обучать где? В школе\вузе\фиоме?
_>Особенно интересует STL, т.к. буст, по моему (практически твёрдому убеждению) точно используют недостаточно широко. Спасибо!
Сейчас прибежит Егор и объяснит тебе, что ты не прав. Потом Егору объяснят, что он не прав. И начнется очерередная СВ "СТЛ vs велосипеды"
А>Актуально обучать где? В школе\вузе\фиоме?
Скажем так, "массовая аудитория, интересующаяся современным С++"
А>Сейчас прибежит Егор и объяснит тебе, что ты не прав. Потом Егору объяснят, что он не прав. И начнется очерередная СВ "СТЛ vs велосипеды"
Нет-нет, ни в коем случае, никаких войн. Я спрашиваю лишь о текущем состоянии дел; вопрос о том, насколько хороши библиотеки -- не ставится.
Я понимаю, что те, кто читает RSDN, наверняка эти либы используют (или не используют, но в курсе их существования). Но при этом, сдается мне, широк пласт народа, до сих пор рассматривающий С++ на уровне С, и дальше не лезущий.
Здравствуйте, rg_software, Вы писали:
_>Я понимаю, что те, кто читает RSDN, наверняка эти либы используют (или не используют, но в курсе их существования). Но при этом, сдается мне, широк пласт народа, до сих пор рассматривающий С++ на уровне С, и дальше не лезущий.
тогда уже нужно начинать с "используете ли вы шаблоны, и на сколько активно?"
Re[4]: Популярность boost и STL
От:
Аноним
Дата:
24.10.07 12:45
Оценка:
Здравствуйте, dip_2000, Вы писали:
_>тогда уже нужно начинать с "используете ли вы шаблоны, и на сколько активно?"
Спорно. СТЛ я использую чаще, чем пишу свои шаблоны
Здравствуйте, rg_software, Вы писали:
_>Очень интересно мнение форумчан, насколько широко люди, программирующие на С++, используют boost & STL? Речь идет о самом широком срезе -- студенты, программисты, хобби-девелоперы...
О широких срезах ничего сказать не могу, у нас на работе обе библиотеки активно используют (и я в своих личных разработках тоже).
_>Иными словами, насколько актуально, например, обучать этому людей? Или уже все, кто пишет на плюсах, эти штуки знают? _>Особенно интересует STL, т.к. буст, по моему (практически твёрдому убеждению) точно используют недостаточно широко. Спасибо!
STL — это уже Стандарт, boost — это будущий стандарт.
Так что, очевидно, обучать надо, по крайней мере, тем вещам, которые уже вошли в следующий Стандарт.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, dip_2000, Вы писали:
_>>тогда уже нужно начинать с "используете ли вы шаблоны, и на сколько активно?" А>Спорно. СТЛ я использую чаще, чем пишу свои шаблоны
Согласен. Не будем отвлекаться. Есть большая разница между разработкой собственных шаблонов и использованием std::sort(), например.
Здравствуйте, rg_software, Вы писали:
_>Нет-нет, ни в коем случае, никаких войн. Я спрашиваю лишь о текущем состоянии дел; вопрос о том, насколько хороши библиотеки -- не ставится.
Здравствуйте, rg_software, Вы писали:
_>Очень интересно мнение форумчан, насколько широко люди, программирующие на С++, используют boost & STL? Речь идет о самом широком срезе -- студенты, программисты, хобби-девелоперы...ну за всех говорить не будем, за себя, да еще за часть фирмы может быть...
_>Иными словами, насколько актуально, например, обучать этому людей? Или уже все, кто пишет на плюсах, эти штуки знают?
Знают, о наличии, и некоторых бызовых возможностях, все выше джуниоров, наверное.... но... см ниже...
_>Особенно интересует STL, т.к. буст, по моему (практически твёрдому убеждению) точно используют недостаточно широко. Спасибо!
За себя крайне активно использую STL, Boost coding standards запрещают но и то, часть пришлось включить в проект(например boost::bind). Учим потихоньку самостоятельно, но тяжко без боевого использования
Если говорить о фирме... то тут все как во многих местах — stl используется, но недолюбливается, исключения используются, тк нужно "идти в ногу со временем", но при этом не используется RAII Как это можно совмещать не понятно. Люди при этом уверены, что утечек не будет.
Здравствуйте, rg_software, Вы писали:
_>Очень интересно мнение форумчан, насколько широко люди, программирующие на С++, используют boost & STL? Речь идет о самом широком срезе -- студенты, программисты, хобби-девелоперы...
Лично я использую и то, и другое.
_>Иными словами, насколько актуально, например, обучать этому людей? Или уже все, кто пишет на плюсах, эти штуки знают? _>Особенно интересует STL, т.к. буст, по моему (практически твёрдому убеждению) точно используют недостаточно широко.
Как-то странно поставлен вопрос. Если вы пишете парсер, то Boost.Spirit знать нужно. Если вы не пишете парсер, то Boost.Spirit знать не нужно.
Касательно STL я считаю, что хороший программер на C++ должен понимать основные концепции STL (итераторы, strict weak ordering, и т. п.), для того, чтобы понимать код, написанный другими, и представлять себе, что в STL есть и чего в STL нет, для того, чтобы самому писать код без ненужных велосипедов. На этом форуме кто-то причислял к недостаткам STL то, что она, ввиду своей стандартности и универсальности, содержит непредсказуемые вещи, например, std::next_permutation — не зная, не догадаешься, что такое в STL есть. Так что список алгоритмов следует помнить, тем более, что он невелик
Здравствуйте, rg_software, Вы писали:
_>Очень интересно мнение форумчан, насколько широко люди, программирующие на С++, используют boost & STL? Речь идет о самом широком срезе -- студенты, программисты, хобби-девелоперы...
_>Иными словами, насколько актуально, например, обучать этому людей? Или уже все, кто пишет на плюсах, эти штуки знают?
_>Особенно интересует STL, т.к. буст, по моему (практически твёрдому убеждению) точно используют недостаточно широко. Спасибо!
boost использовался на последних моих 3х местах работы (начиная с 2004 года)... причем на текущем месте он тут уже был до меня и в оч солидных объемах
вобщем я довольно давно не встречал вживую С++ программеров кто бы не знал по кр мере про буст
Здравствуйте, rg_software, Вы писали:
_>Особенно интересует STL, т.к. буст, по моему (практически твёрдому убеждению) точно используют недостаточно широко. Спасибо!
STL я использую, если нет лучших вариантов. Но обычно они есть...
boost стараюсь не использовать, но при использовании STL этого иногда трудно избежать
_>Иными словами, насколько актуально, например, обучать этому людей? Или уже все, кто пишет на плюсах, эти штуки знают?
Обучать наверняка стоит, в том числе и разбирать плюсы и минусы. В том числе нужно предупредить людей, что использование STL вероятно заставит их смотреть в сторону boost, а у него есть свои особенности и сложности.
При этом в любом случае стоит разобрать базовые концепции и STL и кое-чего из boost'а
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, rg_software, Вы писали:
_>>Нет-нет, ни в коем случае, никаких войн. Я спрашиваю лишь о текущем состоянии дел; вопрос о том, насколько хороши библиотеки -- не ставится.
J>Встречный вопрос — а тебе зачем?
Скажем так -- предложили разработать небольшой тренинг (пусть будет 3-5 часов) по С++ для "интересующейся аудитории". Времени немного, то есть это НЕ учебный курс. Предполагается, что аудитория С++ владеет.
С другой стороны, рассказать о какой-либо изолированной интересной находке -- слишком узко, да и не каждая из них всем нужна.
Я решил, что лучше всего показать на примерах использование Boost & STL, чтобы люди увидели, как легко решаются типовые задачи при условии применения правильного инструментария.
Вопрос для меня -- в расстановке акцентов. Скорее буст, скорее стл или повсюду понемногу.
Если стл знают все, то можно сразу перейти к бусту. Если на это рассчитывать не приходится, буду рассказывать и про стл тоже.
Здравствуйте, rg_software, Вы писали:
_>Очень интересно мнение форумчан, насколько широко люди, программирующие на С++, используют boost & STL? Речь идет о самом широком срезе -- студенты, программисты, хобби-девелоперы... _>[skipped] _>Особенно интересует STL, т.к. буст, по моему (практически твёрдому убеждению) точно используют недостаточно широко. Спасибо!
Как уже написал — STL в реальной работе используется повсеместно, Boost — практически не используется, ибо слишком громоздок. Точнее, не используются громоздкие вещи Boost`а — используются вырезки из буста.
По широким срезам сказать могу весьма точно, так как сам по совместительству студент. Какой STL? Используется паттерн "Copy-Paste". За рамки C выходят редкие студенты, за рамки бесшаблонного С++ не выходят даже многие преподаватели.
Заработать денег на обучении STL можно, но смысла в этом я не вижу.
Здравствуйте, rg_software, Вы писали:
_>Скажем так -- предложили разработать небольшой тренинг (пусть будет 3-5 часов) по С++ для "интересующейся аудитории". Времени немного, то есть это НЕ учебный курс. Предполагается, что аудитория С++ владеет. _>С другой стороны, рассказать о какой-либо изолированной интересной находке -- слишком узко, да и не каждая из них всем нужна.
_>Я решил, что лучше всего показать на примерах использование Boost & STL, чтобы люди увидели, как легко решаются типовые задачи при условии применения правильного инструментария.
_>Вопрос для меня -- в расстановке акцентов. Скорее буст, скорее стл или повсюду понемногу. _>Если стл знают все, то можно сразу перейти к бусту. Если на это рассчитывать не приходится, буду рассказывать и про стл тоже.
_>Вот... посоветуйте!
Я бы разработал два тренинга: один по STL и другой по Boost. (Заодно и денег вдвое больше срубишь )
Но!
Вызывают очень большие сомнения "3-5 часов" — имхо, ничего толкового не выйдет, если аудитория уже не в курсе.
За 3-5 часов можно дать только какой-то один аспект, скажем, "контейнеры СТЛ", или "алгоритмы СТЛ", или "что еще есть в СТЛ (байндеры и прочая)".
К нам вот приезжал Саттер, целую неделю по 8 часов читал лекции по своим книгам + немножко Майерса — так те, кто читал, откровенно скучали, а те, кто не читал — в основном были далеки от этой проблематики и мало чего поняли. Т.е. что-то они поняли и протащились, но как это использовать в реальной работе — у них не появилось не малейшего понятия.
Т.е, скажем, если человек понятия не имеет об exception safety — ему все эти разговоры просто мимо, он еще не в теме. Ему только 2-3 часа надо объяснять, что это такое, чтоб понял и проникся.
В результате это было полезно тем, кто прочитал книгу, но давно — просто освежить в памяти.
Если нужно краткое введение в наиболее часто использующиеся библиотеки буста — есть соответствующая книга, не знаю, есть ли она на русском.
Здравствуйте, rg_software, Вы писали:
_>Очень интересно мнение форумчан, насколько широко люди, программирующие на С++, используют boost & STL? Речь идет о самом широком срезе -- студенты, программисты, хобби-девелоперы... _>Иными словами, насколько актуально, например, обучать этому людей? Или уже все, кто пишет на плюсах, эти штуки знают? _>Особенно интересует STL, т.к. буст, по моему (практически твёрдому убеждению) точно используют недостаточно широко. Спасибо!
STL — изучать по-любому, так как это входит в стандарт... Буст — ознакомление и общий обзор — весьма полезно... Если использование в проектах — тогда изучать детально...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
> Скажем так -- предложили разработать небольшой тренинг (пусть будет 3-5 часов) по С++ для "интересующейся аудитории". Времени немного, то есть это НЕ учебный курс. Предполагается, что аудитория С++ владеет. > С другой стороны, рассказать о какой-либо изолированной интересной находке -- слишком узко, да и не каждая из них всем нужна. > > Я решил, что лучше всего показать на примерах использование Boost & STL, чтобы люди увидели, как легко решаются типовые задачи при условии применения правильного инструментария. > > Вопрос для меня -- в расстановке акцентов. Скорее буст, скорее стл или повсюду понемногу. > Если стл знают все, то можно сразу перейти к бусту. Если на это рассчитывать не приходится, буду рассказывать и про стл тоже.
Мне кажется, нет смысла про STL рассказывать. Если человек, "владеющий C++", не удосужился ознакомится с STL, то скорее всего он и ваш тренинг мимо ушей пропустит. Ну а про буст, IMHO, было бы полезно рассказать очень поверхностно и обзорно — один-два примера из каждой либы, чтобы люди примерно представляли что там есть. Кому надо — почитают потом документацию, кому не надо — тоже скучать будут меньше, чем если вы зароетесь в тонкости какой-нибудь одной библиотеки.
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, Sergey, Вы писали:
>> Скажем так -- предложили разработать небольшой тренинг (пусть будет 3-5 часов) по С++ для "интересующейся аудитории". Времени немного, то есть это НЕ учебный курс. Предполагается, что аудитория С++ владеет.
S>Мне кажется, нет смысла про STL рассказывать. Если человек, "владеющий C++", не удосужился ознакомится с STL, то скорее всего он и ваш тренинг мимо ушей пропустит. Ну а про буст, IMHO, было бы полезно рассказать очень поверхностно и обзорно — один-два примера из каждой либы, чтобы люди примерно представляли что там есть. Кому надо — почитают потом документацию, кому не надо — тоже скучать будут меньше, чем если вы зароетесь в тонкости какой-нибудь одной библиотеки.
Я бы рассказал про итераторы, всё равно большинство людей их до конца, похоже, не осилило. Например, почему std::reverse(str.begin(), str.end()) — неверный ответ на вопрос «как развернуть строку». По этому поводу есть две поучительные
Про Boost, +1, было бы полезно рассказать про каждую библиотеку понемножку, и упомянуть преимущества и недостатки Boost вообще (хорошая лицензия, единообразное проектирование, требовательность к компилятору, танцы с bcp). Про STL, кстати, такой обзор тоже явно не был бы лишним.
RO>Я бы рассказал про итераторы, всё равно большинство людей их до конца, похоже, не осилило. Например, почему std::reverse(str.begin(), str.end()) — неверный ответ на вопрос «как развернуть строку». По этому поводу есть две поучительные
.
Кстати, почему так строку не развернуть? В инете этот вариант часто предлагают.
RO>Про Boost, +1, было бы полезно рассказать про каждую библиотеку понемножку, и упомянуть преимущества и недостатки Boost вообще (хорошая лицензия, единообразное проектирование, требовательность к компилятору, танцы с bcp). Про STL, кстати, такой обзор тоже явно не был бы лишним.
Верно. Я, конечно, буст уважаю, но 74 библиотеки? Разве что несколько выбранных наугад.