c или



Автор Беркут задал вопрос в разделе Другие языки и технологии

Какой язык программирования лучше изучать: C++ или C# ? и получил лучший ответ

Ответ от Krab Bark[гуру]
C# проще, C++ универсальнее, поддерживается на многих платформах, скомпилированные с него программы выполняются быстрее.

Ответ от =Serge=[гуру]
Ну как бы оба надо знать.
А начать лучше с С++.Вот с этой книжки: c или

Ответ от Александр Свиридов[гуру]
Так программы на C# совсем не медленнее чем на С++.
Что острее? Кухонная ложка или кухонный нож?
Чем лучше обрабатывать садовый участок - граблями или лопатой?
Когда вы используете приложение на C# взаимодействующее с операционной системой, то оно вызывает код написанный на С++. Вызовы транслируются к WinAPI, и следовательно никакой код на C# не сможет работать дольше чем на С++.
Исключения есть, и они понятны.
1) в C# нет ассемблера, также как в С++ нет высокоуровневого объектно-ориентированного MSIL. Следовательно в C# вы не напишете код вычисляющий хэш CRC32 в 4-5 строк ассемблерных команд. Вы его напишете на C#, получите около 45 строк на MSIL. И пожалуетесь что тормозит. И верно. Ведь даже на С++ для этого применяют ассемблерную вставку.
2) в C# все сильно стандартизовано. Вы не можете создать ссылку на byte или boolean. И не можете создать ссылку на уничтоженный объект. Пока объект жив ссылка будет существовать. Когда ссылки не будет, то и объект умрет. Плюс это или минус? Нужно ли получать Exception при доступе к не правильной ячейки памяти?
3) в C# выделение памяти происходит при помощи виртуальной машины. А в C++ все вручную. Конечно, если вы бинарные поля упакуете и сделаете из них объекты то всё будет куда компактнее чем аналогичное в C#. Вопрос в том нужно ли вам это. Современные компы имеют от 4 до 8 гигабайтов оперативной памяти. И память продолжает дешеветь. Серверы продают с 32-64 гигами и выше.
о явных преимуществах C#
1) В С++ нет ASP . NET. А это ведущая технология создания веб сайтов. Нет также и WPF, нет silverlight, нет библиотеки 300 мегабайтов.
2) выделение памяти в С# происходит быстрее чем в C++, потому что она обычно упорядочена. При выдаче блока просто выдается следующий блок, а в С++ сперва ищется свободное место.
3) разработка C# быстрее, там и отладка проще, и механизмы выбрасывания исключений упрощены. Нет множественного наследования, нет ссылок на примитивные типы данных, нет проблем с мертвыми ссылками.
итого.
Если у вас целевая аудитория машины с 2 и более гигами памяти то выбирайте C#.
Если вы хотите писать код под процессоры с 8 кб памяти то используйте Си.
Если у вас цель создание GUI - вам в C#.
Если вы делаете только консольные приложения - достаточно и C++.
Если вы сторонник стандартизации и использования готовых программ - вам в C#. Там уже 300 мегабайтов кода.
Если вы сами хотите писать сортировку, искать как реализовать SSL. как сделать HTTP сервер.. . тогда вам в C++.
Кстати, ЕХЕ-шник у C# размерами от 8 кб, а у С++ наверное того меньше. Но С++ не имеет своей библиотеки, в программу придется затолкать тонну библиотек. И ваше простое приложение обязательно будет весить 5 - 40 мб.
Для C# это не реально много. Ведь там есть 300 мб готового кода, который предустановлен на все компьютеры. Сложная программа может занимать 10-20 Кб...

Ответ от Ёемен Солдатов[гуру]
как по мне, так некорректное сравнение. сами выбирайте что вам нужно. попробуйте и то и другое, а потом решите, что больше нравится. ссылки на объекты и в C# возможны. но но если они на unmanaged объекты, то чуток сложнее начинающим, путаются. насчет crc32, можно использовать Mono.SIMD, для ускорения или unmanaged код. да и вообще, на любую фразу: "а вот там это быстрее... ", можно найти решение как сделать это быстро тут. Просто знание языка хорошее нужно, знание ОС, время.

