Что выбрать C++ или C#? С чего лучше начать? — Transcript

Обзор выбора между C++ и C#: сравнение, советы по изучению и применению в разных сферах программирования.

Key Takeaways

  • C++ и C# — перспективные языки с разными сильными сторонами и сферами применения.
  • C# лучше подходит для быстрого старта и разработки под Windows, особенно веб и игры на Unity.
  • C++ обеспечивает большую гибкость, кроссплатформенность и подходит для сложных проектов и AAA-игр.
  • Выбор языка зависит от целей, задач и предпочтений разработчика, универсального ответа нет.
  • Важно понимать алгоритмы и уметь применять знания, а не только изучать синтаксис.

Summary

  • C++ и C# имеют схожий функционал, выбор зависит от целей и предпочтений.
  • Рекомендуется использовать плагин PVS-Studio для поиска ошибок в коде на C++ и C#.
  • Начинать изучение лучше сразу с C++ или C#, а не с устаревшего языка C.
  • C# ориентирован на Windows и веб-разработку, особенно с ASP.NET.
  • C++ более кроссплатформенный и позволяет работать на разных уровнях абстракции.
  • Для изучения C# рекомендуются книги по версии 7.0 и работы Рихтера по .NET.
  • Для C++ полезны книги Страуструпа, Майерса и Сакура, а также практика.
  • В игровой индустрии C# используется в Unity, а C++ — в Unreal Engine.
  • Скорость разработки на C# выше на начальных этапах, но в долгосрочных проектах разница нивелируется.
  • Выбор языка должен основываться на задачах, синтаксисе и личных предпочтениях.

Full Transcript — Download SRT & Markdown

