С++, Опрос для тех, кто использует

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Используете ли stl, и насколько широко?

К примеру, итераторы? Алгоритмы? Аллокаторы?

Используете ли boost?

Какие именно библиотеки и для чего?

Метапрограммирование — Александреску либо boost.mpl и прочее?

Ограничиваетесь только библиотеками одного разработчика (MFC/ATL/WTL, Qt и так далее)?

Я что-то забыл? Пишите тоже!

Мне очень интересно узнать ваше мнение.

Маленькая просьба: если вы считаете, что C++ полный отстой, а C#, Java, Ruby, 1С, Python, SmallTalk etc rules forever — не пишите.

Интересно узнать мнение тех людей, которые умеют писать на C++ и делают это. Еще интересно — настколько новые «вкусности», появившиеся примерно десять лет назад, прижились.

Часто приходится видеть С++ код, написанный в том же стиле, который был в моде во времена моего обучения в школе. А С++ с тех пор успел сильно измениться.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

C++ полный отстой, а C#, Java, Ruby, Python, SmallTalk etc rules

is a true ...

1 — Используете ли stl, и насколько широко?
Да, используем, для межкомпонентного взаимодейсвия только string и
контейнеры, внутри компонентов, при необходимости могут разлаживаться в
базовые типы языка, (например string.c_str() вызываться ,Что бы к const char*
получить доступ)
2 — К примеру, итераторы? Алгоритмы? Аллокаторы?
Итнраторы используем, аллокаторы, по возможности стандартные, пока не
приходилось свои писать.
3 — Используете ли boost?
Глобально нет, не используем, но некоторыем разработчикам , внутри своих
компонентов , не запрещается.
4 — Какие именно библиотеки и для чего?
Глобально — POCO используются для построения каркассов приложения и
реализации некоторых паттернов,
ice, thrift, curl — сетевые взаимодействия.
boost — локально, при необходимости
5 — Метапрограммирование — Александреску либо boost.mpl и прочее?
Этого, пока нету.
6 — Ограничиваетесь только библиотеками одного разработчика (MFC/ATL/WTL, Qt и так далее)?
Нет, используем разные либы, от разных разработчиков, в зависимости от

задач.

О своих проектах и личных взглядах:
стл"овские контейнеры не использую — они слишком медленные. Пишу свои велосипеды.
Алгоритмы по мелочи использую
Буст не использую — не читаемый говнокод внутри с кучей костылей под всякие ненужные компиляторы. Пишу свои велосипеды.
Метапрограммирование, по моему, это сплошной не читаемый говнокод. Если надо повыделоваться или решить какую-то специфическую задачу — то ок. Использую в парочке мест, глубоко в лоу левел системах.
Вообще считаю, что надо писать код максимально С подобный, потому и не

Используете ли stl, и насколько широко?
К примеру, итераторы? Алгоритмы? Аллокаторы?
да да да
Используете ли boost?
Какие именно библиотеки и для чего?
да
бинд
конфиг
файл систем
формат
ио стримы
мульти индекс
програм опции
тесты
треды
касты
указатели
асинхронный ввод вывод
по назначению
Метапрограммирование — Александреску либо boost.mpl и прочее?
редко суппортить потом некому
Ограничиваетесь только библиотеками одного разработчика (MFC/ATL/WTL, Qt и так далее)?
нет, а зачем себя ограничивать
Я что-то забыл? Пишите тоже!
возможно
Мне очень интересно узнать ваше мнение.
Маленькая просьба: если вы считаете, что C++ полный отстой, а C#, Java, Ruby, 1С, Python, SmallTalk etc rules forever — не пишите.
Интересно узнать мнение тех людей, которые умеют писать на C++ и делают это. Еще интересно — настколько новые «вкусности», появившиеся примерно десять лет назад, прижились.
не уверен что такое «вкусности»
stl часть языка
boost экономит кучу времени
специализированные либы, а куда без них
Часто приходится видеть С++ код, написанный в том же стиле, который был в моде во времена моего обучения в школе. А С++ с тех пор успел сильно измениться.
это про сишный код скомпиленый плюсовым компилером?

качество кода это не только пропорционально твоей зарплате, но и зарплате коллег которые работают с тобой над проектом

> Используете ли stl, и насколько широко?
Постоянно и во всю ширь свою.
> К примеру, итераторы? Алгоритмы? Аллокаторы?
Куда же без них?
> Используете ли boost?
Его использую все более-менее разумные люди, использующие Си++.
> Какие именно библиотеки и для чего?
Долго писать, простите. Практически все для различных целей.
> Метапрограммирование — Александреску либо boost.mpl и прочее?
Boost.MPL и прочее. Александреску — это человек, его использовать нельзя.
> Ограничиваетесь только библиотеками одного разработчика (MFC/ATL/WTL, Qt и так далее)?
Нет.
> Я что-то забыл? Пишите тоже!
Всего что забыли и не перечислить. Больше забыли, чем написали.
> Маленькая просьба: если вы считаете, что C++ полный отстой, а C#, Java, Ruby, 1С, Python, SmallTalk etc rules forever — не пишите.
И да, и нет. Каждой задаче — свое решение. Но Си++ — явно не отстой.
> Интересно узнать мнение тех людей, которые умеют писать на C++ и делают это. Еще интересно — настколько новые «вкусности», появившиеся примерно десять лет назад, прижились.
См. выше.
> Часто приходится видеть С++ код, написанный в том же стиле, который был в моде во времена моего обучения в школе. А С++ с тех пор успел сильно измениться.

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

