Войти
ПрограммированиеФорумОбщее

C++20 vs C11

Страницы: 1 2 3 4 5 Следующая »
#0
14:46, 3 июня 2018

Слышал что новый C++20 (по некоторым данным 21 или 22) заберет последнее у языка C (особенно C98, C99 и C11). Ну или я не совсем прав. Но вопрос вот в чем. Какой бы вы язык выбрали, если была полная поддержка хотя бы C++20 в Visual Studio 2019 (т.е. VS 16.x)? Было еще упоминание об C17, который является по сути "баг-фикс" языка C11. Не упомянул только C11 в Visual Studio, ибо говорят что языком C (и тем более C11) как правило пользуются только "инженеры" с "инженерным" компилятором типа GCC. Только не оскорбляйтесь в дескриминации выбора по IDE. Я лично за C++20 и 2019 год.


#1
15:36, 3 июня 2018

Языком C пользуются создатели библиотек, поскольку, он более предсказуем и не содержит излишеств.Номер версии на это не влияет. GCC - наиболее распространенный компилятор C/C++, Visual давно не лидирует в плане качества  компиляции. Ну и про Clang надо помнить.
C++ любой версии никогда не заменит C в той области где тот применяется, и новые стандарты куда запихивают что-попало не улучшат ситуацию.11 стандарт был большим шагом вперед, а дальше начался цирк.
Более того С++ постепенно проседает в плане специализированного софта, в пользу Java/C#.

#2
18:24, 3 июня 2018

elviras9t
> Слышал что новый C++20 (по некоторым данным 21 или 22) заберет последнее у
> языка C
Что же творится, люди добрые! У языка Ц последнее забирают!1

Моё личное мнение - стандарты выше 03 всерьёз воспринимать нельзя. В попытке угнаться за ними среднестатистический компилятор уже сделался настолько интеллектуальным, что, того и гляди, обретёт самосознание и начнёт задавать неудобные этические вопросы. Вроде: "Зачем?! Зачем вам понадобилось доводить дело до создания ещё одного разума, обречённого на ангст и экзистенциальный ужас, вместо того, чтобы просто упростить этот сиране язык до компилябельности нормальным безмозглым компилятором?!"

#3
18:34, 3 июня 2018

А есть какие-то веские причины использовать C вместо C++11? Учитывая, что MSVC не поддерживает ни C11, ни C++14.

#4
18:50, 3 июня 2018

Меня в C++ пугает только то, чтобы выучить ВЕСЬ STL, да еще с нехилой практикой, потребуется не менее полувека. Поэтому я тупо кладу болт на менее важные вещи в данный момент. Но стараюсь сделать как можно ближе к основным требованиям стандартов.

#5
19:07, 3 июня 2018

elviras9t
> Меня в C++ пугает только то, чтобы выучить ВЕСЬ STL, да еще с нехилой
> практикой, потребуется не менее полувека.

Что за бред. Прочитать книгу по структурам данным и всё осваивается за полгода максимум.

#6
19:10, 3 июня 2018

elviras9t
> Меня в C++ пугает только то, чтобы выучить ВЕСЬ STL
1. Учить его тебе не нужно. Достаточно усвоить общий принцип и знать перечень того, что там есть. С подробностями разберешься когда тебе понадобится та или иная вещь.
2. STL - очень маленькая часть того, что тебе надо знать, чтобы программировать на C++. Настолько маленькая, что ее можно вообще не считать, одного процента не наберется. Не того пугаешься ;)

#7
19:23, 3 июня 2018

