- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 09:25 , 07-Май-24 (1)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 10:05 , 07-Май-24 (7)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 11:04 , 07-Май-24 (15) +5
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 11:42 , 07-Май-24 (26) +4
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 13:07 , 07-Май-24 (44)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 16:26 , 07-Май-24 (78) –3
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 17:30 , 07-Май-24 (84) +3
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 19:58 , 07-Май-24 (106) +1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 21:36 , 07-Май-24 (116)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 17:34 , 07-Май-24 (88)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 23:53 , 07-Май-24 (134)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 11:28 , 07-Май-24 (23)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Андрей, 11:50 , 07-Май-24 (28) +3
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , rezzet, 11:57 , 07-Май-24 (29) +3
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 00:10 , 08-Май-24 (135)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Kuromi, 15:55 , 07-Май-24 (71)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 09:39 , 07-Май-24 (2)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , нитгитлистер, 09:50 , 07-Май-24 (3) +1 [V]
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 10:00 , 07-Май-24 (5) –6 [V]
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Middle Go Developer, 10:37 , 07-Май-24 (9) +1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , 12yoexpert, 10:46 , 07-Май-24 (12) +1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 11:30 , 07-Май-24 (24)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Прадед, 12:35 , 07-Май-24 (36) –1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 12:36 , 07-Май-24 (37) –3
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , тыквенное латте, 14:08 , 07-Май-24 (55) +3
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Прадед, 14:43 , 07-Май-24 (62)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , тыквенное латте, 14:57 , 07-Май-24 (66)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 16:08 , 07-Май-24 (73) +1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 22:06 , 07-Май-24 (126)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 01:01 , 08-Май-24 (138) +1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 01:41 , 08-Май-24 (140)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 11:11 , 08-Май-24 (164)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Bottle, 18:21 , 07-Май-24 (91) +2
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , AKTEON, 07:23 , 08-Май-24 (156)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 11:46 , 07-Май-24 (27) +3
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 14:16 , 07-Май-24 (56) +3
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 14:40 , 07-Май-24 (61) +2
Нормальный там код, понятный, ясный и с комментариями, которые абсолютно по делу. Так что не трынди! Кому что-то непонятно, пусть развиваются и улучшают свою квалификацию.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 17:24 , 07-Май-24 (83) +2
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Швондик, 10:45 , 07-Май-24 (11)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 11:36 , 07-Май-24 (25)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 12:28 , 07-Май-24 (34)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 13:00 , 07-Май-24 (43)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 15:18 , 07-Май-24 (70)
Возможно, полезно для встраиваемых систем без GPU и, возможно, даже без операционной системы. Но это просто как пример.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , X512, 17:32 , 07-Май-24 (86)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 17:50 , 07-Май-24 (90)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 19:54 , 07-Май-24 (105) +1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 21:52 , 07-Май-24 (119)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 21:53 , 07-Май-24 (120)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 21:56 , 07-Май-24 (122)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 00:15 , 08-Май-24 (137)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , nox., 13:14 , 07-Май-24 (46)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 13:22 , 07-Май-24 (47) –6 [V]
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 13:24 , 07-Май-24 (48)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 13:32 , 07-Май-24 (50) –4 [V]
Только на С++ надо было, а не на С, т.к. на С++ можно получить производительность лучше, плюс он банально удобнее.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Прадед, 13:49 , 07-Май-24 (54) –1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Прадед, 14:16 , 07-Май-24 (57)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 14:22 , 07-Май-24 (58) +1
Автор никаких аргументов не привёл, кроме того, что это его первый и любимый язык) Скорее всего, он просто не знает С++, и, по сути, это и есть главный аргумент) Но это его дело, на чём писать. Интересно было бы сравнить производительность с Mesa3D llvmpipe.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Прадед, 16:08 , 07-Май-24 (74) +2
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 18:42 , 07-Май-24 (93)
Можно использовать только полезную функциональность С++, а лямбды и всякую херню не использовать. В С++ много реально полезных вещей, например, шаблоны и всё, что с ними связано, классы, constexpr, consteval, в его стандартной библиотеке есть полезные вещи, по мелочи много всего. Всё это позволяет создавать более быстрый код.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 19:58 , 07-Май-24 (107) +1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 22:10 , 07-Май-24 (127)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Прадед, 22:41 , 07-Май-24 (130)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 02:32 , 08-Май-24 (144)
С++ - это расширенный С. Если кто-то хочет использовать более ограниченный инструмент (С) и видит в этом преимущество, - флаг ему в руки! Лично я не думаю, что это умное решение. Конечно, бывают разные ситуации, связанные с совместимостью, переносимостью и всякими другими специфическими особенностями, но в таких случаях дело часто не в языке, а в других особенностях...Для новых больших проектов язык С уже очень давно абсолютно не актуален, т.к. он не даёт по сравнению с С++ никаких преимуществ. И в С++ дело не в красоте, а именно в возможностях: в С нет классов с конструкторами и деструктором, шаблонов, концептов, нормальной стандартной библиотеки (хотя без неё, безусловно, можно обойтись), и всякой другой полезности типа constexpr, consteval, [[likely]]/[[unlikely]] и т.д. А без классов, шаблонов и концептов писать приложение... такое себе занятие... удовольствие ниже среднего, прямо скажем. В то же время в С++ есть всё, что есть в С.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 04:12 , 08-Май-24 (151)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 04:38 , 08-Май-24 (152)
> Пока код ещё похож на обычный С, те без классов, темплейтов, лямд и проечей фигни это норм, и реально быстрее писать.Без классов и шаблонов... так в них же как раз вся соль! > Но классы, наследование, темплейты и прочая тарабарщина начинают резко усложнять структуру кода, размазывая простую и очевидную в С логику тонким слоем по десяткам файлов/классов. В этом случае вопросы не к языку, а к человеку, который отвечает за архитектуру программы. Язык программирования только предоставляет возможности, а уж как их использовать решает программист. Я тоже такое не очень люблю, когда размазывают код по сотням мелких файлов без реальной на то необходимости. Но язык здесь ни при чём. > Там где я в С делаю какую то отдельную функцию крестовики обычно пихают это в класс... Крестовики могут делать ровно то же самое, что и ты, поверь. По сути, твои программы на С являются корректными программами на С++. > Для меня рефакторинг это пройти по всем вхождениям функции в коде и добавить/убрать аргумент, а для крестов там могут найтись дальние наследники и замучишься править. Во-первых, в С++ придётся делать то же самое ("пройти по всем вхождениям функции в коде и добавить/убрать аргумент"). Во-вторых, если хочется дополнительно ещё и классы с наследованием (а такое в реальности встречается нечасто), то да, в этом случае придётся приложить какие-то дополнительные усилия. Ну так и классы с наследованием используются не просто так на ровном месте, а только при реальной необходимости, и они предоставляют определённые возможности, удобство, сервис. > ... пару раз и чистил авгеевы конюшни класса-в-классе-в-классе-в-классе-...в цикле... ради одного примитивного действия В данном случае вопросы не к языку программирования, а к программисту, т.к. он отвечает за архитектуру программы.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 05:04 , 08-Май-24 (153)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Прадед, 08:39 , 08-Май-24 (159)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 11:43 , 08-Май-24 (167)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 13:03 , 08-Май-24 (174)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 13:37 , 08-Май-24 (176)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 16:36 , 08-Май-24 (180)
> Да, язык не виноват, людишки не осиливают :)Не знаю как "людишки". Скажу про себя. Я осилил плюсы, когда учился в школе в 9x годах прошлого века. Да, тогда С++ был проще, но не принципиально. До этого я изучал Бейсик в школе на Агатах ещё (были такие советские компы с советским процессором, если вдруг кто не в курсе, загуглите - в Википедии есть), и в DOS дома на 286 компе, а потом Си в DOS на 286 и 386 компах. Если нужен качественный инструмент, то взять книги на русском и изучить этот инструмент - это абсолютно не проблема (для меня лично). Для кого книги - это очень сложно, "много букв", страшно, скучно и т.п., то есть всякие курсы, в том числе для домохозяек и домохозяев.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 00:25 , 09-Май-24 (185)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 01:41 , 09-Май-24 (186)
> Я продолжаю настаивать что кресты избыточны и пытаясь занять нишу и С и высокороуровнего языка они фейлятся в виду избыточной сложности. :)Да нет там никакой избыточной сложности. Это всё твои страхи. Всегда чем больше возможностей, тем закономерно выше сложность. А как ты хотел? Жить во времена DOS с компилятором Бейсика и Си? Те времена уже лет 30 как прошли. > Есть С. Когда С мало, есть луа, вала чтобы его расширить до высокоуровневости. Ну какие Луа, Вала для расширения С?! Ну что за бред! Если серьёзно, то это годится только для твоих домашних экспериментов. Когда С мало есть С++. Здесь нечего изобретать велосипед. Умные дядьки всё уже давным давно придумали, сделали, испытали и т.д. Нужно лишь сесть, изучить язык и готовые качественные компиляторы в виде GCC и Clang и применять их на практике. Всё!
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 10:07 , 09-Май-24 (190)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 13:01 , 10-Май-24 (194)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 12:51 , 10-Май-24 (193)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 19:05 , 10-Май-24 (197)
> В 90-х годах? Си++ стандартизован в 98-м.Во-первых, 98 год относится к 90-м. Во-вторых, компиляторы появились гораздо раньше, чем был разработан и принят стандарт. Например, "первая доступная версия Borland C++, имевшая номер 2.0, вышла в 1990 году под DOS, а в 1991 году вышла версия 3.0 с поддержкой сборки Windows-приложений", Microsoft выпустила компилятор C++ в 1992 году, Visual C++ был выпущен в начале 1993 года, а в GCC С++ был добавлен ещё раньше - в 1987 году. У меня даже книги сохранились на русском по первым версиям Borland C++ Builder и Microsoft Visual C++, и они (книги) точно 90-х годов (второй половины 90-х - 1995 года или чуть позднее). https://en.cppreference.com/w/cpp/language/history
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 10:31 , 12-Май-24 (201)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 16:52 , 12-Май-24 (204)
> Гипотетически были какие-то борланды...Borland был не гипотетически, а реально. Это был лучший компилятор. Я сам его использовал. Это был мой первый компилятор С, а позже и С++. Потом появился Borland C++ Builder, который я также использовал на протяжении многих лет. MSVC в то время ничего сопоставимого предложить не мог. > а практически даже MSVC 6-й версии не поддерживал стандарт MSVC был хорошим компилятором, но он никогда не был лучшим. В первой половине 90-х стандарта ещё не было. Были организованы только комитеты по стандартизации. > auto_ptr оказался кривой по дизайну и потребовал замены на unique_ptr. Когда я изучал С++ никакого auto_ptr ещё не было. Он появился уже позднее. > Линус якобы пробовал на плюсах писать ядро, ему это не понравилось. У Линуса была очень специфическая задача. Лично я использовал Си, когда ещё не знал С++, и было это ещё под ДОСом на 286 и 386 компах. После того, как я изучил С++, чистый Си я никогда больше не использовал (разве что только для программирования микроконтроллеров) и желание его использовать с тех пор никогда не появлялось.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 08:15 , 13-Май-24 (206)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 20:22 , 10-Май-24 (200)
> В 90-х годах? Си++ стандартизован в 98-м.Есть ещё книга Бьерна Страуструпа (создателя С++) "Дизайн и эволюция C++". Там про историю С++ рассказано подробно, включая идеи - что, зачем и почему было сделано, почему принимались те или иные решения.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 10:37 , 12-Май-24 (202)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Anonymm, 19:25 , 09-Май-24 (191)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 19:37 , 07-Май-24 (101)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 17:21 , 07-Май-24 (82) –1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Bottle, 18:25 , 07-Май-24 (92) +1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 19:46 , 07-Май-24 (104)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 20:04 , 07-Май-24 (108) –1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 22:20 , 07-Май-24 (129)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 18:44 , 07-Май-24 (94) +1
> Аргумент про производительность — либо демонстрация глупости/некомпетентности, либо толстый троллинг и провокация на холивар.Ещё раз для особоодарённых: С++ позволяет создавать более быстрый, более производительный код, чем С. А С++ вместе с ассемблером - вообще огонь! Совсем по-простому: С является подмножеством С++, т.е. С является частью С++. Другими словами, любой компилятор С++ скомпилирует код С. Т.е. С++ обладает намного (вообще несравнимо) большими возможностями, чем С. И вот как раз, используя эти возможности, и можно достичь более высокой производительности по сравнению с С. Под С++ я имею в виду последние стандарты: С++20, С++23. Учи матчасть, злобный Аноним!
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 19:39 , 07-Май-24 (102) +2
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 20:08 , 07-Май-24 (109)
>> С является подмножеством С++, т.е. С является частью С++ > Это неверно. Правильнее сказать...Мелочи погоды здесь не делают. >> используя эти возможности, и можно достичь более высокой производительности по сравнению с С > Ещё раз, какие-какие возможности? Самые-самые разные. Например, в С++ есть [[likely]] и [[unlikely]], которыми можно помечать более или менее приоритетные if'ы. Это напрямую влияет на генерируемый ассемблерный код. >> Совсем по-простому: С является подмножеством С++ > Забавно — именно по этой самой аргументации C всегда будет быстрее. Потому что для одного и того же кода на C и C++ > будет генерироваться тот же самый машинный код. А поддержка "больших возможностей" как раз и отъедает лишние инструкции. Большие возможности - не означает больше инструкций, часто как раз наоборот. Например, использование инструкций препроцессора не означает, что будет сгенерирован больший код. Кроме того, меньше процессорных инструкций не означает более быстрый код. > Но в общем случае, производительность C++ такая же или хуже, чем аналогичного, грамотно написаннного когда на C. Свой код на Си ты можешь откомпилировать компилятором С++ и получить такую же производительность, т.к. программа на Си в 99% случаев будет корректной программой С++) Неожиданно?))) Т.е. программист на С++ имеет ровно те же возможности, что и чистый сишник, но плюс ещё кучу полезных и приятных фишек и возможностей. Стандартную библиотеку С++ вообще никто не заставляет использовать - это опция. Или её можно использовать выборочно. В С++ точно так же доступна стандартная библиотека Си и все остальные сишные библиотеки без исключения, но в добавок ещё доступно множество библиотек С++.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 22:41 , 07-Май-24 (131)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 02:02 , 08-Май-24 (141)
>> Например, в С++ есть [[likely]] и [[unlikely]], которыми можно помечать более или менее приоритетные if'ы. > Это уже давно стало опциональным расширением С компеляторов. > Как по мне, лучше избегать подобного.Смысл избегать, если это часть стандарта, элементарно применяется и повышает производительность почти за бесплатно? > Послушайте, вам уже указали на основную проблему крестов: стандарт слишком сложный для изучения, понимания и применения Возможностей у С++ намного больше, потому и сложнее. Я изучал С++ в школе. Для школьника он вполне доступен. >(и для компеляторов тоже, они долго жуют исходники). Нормально они по времени компилируют - секунды занимает компиляция обычно. Пишешь программу ты в любом случае на порядки дольше. С++ за счёт своих возможностей сэкономит тебе кучу времени. > На практике это означает написать какую то фигню на крестах которая выглядит вполне безобидно но катастрафически гробит производительность очень легко. На любом языке так. Нужно понимать, что ты делаешь, каковы результаты компиляции, как работает процессор, ОС и компьютер в целом. И нужен опыт. > Да, на С тоже можно написать фигню, но эту фигню в 90% видно сразу при чтении, без прыгания по исходникам и без дополнительных инструментов, особенно рантайм. С++ много чего облегчает. Для этого он и был создан, т.е. для расширения С. так его и нужно воспринимать. Если тебе С хватает - ОК. На С ты можешь написать какую-нибудь библиотеку, маленькую утилиту, но создавать большое приложение... - точно нет, мазохизм! > Дополнительно развесистестость стандарта приводит к тому, что для решения типовых задач есть много разных синтаксических инструментов, как итог каждый автор предпочитает свои > наборы таких инструментов и плохо знает другие, а это по сути образование диалектов языка в пределах одного стандарта. Так это как раз и хорошо) > И чтобы вы понимали, под диалектом я имею ввиду не какой то местный "поребрик", а когда половина или больше слов не понятно или не уверен в их значении на 100%. Ну так изучи то, что тебе не известно) Делов то!
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 03:47 , 08-Май-24 (148)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 08:08 , 08-Май-24 (157)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 16:48 , 08-Май-24 (182)
> Postgres еще на сишичке написан - собирается просто мгновенно для проекта такого объёма.Скорость сборки не является узким местом С++. Средние проекты компилируются и собираются за секунды, как правило. Компиляция и сборка занимают мизерное время по сравнению с написанием кода. > Чувак просто деревянный и молиться на паттерны проектирования, классы и интерфейсы без осознания задачи. Не может подняться над задачей. Каждой задачи свой инструмент, а он все молотком забивает. Меня помню один идиот спрашивал как я буду реализовывать процессинг: я ему про персистентность, транзакционность,про хранинение НЕ в флоатах... а он мне все не верно - нужно создать базовый класс. Академик из детского сада. Дядька просто намного опытнее тебя.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 21:30 , 08-Май-24 (184)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 01:46 , 09-Май-24 (187)
Уверен на 100%, что объём твоих программ сильно меньше объёма исходников Хромиума, поэтому скорость сборки для тебя не должна быть какой-то проблемой.Я проблем с потреблением памяти компиляторами С++ никогда не замечал. Пользовался самыми разными компиляторами от Borland, Microsoft, Intel, GCC, Clang и др.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 01:44 , 10-Май-24 (192)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 19:50 , 10-Май-24 (198)
> А когда компеляешь тот же хромиум в 32 потока, то с++ жрущий по 300+мб на процесс уже весьма заметно - 9 Гб.У меня в компе 128 Гигов оперативки, поэтому я память особо не считаю. Но раньше было гораздо меньше. Когда у меня был 286 комп, то памяти вообще было 640 кБ и DOS :)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , тыквенное латте, 09:17 , 08-Май-24 (160)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 20:47 , 07-Май-24 (112)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 21:57 , 07-Май-24 (123)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 02:14 , 08-Май-24 (142)
> Не позволяют кресты создавать более производительный код.Кресты позволяют создавать более производительный код. Просто поверьте. Нужен опыт, в том числе работы с ассеблером и дизассемблером. > Всё отличие в том, что в кресты понапихали синтаксического сахара. > Потом обдолбавшись сахаром авторы принялись расширять сознание и попытались сделать из > крестов высокоуровневый язык без ручного манагемента памяти. В С++ доступно абсолютно такое же, как в С, управление памятью. Это подмножество С++, и почти любая программа С компилируется компилятором С++. Т.е. в С++ можно использовать абсолютно такое же управление памятью, как в С, если хочется. > Как итог у них получилась полная бормотуха, где один разработчик не понимает до конца что пишет его сосед, потому что хотя у них > компелятор и один но диалекты у каждого разработчика могут быть свои и сильно отличающиеся. Я с таким в своей практике не сталкивался. В любом случае разработчик должен писать комментарии, хотя бы потому что через некоторое время он и сам не вспомнит, что и зачем писал. > А потом бедный компелятор крестов пыхтит в 20 раз дольше по сравнению с обычным С компелятором при сборке чтобы расшифровать эту фигню и перевести в машинные коды. Компиляция средней программы на С++ занимает секунды. Пишешь программу ты на порядки дольше. При написании программы С++ экономит тебе кучу времени. Выгода от использования С++ очевидна.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan_83, 03:59 , 08-Май-24 (149)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 05:08 , 08-Май-24 (154)
> Если ты лезешь в асм - то нафига тебе кресты?Асм не заменяет кресты, а дополняет. С++ - язык высокого уровня, и всё, что можно, делается на нём. Асм нужен для оптимизации, иногда на нём проще сделать некоторые алгоритмы, иногда нужен для доступа к специфическим возможностям процессора, для изучения кода, генерируемого компилятором, и последующего создания оптимального кода С++, который даст лучший, более производительный код Асм. > Если мне нужна производительность то я посмотрю в сторону инстриктов и там всяких профилировщиков, все эти unlikely - это обычно ниачом. Если цикл вызывается миллиарды или триллионы раз, то любая мелочь может быть важна. Иногда при минимальном изменении кода С++ компилятор может сгенерировать сильно другой код асм. >> Я с таким в своей практике не сталкивался. > А мне было забавно наблюдать как одни разрабы просили новую разработчицу не сильно увлекатся кажется 17, они ещё 14 не осовоили )))) Бедняги) Книжку взять на русском языке - это очень сложно и страшно - там же очень-очень-очень много букв) > Но в более общем случае это так же означает наличие лишних абстракций, которые мешают понимаю кода при его чтении. > Те вот вы открыли, читаете, а там бах и какой то класс. Надо прерватся и лезть читать класс. Потом вернулись, продолжили а там другой класс. Опять надо куда то лезть. В С то же самое, только ещё хуже: вместо классов структуры, malloc/free для этих структур в непонятных местах, после выделения памяти не забыть вызвать инициализирующую эту структуру функцию, перед уничтожением не забыть вызвать функцию-деструктор, а функции, работающие со структурами, должны принимать указатели на структуры или указатели на указатели на структуры, а вдруг им передан нулевой указатель - надо не забыть проверить... Тот ещё гемор, в общем. А если нужно наследование? А если нужны похожие структуры, в которых есть поля с одинаковыми именами, но эти структуры - не наследники друг друга, но со всеми этими структурами должна работать какая-то функция? Ужас! Лучше даже не думать об этом. А в С++ такое легко и просто, даже играючи - классы, наследование, концепты, шаблоны... Даже препроцессор не нужен) > А дальше там темплейты и ещё какая фигня. И вместо чтения одного исходника вам пришлось лазать в пару десятков соседних файлов, чтобы например понять что там вообще ничего нужного не было. Чем больше и сложнее программа, тем больше файлов - это естественно. Но в С всё то же самое, только хуже, потому что приходится изобретать велосипед, где в С++ есть готовое, простое, элегантное, эффективное и проверенное решение. >> При написании программы С++ экономит тебе кучу времени. > Ага. Особенно когда ты понял что накосячил с архитектурой, и теперь тот класс что везде используется надо основательно переписать разбив на 5, и попутно отрефакторить код в сотне файлов.
В С так же. С большими программами и сложными структурами данных в любом языке примерно та же история. > При этом я ООП вполне себе активно использую, как подход, просто без наследований как правило. > И в луа ООП и прям классы - это весьма прикольно. Луа - это скриптовый язык для программ и к тому же медленный, совсем не замена С++. В С++ так же его можно использовать с теми же целями, если нужно, чтобы пользователи программы могли писать скрипты, но это редко нужно.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 11:58 , 08-Май-24 (170)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 16:40 , 08-Май-24 (181)
Правильнее с const. В С++ работает: const char* p = "abc";Часто такое использую. Не знаю, что там в стандарте, но на практике всегда и во всех компиляторах работало. Так же, как включение (#include) чисто сишного файла в файл С++. Вообще, с проблемами сочетания кода на чистом С с кодом на С++ я никогда не сталкивался.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 13:05 , 10-Май-24 (195)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 13:07 , 10-Май-24 (196)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 20:02 , 10-Май-24 (199)
Изначально С++ - это был Си с классами. Гораздо позже стали появляться стандарты С++ и С и языки стали немного отличаться, но отличия чисто косметические. Возможно в последних версиях стандарта Си там что-то добавили, но последнюю версию на практике мало кто использует, т.к. на Си в основном написаны старые программы при создании которых использовались старые стандарты. Новые приложения никто в здравом уме на чистом Си писать не будет. А те, кто пишет на Си понимают, что чаще всего их код будет использован в приложениях С++, в том числе ими самими, поэтому они обязаны обеспечить совместимость с С++. Из-за этого на практике в реальной жизни встретить код Си, который бы не компилировался компилятором С++, почти не реально.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , n00by, 10:44 , 12-Май-24 (203)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 17:16 , 12-Май-24 (205)
> Потому что имеющаяся стандартная библиотека плюсов неимоверно жирнаяМожно использовать С++, но не использовать его стандартную библиотеку или использовать её по минимуму. Я, например, так и делаю. Зато я получаю ООП, шаблоны, концепты, кучу других удобств, возможность использовать самые разные библиотеки С++ и прочее. Глупо не использовать эти возможности. > Лучше почитать стандарт и не делать противоречащих ему заявлений. Свои заявления я делаю, исходя из своего более чем 25-летнего опыта. Стандарт не является руководством к действию. В стандарте много чего нет, что есть в компиляторах, и что полезно, нужно и принципиально важно на практике, и это всё в совокупности и определяет выбор в пользу С++ и конкретных компиляторов. В реальности мы имеем дело не со стандартами, а с конкретными задачами, техническими системами, компиляторами, имеющими свои особенности, в которых что-то (не)реализовано, что-то добавлено, что-то (не)совместимо, что-то в определённых условиях (не)работает или имеет какие-то ограничения и особенности использования и т.д., и т.п. Можно цепляться к каким-то мелочам из последних стандартов Си, которые в реальности мало когда и кем используются, и, указывая на них, говорить, что теперь, с принятием этих стандартов, Си - это-таки не подмножество С++, а наконец-то отдельный самостоятельный язык, но на практике оказывается, что отличий и несовместимостей между компиляторами С++ гораздо больше, чем несостыковок между С++ и новыми стандартами Си, которые пытаются хоть как-то закрыть пробелы в нём, в результате чего через 20 лет из Си может вообще родиться новая реинкарнация "Си с классами" или "Objective C".
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 19:32 , 07-Май-24 (99)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 19:43 , 07-Май-24 (103) –3
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 02:17 , 08-Май-24 (143)
>> Только на С++ надо было, а не на С > Вкусовщина. Так же можно сказать, что надо было на Pascal или вообще на каком-нибудь Haskell.Не надо Pascal и тем более Haskell. C и С++ имеют максимальную переносимость под любой процессор и микроконтроллер, производительность, и для них много качественных компиляторов и библиотек на любой вкус.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 14:54 , 07-Май-24 (63) +2
Плохо, что геометрические шейдеры не реализованы. Без них трудновато обходиться. Можно, конечно, рассчитывать вершины самостоятельно, не используя вершинный и геометрический шейдеры, но тогда это уже будет более старый OpenGL.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 15:07 , 07-Май-24 (68)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Анонус, 16:30 , 07-Май-24 (80) +2
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , X512, 17:35 , 07-Май-24 (89)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 19:31 , 07-Май-24 (97) +1
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Аноним, 19:31 , 07-Май-24 (98)
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Ivan7, 04:11 , 08-Май-24 (150)
Как минимум в Mesa3D llvmpipe реализация OpenGL намного более полная вплоть до поддержки OpenGL 4.6, а PortableGL в лучшем случае обрезок от OpenGL 3.2, причём поддерживаются только вершинные и фрагментные шейдеры, и их придётся переписывать на С.
- Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си , Skullnet, 19:33 , 07-Май-24 (100)
|