Ответ от Norton[гуру]
Мой вам совет изучайте С++, но не на VS, а на Borland С++ builder. Потом тихонько езжайте на gcc в Линукс. А еще я бы порекомендовал в дальнешем поинтересоваться Java
Начав изучать C# после C++ (просто C# появился уже потом) , я очень долго и много плевался:
1) Постоянное битье по рукам линейкой за отсутсвие break в case, за присваивание в if и т. д. и т. п. порождают примерно те же ощущения, как после XP перейти на Vista.
2) Стояла у меня задача обрабатывать сканы чертежей на А0-А3 формате. Кучи оберток на GetPixel() изрядно отравили мне жизнь при написании фильтров.
3) Запрещенное неявное присваивание вызывает скрежет зубовный и гору рефакторинга, когда вы пытаетесь, что-либо прицепить из ранее написанного или стороннего.
4) Кроссплатформенность С# на микрософте и заканчивается.
C# хорош для: - написания мелких программок, большая часть которых занимает интерфейс пользователя. Различные утилитки, учебные задания, АРМы на достать 3 параметра из БД.
Плох для ресурсоемких приложений, для различных промышленных применений, где объем продаж мал во времени, и увы каждые 3 года вам придется переезжать на новую винду, кривая реализация алгоритмов в .NET
С++ хорош - огромные залежи открытых исходников по всему интернету, изящные конструкции максимально приближенные к машинному коду, на любую новую платформу первым делом поселяется C/C++ компилятор.
минусы - в виду своей универсальности написание пользовательских интерфейсов весьма трудоемко и мучительно.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Какой язык программирования лучше изучать: C++ или C# ?

Что легче Java или C++ или С# или С
C++ это расширенный C (не совсем так, но почти).
На мой взгляд, изучать С++ вообще не надо,
подробнее...
спросили в C++ Дельфы
Какой язык программирования лучше: C++,Delphi или Python
Смотря какие игрушки.. . Если что-то кроссплатформенное - то C++ или Python, но Python полегче в
подробнее...
спросили в Интернет
Кб/с - это байты или биты? ну я совсем чайник!
кб, /c или Кб/с- это килобиты, кБ/с или КБ/с это
подробнее...

C++. Типы данных. Создание типа данных.
Минимальная граница для адресации процессора - 1 байт. Рекоммендуемая - 4 байта.
Если нужна
подробнее...
спросили в LUG
log a (b) x log a (c) как упростить? жду помощи
Основания логарифмов - не ясно

Если а - основание, то
log(a) b * log(a) c - не
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

DVB-T/T2 или DVB-C? Какой тюнер мне нужен?
У вашего провайдера нет дополнительного оборудования. Сигнал поступает по коаксиальному кабелю в ТВ
подробнее...
спросили в SATA Express Studio 4°C
Я нашёл в сети компилятор C-Free, он нормальный? Для новичка пойдет?
> C-Free 5 Issued! (Jan. 4th, 2010)
> C-Free can be #yahrefs496860# and evaluated for 30
подробнее...

3 размер груди это какой?ну например в соответствии с размерами как 34-38/a/b/c?
80 C или 75 C - вот такой примерно (числа - это обхват под грудью в
подробнее...

Как в Internet Explorer сделать минимальный уровень безопасности для всех зон, или отключить безопасность вообще?
"Другой браузер не предлагать. "
У всех браузеров БЕЗОПАСНОСТЬ ВЫШЕ, они Вам не подойдут.подробнее...

java перспектива какая? Или конкуренты лучше?
перспектива у java очень большая. Хотя надо отметить что лет 5-10 назад этому языку предрекали
подробнее...
спросили в Интернет
Что больше Мбит/с или Гбит/с? Какова нормальная скорость?
Бит в секунду, бит/с (англ. bits per second, bps) — базовая единица измерения скорости передачи
подробнее...

Delphi vs C++
Нет языка лучше или хуже. С++ гибче, поэтому распространённее. Он же сложнее в изучении, однако,
подробнее...
спросили в 1259 год
Скажите что лучше взять? Видео камеру с жестким диском, с флешкой или с диви или минидиви... что посоветуете?
Я бы советовал или Кэнон, или Сони. Вобщем то достаточно авторитетные бренды в видео. Выпускают и
подробнее...

Почему данные делятся на биты или байты? И почему нельзя взять за основу что-нибудь одно?
В БИАХ чаще всего измеряют скорость передачи ИНФОРМАЦИИ

а в БАЙТАХ объем информации на
подробнее...
Операторы в C и C++ на Википедии
Посмотрите статью на википедии про Операторы в C и C++
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*