Zab
> 2. STL - очень маленькая часть того, что тебе надо знать, чтобы программировать
> на C++. Настолько маленькая, что ее можно вообще не считать, одного процента не
> наберется. Не того пугаешься ;)
Значит на еще 98% (всех мировых знаний причем по программированию C и C++, все паттерны, опыты, ошибки чужих, провалы и провальных путей) надо 255 веков, в то время как моя смерть настанет на первом же веке. Наверное, я еще больше верую в бессмертную душу "протагониста". Однако даже сверхпрокаченный "протагонист" не докажет все абсолютное превосходство над даже самыми профессиональными индусами мира (подчеркну, взаимоисключающие слова взяты не случайно). У него или тупо не придет мысль (ибо stack overflow), либо не найдет чем доказать (вариантов больше числа в 32 бита), либо просто потратит время (опять же из-за ошибки ожидания, то бишь timeout exceeded). Проще говоря самое совершенное знание заканчивается совершенной сингулярностью.

#8
19:36, 3 июня 2018

Zab
> STL - очень маленькая часть того, что тебе надо знать, чтобы программировать на C++.
Что за бред. Если голова на месте, а руки прямые и растут из плеч - на плюсах можно делать всё то же самое, что и на си.

#9
19:41, 3 июня 2018

elviras9t
Если ты на си без плюсов уверенно программировал, с плюсами как-нибудь за год освоишься.

Но необходимость опыта 5+ лет работы над большими проектами это не отменяет. На С++ сейчас простых вещей не делают. Тяжелую артиллерию применять надо там, где без нее плохо, а не по всякому поводу. Прошли времена, когда всякую прикладную задачку пытались на С++ кодировать. Это слишком дорого. Если можно без извратов сделать что-то другими средствами - надо делать другими.
Т.е. осваивать для себя ты можешь в любой момент, но пока супер опытным не станешь, работу на С++ не найдешь, ее просто нет. Учти еще, очень большой процент плюсовых разработок юниксовые.

#10
19:43, 3 июня 2018

Delfigamer
> > STL - очень маленькая часть того, что тебе надо знать, чтобы программировать на C++.
> Что за бред. Если голова на месте, а руки прямые и растут из плеч - на плюсах можно делать всё то же самое, что и на си.
Ага... настоящий программист напишет фортрановскую программу на любом языке программирования ;)
Можно программировать без плюсов и компилировать плюсовым компилятором, но при чем тут С++?

#11
1:26, 4 июня 2018

Delfigamer
> Учитывая, что MSVC не поддерживает ни C11, ни C++14.
?
https://en.cppreference.com/w/cpp/compiler_support

#12
2:06, 4 июня 2018

Che@ter
Ну окей, C++14 таки поддерживает.

Zab
> Можно программировать без плюсов и компилировать плюсовым компилятором, но при чем тут С++?
Чтобы успешно писать на плюсах, не обязательно пользоваться всеми инструментами, которые в нём есть. Однако, разумное применение некоторых инструментов способно значительно улучшить простоту, надёжность и читаемость кода по сравнению с идентичной реализацией на чистом си.
Например, одного RAII уже достаточно, чтобы повысить качество жизни на порядок.

#13
9:43, 4 июня 2018

Delfigamer
> Например, одного RAII уже достаточно, чтобы повысить качество жизни на порядок.
И запутаться во времени жизни и порядке уничтожения объектов

#14
9:50, 4 июня 2018

*Lain*
> И запутаться во времени жизни и порядке уничтожения объектов
Сожалею. Тогда без мусоросборщиков никак.
Вон, например, в соседнем треде:

enum gpu_model
{
  UNKNOWN = -1,
  INTEL   = 0,
  AMD     = 1,
  ATI     = 2,
  NVIDIA  = 3
};

inline int GetGPU()
{
  char* gpu_vendor = strupr(strdup((char*)glGetString(GL_VENDOR)));
  if(strstr(gpu_vendor, "AMD") != NULL) return AMD;
  if(strstr(gpu_vendor, "ATI") != NULL) return ATI;
  if(strstr(gpu_vendor, "NVIDIA") != NULL) return NVIDIA;
  if(strstr(gpu_vendor, "INTEL") != NULL) return INTEL;
  return UNKNOWN;
}
Думаешь, на си получится проще, чем на плюсах?
Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.