00:00
Speaker A
C++ и C# очень схожи, и выбор между ними может поставить вас в тупик. Оба языка являются перспективными и выполняют примерно схожий функционал. В этом видео я постараюсь рассказать вам, что лучше выбрать, основываясь на ваших предпочтениях и целях. Я уже как-то
00:18
Speaker A
рассказывал про программу PVS-Studio, которая выявляет ошибки в различных программах, написанных на C++ и C#. Ребята находят ошибки даже в крупных и известных проектах, таких как Chromium, Android, Unreal Engine, LLVM и других. Скачать плагин для Visual Studio
00:34
Speaker A
вы можете, чтобы отслеживать различные ошибки в программе и получать полные комментарии по поводу ошибок, возникших в ходе работы. Благодаря такому подходу вы сможете намного продуктивнее работать с кодом, а также обучаться новому языку программирования. Скачивайте плагин PVS-Studio, ссылка на скачивание будет в
00:50
Speaker A
описании к этому видео. Многие говорят, что необходимо начинать с чистого языка C, но я считаю, что это большая трата времени, которая при этом полностью неоправданна. Вам не стоит изучать те языки, которые уже вышли из моды и на них практически ничего нового
01:04
Speaker A
и перспективного не пишется, кроме как поддержки старых проектов. Поэтому если вы решили освоить новый язык, то сразу начинайте с C++ или же с C#. Допустим, вы пропустили C и теперь думаете, что же дальше. А дальше дело обстоит так: если вы
01:20
Speaker A
выбираете C#, то привязываетесь к одной единственной операционной системе — это Windows. Пусть даже есть какой-то там Mono или .NET Core, вы все равно привязаны к Windows от Microsoft. Большинство вакансий на C# — это ASP.NET, это веб и все в этом духе. Так что
01:36
Speaker A
здесь, в принципе, думайте сами, нужна она вам или нет. По поводу книг для начала лучше взять C# 7.0, он понятно описывает API
01:43
Speaker A
да и сам язык тоже. Затем я бы вам предложил "Трое ЛС" (?), ну и наконец, когда вы уже будете хорошо плавать в C# и программировании, можете почитать Рихтера. Он уже описывает не дисек C#, а платформу .NET. Далее у нас на очереди
01:57
Speaker A
C++. C++ хорош тем, что программист волен выбирать уровень абстракции, то есть в одной программе он может писать как на самом низком уровне — работать с памятью и так далее, так и на самом высоком. На C++ можно
02:11
Speaker A
писать относительно кроссплатформенные вещи, для этого существует специальный прием — workflow. По книгам могу посоветовать начать со Страуструпа, хотя это больше как справочник, затем Майерса и Сакура. И если вы все это будете подкреплять практикой, то будете многих людей разносить в щепки в плане
02:27
Speaker A
C++. Я бы вам еще посоветовал посмотреть в сторону Java, но тут уже выбор за вами. А вообще все эти языки — лишь инструмент, кто бы что мне сейчас ни стал заказывать. Главное же — иметь мозги, хорошо ими пользоваться и знать
02:40
Speaker A
алгоритмы. Даже не знать их наизусть — это как раз-таки плохо, а просто понимать, как они работают. Алгоритм советовать, наверное, не нужно, ничего просто берете. Сферы применения у этих языков примерно одинаковые. Если вы хотите писать игры, то здесь стоит снова же
02:55
Speaker A
вспомнить про C#, так как этот язык используется в игровом движке Unity, на котором вы можете писать как 2D, так и 3D игры. При этом язык C++ используется в игровом движке Unreal Engine, который более мощный и используется в основном для создания
03:09
Speaker A
крупных AAA и консольных игр. C# позволяет стартовать разработку быстрее, а это позволяет быстрее получить прототип решения. Скорость разработки на начальных этапах проекта значительно выше по сравнению с C++. Однако когда инфраструктура проекта создана, основные подходы и библиотеки
03:26
Speaker A
выбраны, отлажены и настроены, скорость разработки на C++ и скорость разработки на C# становится примерно одинаковыми. Таким образом, в коротких малобюджетных проектах C# будет иметь преимущество по скорости разработки, но в длинных и относительно дорогих данное преимущество будет незначительным. C++
03:44
Speaker A
кроссплатформенный по факту, хотя и с некоторыми оговорками, дополнительными затратами, а также бинарной несовместимостью между платформами. C# по факту оказался не кроссплатформенным, несмотря на существование неофициальных .NET окружений под разными платформами. Хоть он и спроектирован быть кроссплатформенным, однако его развитие
04:02
Speaker A
не пошло в этом направлении. Поэтому под Windows образовалась достаточно полная .NET инфраструктура, на других же платформах равноценной инфраструктуры не появилась. Отличие ассортимента C++ и C# библиотек в том, что C++ библиотек больше, они имеют большую историю, за которую стали
04:20
Speaker A
неплохо отлажены и оптимизированы. Часто они также кроссплатформенные и с открытым исходным кодом. Однако при всех положительных сторонах C++ библиотеки имеют очень разную, часто даже архаичную архитектуру, часто не объектный, а структурно-процедурный интерфейс. Это связано
04:37
Speaker A
с тем, что многие C++ библиотеки — это библиотеки языка C. Другая неприятная особенность C++ библиотек — это создание и переопределение своих базовых типов. Многие C++ библиотеки заводят свои типы строк, контейнеров, переопределяют некоторые базовые типы.
04:53
Speaker A
Этому есть логическое объяснение: лучшая производительность, поддержка кроссплатформенности и отсутствие подходящих типов на момент написания самой библиотеки. Однако все это не добавляет удобства в использовании и красоты кода. Базовые же C++ библиотеки не дают так много, как дают стандартные библиотеки
05:10
Speaker A
C#. Поэтому подбор правильных библиотек для проекта на C++ — это действительно настоящая задача. Поддержка приложения. Большой разницы между C++ и C# нет, хотя стоит понимать, что некоторые баги в приложениях, написанных на C#, средствами .NET
05:26
Speaker A
исправить невозможно, и при необходимости их исправить стоимость поддержки может существенно возрасти. Однако если говорить о рефакторинге, то зачастую приложения, написанные на C#, рефакторить несколько дешевле. Лично для меня нет определенного ответа в выборе правильного языка, здесь стоит отталкиваться от целей и задач, которые
05:44
Speaker A
вы хотите реализовать. Для меня язык C# намного ближе, ведь на нем можно работать в игровом движке Unity, хотя многие используют C++ для работы в игровом движке Unreal Engine и создают совсем не хуже игры. Вам стоит определиться с задачей и
06:00
Speaker A
после этого выбрать язык, который вам больше понравится по синтаксису. На этом у меня все. Подписывайтесь на канал и вступайте в группу ВКонтакте. Все ссылки будут в описании к видео. До скорых встреч, пока!
Topics:C++C#выбор языка программированияPVS-Studioигровые движкиUnityUnreal Engineкроссплатформенностьпрограммированиеобучение языкам

Frequently Asked Questions

Стоит ли начинать изучение программирования с языка C?

Автор считает, что начинать с языка C — это трата времени, так как он вышел из моды и на нем мало перспективных проектов. Лучше сразу изучать C++ или C#.

Какие игровые движки используют C++ и C#?

C# используется в игровом движке Unity для 2D и 3D игр, а C++ применяется в Unreal Engine, который подходит для крупных AAA и консольных игр.

Какой язык лучше для кроссплатформенной разработки?

C++ более кроссплатформенный, хотя требует дополнительных усилий, в то время как C# преимущественно ориентирован на Windows и не имеет полноценной кроссплатформенной инфраструктуры.

Get More with the Söz AI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries, speaker detection, and unlimited transcriptions.

Or transcribe another YouTube video here →