Обзор выбора между C++ и C#: сравнение, советы по изучению и применению в разных сферах программирования.
Ask about this video. Answers come from its transcript only — with the timestamp, so you can check them.
Generated from the transcript and can be wrong — check the timestamp.
Key Takeaways
- C++ и C# — перспективные языки с разными сильными сторонами и сферами применения.
- C# лучше подходит для быстрого старта и разработки под Windows, особенно веб и игры на Unity.
- C++ обеспечивает большую гибкость, кроссплатформенность и подходит для сложных проектов и AAA-игр.
- Выбор языка зависит от целей, задач и предпочтений разработчика, универсального ответа нет.
- Важно понимать алгоритмы и уметь применять знания, а не только изучать синтаксис.
What the video covers
- 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# выше на начальных этапах, но в долгосрочных проектах разница нивелируется.
- Выбор языка должен основываться на задачах, синтаксисе и личных предпочтениях.
Chapters
- 00:00Введение и обзор сходств C++ и C#
- 00:34Использование плагина PVS-Studio для поиска ошибок
- 01:04Почему не стоит начинать с языка C
- 01:36Особенности и рекомендации по изучению C#
- 01:57Особенности и рекомендации по изучению C++
- 02:27Обзор альтернатив и важность алгоритмов
- 02:55Применение C# и C++ в игровой индустрии
- 03:26Сравнение скорости разработки и кроссплатформенности
- 04:02Отличия библиотек и поддержка приложений
- 05:10Заключение и советы по выбору языка
Full Transcript — Download SRT & Markdown
Speaker A
C++ и C# очень схожи, и выбор между ними может поставить вас в тупик. Оба языка являются перспективными и выполняют примерно схожий функционал. В этом видео я постараюсь рассказать вам, что лучше выбрать, основываясь на ваших предпочтениях и целях. Я уже как-то
Speaker A
рассказывал про программу PVS-Studio, которая выявляет ошибки в различных программах, написанных на C++ и C#. Ребята находят ошибки даже в крупных и известных проектах, таких как Chromium, Android, Unreal Engine, LLVM и других. Скачать плагин для Visual Studio
Speaker A
вы можете, чтобы отслеживать различные ошибки в программе и получать полные комментарии по поводу ошибок, возникших в ходе работы. Благодаря такому подходу вы сможете намного продуктивнее работать с кодом, а также обучаться новому языку программирования. Скачивайте плагин PVS-Studio, ссылка на скачивание будет в
Speaker A
описании к этому видео. Многие говорят, что необходимо начинать с чистого языка C, но я считаю, что это большая трата времени, которая при этом полностью неоправданна. Вам не стоит изучать те языки, которые уже вышли из моды и на них практически ничего нового
Speaker A
и перспективного не пишется, кроме как поддержки старых проектов. Поэтому если вы решили освоить новый язык, то сразу начинайте с C++ или же с C#. Допустим, вы пропустили C и теперь думаете, что же дальше. А дальше дело обстоит так: если вы
Speaker A
выбираете C#, то привязываетесь к одной единственной операционной системе — это Windows. Пусть даже есть какой-то там Mono или .NET Core, вы все равно привязаны к Windows от Microsoft. Большинство вакансий на C# — это ASP.NET, это веб и все в этом духе. Так что
Speaker A
здесь, в принципе, думайте сами, нужна она вам или нет. По поводу книг для начала лучше взять C# 7.0, он понятно описывает API
Speaker A
да и сам язык тоже. Затем я бы вам предложил "Трое ЛС" (?), ну и наконец, когда вы уже будете хорошо плавать в C# и программировании, можете почитать Рихтера. Он уже описывает не дисек C#, а платформу .NET. Далее у нас на очереди
Speaker A
C++. C++ хорош тем, что программист волен выбирать уровень абстракции, то есть в одной программе он может писать как на самом низком уровне — работать с памятью и так далее, так и на самом высоком. На C++ можно
Speaker A
писать относительно кроссплатформенные вещи, для этого существует специальный прием — workflow. По книгам могу посоветовать начать со Страуструпа, хотя это больше как справочник, затем Майерса и Сакура. И если вы все это будете подкреплять практикой, то будете многих людей разносить в щепки в плане
Speaker A
C++. Я бы вам еще посоветовал посмотреть в сторону Java, но тут уже выбор за вами. А вообще все эти языки — лишь инструмент, кто бы что мне сейчас ни стал заказывать. Главное же — иметь мозги, хорошо ими пользоваться и знать
Speaker A
алгоритмы. Даже не знать их наизусть — это как раз-таки плохо, а просто понимать, как они работают. Алгоритм советовать, наверное, не нужно, ничего просто берете. Сферы применения у этих языков примерно одинаковые. Если вы хотите писать игры, то здесь стоит снова же
Speaker A
вспомнить про C#, так как этот язык используется в игровом движке Unity, на котором вы можете писать как 2D, так и 3D игры. При этом язык C++ используется в игровом движке Unreal Engine, который более мощный и используется в основном для создания
Speaker A
крупных AAA и консольных игр. C# позволяет стартовать разработку быстрее, а это позволяет быстрее получить прототип решения. Скорость разработки на начальных этапах проекта значительно выше по сравнению с C++. Однако когда инфраструктура проекта создана, основные подходы и библиотеки
Speaker A
выбраны, отлажены и настроены, скорость разработки на C++ и скорость разработки на C# становится примерно одинаковыми. Таким образом, в коротких малобюджетных проектах C# будет иметь преимущество по скорости разработки, но в длинных и относительно дорогих данное преимущество будет незначительным. C++
Speaker A
кроссплатформенный по факту, хотя и с некоторыми оговорками, дополнительными затратами, а также бинарной несовместимостью между платформами. C# по факту оказался не кроссплатформенным, несмотря на существование неофициальных .NET окружений под разными платформами. Хоть он и спроектирован быть кроссплатформенным, однако его развитие
Speaker A
не пошло в этом направлении. Поэтому под Windows образовалась достаточно полная .NET инфраструктура, на других же платформах равноценной инфраструктуры не появилась. Отличие ассортимента C++ и C# библиотек в том, что C++ библиотек больше, они имеют большую историю, за которую стали
Speaker A
неплохо отлажены и оптимизированы. Часто они также кроссплатформенные и с открытым исходным кодом. Однако при всех положительных сторонах C++ библиотеки имеют очень разную, часто даже архаичную архитектуру, часто не объектный, а структурно-процедурный интерфейс. Это связано
Speaker A
с тем, что многие C++ библиотеки — это библиотеки языка C. Другая неприятная особенность C++ библиотек — это создание и переопределение своих базовых типов. Многие C++ библиотеки заводят свои типы строк, контейнеров, переопределяют некоторые базовые типы.
Speaker A
Этому есть логическое объяснение: лучшая производительность, поддержка кроссплатформенности и отсутствие подходящих типов на момент написания самой библиотеки. Однако все это не добавляет удобства в использовании и красоты кода. Базовые же C++ библиотеки не дают так много, как дают стандартные библиотеки
Speaker A
C#. Поэтому подбор правильных библиотек для проекта на C++ — это действительно настоящая задача. Поддержка приложения. Большой разницы между C++ и C# нет, хотя стоит понимать, что некоторые баги в приложениях, написанных на C#, средствами .NET
Speaker A
исправить невозможно, и при необходимости их исправить стоимость поддержки может существенно возрасти. Однако если говорить о рефакторинге, то зачастую приложения, написанные на C#, рефакторить несколько дешевле. Лично для меня нет определенного ответа в выборе правильного языка, здесь стоит отталкиваться от целей и задач, которые
Speaker A
вы хотите реализовать. Для меня язык C# намного ближе, ведь на нем можно работать в игровом движке Unity, хотя многие используют C++ для работы в игровом движке Unreal Engine и создают совсем не хуже игры. Вам стоит определиться с задачей и
Speaker A
после этого выбрать язык, который вам больше понравится по синтаксису. На этом у меня все. Подписывайтесь на канал и вступайте в группу ВКонтакте. Все ссылки будут в описании к видео. До скорых встреч, пока!
Topics:C++C#выбор языка программированияPVS-Studioигровые движкиUnityUnreal Engineкроссплатформенностьпрограммированиеобучение языкам