А можно озвучить эти самые «преимущества»?

Для меня самым главным является RAII.

Как вывод — возможность автоматически освобождать _любые_ ресурсы, а не только память, как в языках с GC.

STL — контейнеры, алгоритмы, функторы.
Boost — умные указатели, boost.bind, boost.regex.
Шаблоны использую повсеместно.

Работаю в компании, занимающейся разработкой компиляторов и систем моделирования под HDL.

2 eugene_n
адептами Александреску кажете...
“навскидку” назви статтей з erdani.org/...tions/main.html
Policy-Based Memory Allocation
Simplify Your Exception-Safe Code — Forever

Smart Pointers Reloaded (II): Exception Safety Analysis

Кто может помочь написать две программы на С++

напиши условия задачи

Ассоциативные контейнеры использую, итераторы.

о boost даже не слышал:) не читал по книге.Но вскором времени придется учить.

Классический ОО C++, паттерны
STL — практически все контейнеры с итераторами, реже поиск, реже алгоритмы
Хороший совет научиться красивому C++ — поработать какое время на Java или подобном и вернуться,
привыкнув к объектному стилю, но особо чувствуя преимущества C++.

Шаблоны — иногда. Противник «C с объектами», скептически отношусь к «темплейтизации всея кода»

Ну я не знаю, как на счет —

«темплейтизации всея кода»

но в больших приложениях без шаблонов классов никуда не денешься.
...Блин, ну не нужно приравнивать С++ к Жабе, ну можно наконец понять, что С++ это компилируемый язык, а Жава нет.

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

eugene_n

не, я с целью исчерпать тему в самом ее зародыше)

matt
На работе мало платят? Или сократили?

Коллеги! Уважайте себя! Сегодня вы ему сделаете лабу за 20 баксов, а через год оно явится к вам на работу и будет требовать 2К, потому что хочет машину через пол-года и ездить на море в Копенгаген. Потому что окончило престижный факультет и вообще привыкло к такому образу жизни.

Привет! Кто может помочь написать две программы на С++ потоки, и синхронизация потоков?

Раз уж это тема плюсов (и новую создавать лень), тогда офтоп:
На брейнбенче открыли в свободный доступ тест по С++. Успейте пройти, пока его не закрыли снова:)
ИМХО, тест с виду помолодел, хотя мелкие анахронизмы до сих пор режут глаза.
Обнаружил для себя одну вещь. Нынешний результат оказался хуже результата годичной давности. Несмотря на то, что весь последний год активно пишу на плюсах и тогда (как мне сейчас кажется) был чугунным чайником.
Объяснение простое: в памяти была еще свежей недавно прочитанная книга Шилдта.

Поэтому доверяйне тестам, но...:)

В STL’е мне нравится сама концепция, код написанный с ипользованием известных алгоритмов, гораздо более понятный, удобный и надежный. Активно использую практически весь набор, за исключением аллокаторов — не попадалась подходящая задача. Использую boost: graph и boost: spirit. У Александреску взял список типов. Предпочитаю шаблоны всякого рода типопреобразованиям времени выполнения. Паттерны — по стольку, по скольку. Тяготею к wxWidgets, но при отсутствии необходимости избегаю тяжелых фреймворков, в пользу маленьких библиотек, хорошо выполняющих свою функцию.

Stl — строки, контейнеры, потоки, агоритмы, итераторы, аллокаторы... в общем — широко и повсеместно: -)
Boost — умные указатели, сигналы, потоки с фильтрами, сериализацию, програмные опции, строковые алгоритмы, функции (boost: bind, boost: function), многопоточность (boost: thread, boost: thread_pool), сеть (boost: asio)... всего и не вспомню: -)

Обьектно-ориентированный код. Широко — шаблоны и патерны. ГУИ — DirectX, WinAPI.

STL — контейнеры, auto_ptrы, строки, алгоритмы да предикаты — повсеместно. Переписываем потихоньку иностранный код в стиле «С с классами» на нормальный язык.
Естественно, используются потоки, но к STL это не имеет отношения.:)
Boost — используем вырезанные куски, как-то scoped_array и проч. вкусности. boost.regex не используем, юзаем pcre:) Boost.Python весьма широко используется, но это уже ближе к Питону, чем к С++.
Обобщенное программирование — mpl не используем, но где можно обобщить — обобщаем. В сущности, ничего необычного не придумываем, думаю, то, что у нас есть обобщенного присутствует в десятках других проектов.

That’s all:)

stl — контейнеры и алгоритмы
boost — только кусочки (рег выражения, лямдба функции, variant type)

библиотеки (MFC\ATL, Views) и пару собственных для reusability

1) Embedded — чистый С + API [rt] os (когда она есть). Одно время пробовал С++ для foreground/background систем — ничего хорошего из этого (кроме поедания памяти) не вышло.
2) Software — stl повсеместно. С boost не сложилось, все нету времени разобраться: (

В основном — обектно-ориентированый подход, с обобщенным в чистом виде не сталкивался. UI — wxWidgets, либо WinAPI/MFC (когда требует задача и не нужна переносимость).

Хорошее продолжение соседнего топика:)
Пишу для эмбедед систем в стиле «С с классами». Немножко STL (с осторожностью), немножко шаблонов. Применения boost не вижу. В постоянной войне с адептами Александреску, которые память считать не учены и эксепшена не видят пока носом не ткнешь.

Вроде все:)

Підписатись на коментарі