Стоит ли учить C++

Аватарка пользователя Дух айтишной эмо школы

Блогер из США Stefan Mischook рассказал, стоит ли учить С++ в 2024 году, насколько он сложный и какие есть альтернативы.

Блогер из США Stefan Mischook рассказал, стоит ли учить С++ в 2024 году, насколько он сложный и какие есть альтернативы.

Вот, о чём Стефан говорит в своём видео:

  1. Стоит ли учить C++ в 2024 году? Да, это по-прежнему актуальный язык программирования.
  2. C++ не должен быть первым языком программирования для изучения из-за его сложности.
  3. Лучше начать с более простых языков, таких как Python или JavaScript, прежде чем переходить к C++.
  4. C++ мощный, но эта мощь сопровождается большой сложностью.
  5. Изучение C++ может быть полезным для работы с проектами, требующими высокой производительности, такими как игровые движки или программное обеспечение для устройств с ограниченными ресурсами.
  6. C++ обеспечивает меньше уровней абстракции между языком и процессором, что делает его более эффективным во время выполнения.
  7. Современные процессоры настолько мощные, что разница в скорости выполнения между C++ и языками более высокого уровня становится менее заметной.
  8. Написание кода на C++ может быть более трудоемким и подверженным ошибкам по сравнению с другими языками.
  9. Существуют новые языки, такие как Rust и Go, которые могут конкурировать с C++ в некоторых аспектах производительности.

Ниже — транскрибированный перевод ролика на русский язык.

Когда стоит учить С++

Итак, стоит ли учить C++ в 2024 году? Является ли он все еще жизнеспособным языком программирования?

Короткий ответ – да. Следует ли он быть первым языком программирования, который вы изучаете? Потому что, если вы изучите C++, как скажут вам некоторые зануды, то это сделает изучение других языков проще. Короткий ответ – да, если вы изучите C++ первым, это сделает изучение других языков проще, но, к сожалению, вы получите сердечный приступ и аневризму мозга, пытаясь изучить C++ в первый раз. Если это ваш первый язык, не очень хорошая идея.

Почему? Потому что в C++ много сложностей. Он очень мощный, но с этой мощью приходит много сложностей. Так что вам намного лучше изучить более простой язык, такой как Python или JavaScript, например, а затем, когда вы изучите эти два языка, которые намного более доступны, если ваше сердце настроено на изучение C++ из-за рыночных условий или, скорее, потому что C++ позволяет вам выполнять определенный тип программирования, о котором мы поговорим через секунду.

Если ваше сердце настроено на C++, в конечном итоге первым языком, который вы должны изучить, должен быть более понятный язык. Вы должны думать об этом так: если вы хотите стать профессиональным бойцом, C++ похож на Майка Тайсона или Брюса Ли. Хотите ли вы выйти на ринг в качестве вашего первого оппонента, чтобы сразиться с Майком Тайсоном или Брюсом Ли? Нет, вы будете уничтожены.

Вы хотите выйти на ринг с кремовым пирогом, как я или кем-то еще, кем-то, кто далеко не так способен, как эти два парня.

Сложности С++

В любом случае, вернемся к C++. Это хороший язык. У него есть свои проблемы, как и у любого другого языка, но у него также есть свои применения, но, конечно, я бы никогда, как человек, который создает курсы и учебные планы для школ уже более десяти лет и кто наставлял людей намного дольше, никогда бы не… использовал бы C++ в качестве первого языка для обучения кого-то.

Тот, кто вам говорит обратное, отключите его, отпишитесь, они ничего не знают о преподавании кода или разработке программного обеспечения, это точно. Опять же, это не нападки на C++, это просто реальность того, что C++ чрезвычайно сложен.

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

Плюсы С++

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

Что это означает? Это означает, что C++ намного эффективнее во время выполнения. Так что вы используете C++, если вам нужен высокопроизводительный код. Вам нужен быстрый код во время выполнения.

