Ask HN: Продолжаете ли вы получать удовольствие от программирования на C++?

Ask HN: Do you still enjoy coding in C++?

В последние годы C++ подвергается критике из-за сложности и разрастания функционала. Однако с C++11 мне очень нравится писать на C++: строгая система типов (включая const), range-based for, умные указатели и мощные шаблоны. С другой стороны, я знаю, что бывает очень сложно написать корректный итератор, правильно обработать rvalue-ссылки или разобраться в сообщениях об ошибках, связанных с шаблонами. Так что, вам нравится или не нравится писать исходный код на C++ и почему?

Я до сих пор получаю удовольствие от C++, но только когда пишу на современном C++ (C++17/20) и использую такие инструменты, как clang-tidy и sanitizers. Без них отладка шаблонных ошибок превращается в кошмар.
Честно говоря, я устал от C++. Перешёл на Rust для новых проектов и не оглядываюсь назад. borrow checker решает многие проблемы, которые в C++ приходится решать вручную.
Мне нравится C++ за его производительность и контроль над памятью, но я избегаю сложных шаблонных метапрограмм. Стараюсь писать простой, понятный код, и тогда язык не кажется таким уж страшным.
Я работаю с C++ более 15 лет и всё ещё люблю его. Да, есть сложности, но именно они делают язык мощным. Главное — придерживаться лучших практик и не использовать всё подряд.
Для меня C++ — это инструмент, а не источник удовольствия. Я выбираю его, когда нужна максимальная производительность, но для большинства задач предпочту Python или Go.
  1. simonask

    Ох уж этот C++.

    C++ ощущается как старая любовь, о которой я вспоминаю с теплотой. Мы были вместе много лет, примерно до C++20, и в горе, и в радости. Это было захватывающе — бешено быстро, возможно, даже безрассудно, но чёрт возьми, это была дикая поездка. Он научил меня многому и сформировал меня как программиста, которым я являюсь сегодня. Но мы разошлись, когда его недостатки стали слишком велики, чтобы их терпеть, а его поведение — слишком часто неопределённое — больше не поддавалось оправданию.

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

    Я всё ещё болею за C++, хотя очень доволен своим новым основным языком — Rust. Надеюсь, он изменится к лучшему, потому что я действительно желаю ему только самого лучшего, но прямо сейчас я этого не вижу. Он продолжает повторять старые ошибки (например, всё новые и новые возможности для выстрела в ногу через UB с каждой новой фичей), не устраняя ни одного из крупных недостатков (недостаточно инструментов для создания надёжного программного обеспечения).

    Иногда я всё ещё пишу на C++, но уже не испытываю того восторга, что раньше. Когда я пишу на C++, то только потому, что вынужден. А когда есть выбор, Rust просто оказывается лучшим выбором почти для всего, что я делаю. Сейчас я не вижу будущего для C++ и меня.

  2. chris_j

    Я разрываюсь насчёт C++. Я люблю C++, но есть вещи, которые мне в нём очень не нравятся. Это фантастический язык во многих отношениях, но он тащит на себе более 40 лет багажа — вещей, которые ты бы не стал делать так, если бы изобретал язык программирования сегодня.

    Я не писал на C++ профессионально уже много лет, и мои воспоминания об использовании его в работе (до C++11) не самые счастливые: приходилось договариваться о строгом подмножестве языка, которое нам разрешалось использовать, избегая функций, которые плохо поддерживались каким-либо компилятором или не нравились моим коллегам. К сожалению, тогда в список запрещённых функций входили шаблоны и пространства имён.

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

  3. adev_

    Одним словом: мощь.

    C++ — безусловно самый мощный язык из существующих. И это как лучшее, так и (часто) худшее в нём.

    С точки зрения обобщённого программирования, контроля над железом, способности к абстракции и, в более широком смысле, выразительности: ничто, даже сегодня, и близко не подходит к C++.

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

    Но если научиться их избегать (через опыт и боль), можно достичь в C++ уровня продуктивности и производительности, который очень трудно превзойти чем-либо ещё, включая Rust.

    По иронии судьбы, я нахожу это особенно верным в эпоху ИИ.

    Потому что объём кода на C++ настолько огромен, что агенты сейчас довольно хорошо с ним справляются, если их правильно направлять.

  4. mort96

    Мне нравится писать код на C++.

    Я признаю, что C++ во многом плохой язык, но это плохой язык, который я знаю очень хорошо, и он соответствует тому, как я думаю о коде. И он позволяет мне без усилий делать «умные» вещи с управлением памятью, чтобы избежать ненужных аллокаций и т.п. Я уже выучил большинство его особенностей, разобрался с rvalue-ссылками и семантикой перемещения, с тем, как реализовывать контракты вроде итераторов и контейнеров, и т.д.

    Мне также нравится писать на Rust, и мне нравится, как Rust следит за тем, чтобы я не совершал ошибок. Я считаю, что Rust во многом лучший язык и что за ним будущее низкоуровневого программирования (и мне кажется диким, что потребовалось столько десятилетий, чтобы появился достойный конкурент C++!). Но мне также нравится, что C++ не заботится ни о чём и позволяет мне делать всё, что я захочу, не acting as a nanny. Я бы никогда не осмелился написать публично доступный веб-сервер на C++, но игру? Конечно!

Ещё за этот день

2026-11-09