Время выполнения, верно? Время выполнения. Так что, когда у вас очень быстрый код во время выполнения с C++, вы можете обрабатывать много информации очень быстро. Это также замечательно, когда, наоборот, у вас очень слабый ЦП, не слишком много ОЗУ, и вам нужен высокоэффективный язык, чтобы компенсировать тот факт, что у вас нет много аппаратных ресурсов для обработки. Опять же, это еще одна область, где C++ также пригоден. Так что вы видите, что C++ используется для написания программного обеспечения для запуска вашего холодильника или чего-то в этом роде, верно?

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

Однако это становится все менее и менее фактором для C++, вообще, потому что, во-первых, процессоры становятся намного мощнее. Высокоуровневые языки, такие как JavaScript, Java, C#, Python, даже если они намного менее эффективны во время выполнения, чем C++, процессоры настолько мощные в наши дни, что вы не увидите разницы в скорости.

Например, вы можете написать кусок кода, который будет обрабатывать что-то за, скажем, сто долей секунды. Очень быстро в C++, но вы можете написать код на Python, который будет обрабатывать ту же информацию, вместо ста долей секунды, за может быть одну десятую секунды, значительно медленнее. Но эта разница в скорости не настолько значительна, чтобы вы хотели перейти на C++, что приводит меня к недостаткам C++.

Недостатки С++

Каковы недостатки C++? Недостаток C++ заключается в том, что написание C++ – это настоящая боль в заднице. Когда вы пишете на C++, вам приходится писать гораздо больше кода.

Вам приходится обрабатывать гораздо больше вещей. Поэтому вероятность ошибок гораздо выше. И просто занимает гораздо больше времени. Я говорил о скорости выполнения, о скорости выполнения вашего кода.

У меня есть еще одно понятие, которое я ввел много лет назад. Скорость написания. Насколько быстро вы можете написать программное обеспечение на выбранном вами языке? Таким образом, компромиссом за крайне быструю скорость выполнения C++ является очень медленная скорость написания. Вам придется писать долго, чтобы что-то сделать на C++ по сравнению с Python, Java, C Sharp, JavaScript и несколькими другими языками.

Альтернативные языки

Вот почему были созданы эти другие языки. Они создали C Sharp, они создали Java, они создали JavaScript, они создали все эти другие более высокоуровневые языки. Когда я говорю о более высоком уровне, я имею в виду, что он дальше от процессора. Есть больше уровней кода между JavaScript и процессором, чем между C++ и процессором. Процессор здесь, затем у вас есть ассемблер, затем у вас есть C и C++. Выше у вас есть Java и C Sharp, и примерно на том же уровне у вас есть JavaScript и Python, PHP и Ruby и Perl и так далее. Поскольку у вас есть все эти уровни между, например, Python и процессором, код просто работает намного медленнее. Но компромиссом за этот медленный код является то, что вам придется написать гораздо меньше кода на Python, JavaScript и C Sharp, и Java по сравнению с C++, чтобы что-то сделать. И есть гораздо меньше потенциала для возникновения фатальных ошибок, потому что сами языки позаботятся о многих деталях, которые вам придется делать вручную на C++.

Итак, вот вам. Чтобы завершить все это, да, C++ по-прежнему актуален сегодня, но поймите, какую работу вы будете делать с C++, о которой мы говорили, и поймите, что когда вы пишете код на C++, это совсем другая игра, чем если бы вы писали код на Python или JavaScript. Один не обязательно лучше или хуже другого, это просто по-разному.

Поэтому вам нужно решить, куда вы собираетесь идти. Сказав все это, сейчас есть новые конкуренты C++. Ну, во-первых, все более высокоуровневые языки являются конкурентами. Как я уже сказал, JavaScript, Python, PHP и так далее. Они конкуренты, потому что снова процессоры сегодня настолько мощные, оперативная память сегодня настолько мощная и быстрая, что преимущество скорости с C++ часто не проявляется в реальном мире. Но в терминах высокопроизводительного кода у вас есть новые языки, такие как Rust, такие как Go, которые очень специализированы и могут конкурировать в некоторых случаях с C++ по скорости.

C++
Для начинающих
Языки программирования
1839