LINUX.ORG.RU

C++20 и 2D Graphics

 ,


0

9

Исходник: https://isocpp.org/files/img/wg21-timeline-2017-11.png

Оказывается, все проблемы C++ уже решены, и теперь можно приступать к самой важной части системного языка - 2D графике.

Вопрос: что за безумие происходит в комитете C++? Зачем системному языку, да и вообще любому языку, 2D графика в std? Тем более, по слухам, они собираются использовать убогий cairo.

Из подобных языков приходит в голову только tcl/tk и red.

★★★★★

Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от Softwayer

Проблема в том, что если на гитхабике появится «наколеночный отстой», то никто не мешает ему на следующий день выпилиться или эволюционировать до нормальной библиотеки

Лол :-) Наколеночный отстой никогда не станет нормальной библиотекой :-) Ибо он изначально никому не нужен по определению :-) Ну кому нужен отстой? - Никому :-) Лол :-) Вот выпилиться на следующий день может всё что угодно, если автору надоест :-) И что тогда делать? :-)

в стандарте С++, то он там остаётся довольно долго.

Ну так правильно, это же промышленный язык, а не параша :-) Для промышленного языка нужны промышленные либы, в которых есть уверенность и для которых неприменимо «на следующий день выпилятся» :-) Лол :-)

anonymous
()

Клево, теперь студентам лабы со змейкой можно не на VBA давать, а на крестах

SR_team ★★★★★
()

C++20 и 2D Graphics

Чё они мелочатся, делали бы сразу std::qt.

ox55ff ★★★★★
()
Ответ на: комментарий от eao197

Проблема в том, что требования к 2d графике сильно изменись за эти 30-40 лет.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от eao197

Чтобы можно было без боли использовать внешние либы. Ах да, это же невозможно, ибо у каждой либы свои строки. С чего бы это?

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Проблема в том, что требования к 2d графике сильно изменись за эти 30-40 лет.

Это у вас профдеформация. В лучшем случае.

Чтобы можно было без боли использовать внешние либы.

Мы все еще говорим про системное программирование?

Ах да, это же невозможно, ибо у каждой либы свои строки.

Вы бы это, за пределы своего унылого Qt-шного мира выглянули бы. Удивились бы. Свои строки уже лет 15-20 никто не пишет.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Это у вас профдеформация.

Уж кто бы говорил.

Мы все еще говорим про системное программирование?

В системном программировании нельзя использовать сторонние либы?

Свои строки уже лет 15-20 никто не пишет.

Упс: https://github.com/abseil/abseil-cpp/tree/master/absl/strings

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Упс: https://github.com/abseil/abseil-cpp/tree/master/absl/strings

Ты это, внутрь посмотри, увидишь std::string. Разве что string_view у них свой, но то понятно, С++17 только вышел, потому они сделали такой класс, чтоб сейчас использовать, а потом заменить на стандартный.

anonymous
()
Ответ на: комментарий от RazrFalcon

Уж кто бы говорил.

Ну так скажите, что изменилось за 40 лет в обучении студентов принципам компьютерной графики? Ну вот ту же «змейку» сделать.

В системном программировании нельзя использовать сторонние либы?

А сами-то как думаете? Вы же первый на счет «системного языка» заикнулись. Вот какие либы вы будете использовать в драйверах?

Упс: https://github.com/abseil/abseil-cpp/tree/master/absl/strings

Вот именно, «упс». Именно свой класс строки там где?

eao197 ★★★★★
()
Ответ на: комментарий от xaizek

впилят самый минимум

Там (PDF) 15 страниц объявлений без комментариев... Объекты есть, но куча деталей (настройки шрифтов) раздувает всё. Может за три года одумались и уже меньше впилить хотят.

xaizek ★★★★★
()
Ответ на: комментарий от eao197

Ну так скажите, что изменилось за 40 лет в обучении студентов принципам компьютерной графики? Ну вот ту же «змейку» сделать.

Как я вижу на примере андроида, некоторые до сих пор рисуют как будто 40 лет назад, вызывая invalidate на каждый чих.

pftBest ★★★★
()

Зачем системному языку, да и вообще любому языку, 2D графика в std

Чтобы не использовать левые либы под говняными лицензиями

anonymous
()
Ответ на: комментарий от ThinkDifferent

для профессионального понимания языка поднадобился целый месяц
питон 3 я выучил за неделю

А еще смешные истории у тебя в запасе имеются?

trex6 ★★★★★
()

В развитии языков есть опасный момент. Когда язык становится достаточно сложным, с добавлением новых сложностей в стандарт языка преимущества от новшеств очевидны. Например, ораторы выше говорят «круто иметь 2D-графику в стандарте» или «эллиптические интегралы и функции Бесселя». А обратная сторона медали - усложнение языка, повышение порога вхождения и поддержки кода на нём - не так заметны. Стандарт и так большой, ну добавили к нему ещё чутка. К слову говоря, в C++17 стандарт 1600 страниц. И получается замкнутый круг - стандарт постоянно растёт, усложняется и язык сам себя медленно закапывает.

C++ уже давно перешёл разумную границу сложности. Сейчас зачастую изучить новый язык с нуля проще, чем, например, изучить новый стандарт С++. Для сравнения - вся спека на Go занимает 100 страниц, а спека на C++ с 14 на 17 увеличилась на 200 страниц. Местная школота (например, ThinkDifferent) считает, что она изучила язык за месяц. Это говорит о том, что за месяц человек даже не понял размаха языка и объёма материала, который он не знает. Создаётся инфантильное впечатление, что знаешь всё.

Со временем менеджеры поймут, что писать на том же Go гораздо эффективнее. Поймут, что найти программиста, который действительно хорошо знает современный стандарт C++ очень сложно и дорого. Так что часть пирога откусит Go, потом ещё Rust разует варежку и глядишь лет через 5 такие новости про стандарт С++ уже будут всем безразличны.

anonymous
()
Ответ на: комментарий от anonymous

Для сравнения - вся спека на Go занимает 100 страниц,

И там есть описание стандартная библиотеки? Т.е. если нет, то это сравнение мягко говоря теплого с мягким.

anonymous
()
Ответ на: комментарий от ThinkDifferent

Мне для профессионального понимания языка поднадобился целый месяц.

Это потому, что вы изучали его на переменах. А если бы после уроков до самого вечера, то за неделю бы освоили?

andreyu ★★★★★
()
Ответ на: комментарий от eao197

https://stdcpp.ru/ В качестве отправной точки самое оно.

Правильно, вон А. Фокин не сидел на ЛОРе, а пропихивал свои хотелки в стандарт. Более того, пропихнул и рассказал всем желающим как это можно сделать.

andreyu ★★★★★
()
Ответ на: комментарий от RazrFalcon

Есть такая страшная штука, как отрисовка шрифтов. Для неё нужна тонна зависимостей,

stb_truetype.

То есть сходу появляется зависимость от PNG, а как максимум ещё и JPG/WEBP/SVG/PDF.

stb_image.

Но да, Шону Барету некогда на ЛОРе трепаться, он просто делает то, что ему нужно.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Правильно, вон А. Фокин не сидел на ЛОРе, а пропихивал свои хотелки в стандарт. Более того, пропихнул и рассказал всем желающим как это можно сделать.

Более того, он теперь ездит по конференциям и рассказывает про очередное усложнение языка на 200 страниц, выставляя это этаким достижением. Скажем ему спасибо, быстрее закопает плюсы.

anonymous
()
Ответ на: комментарий от anonymous

Более того, он теперь ездит по конференциям и рассказывает про очередное усложнение языка на 200 страниц, выставляя это этаким достижением.

На конференциях он рассказывает о процессе пропихивания своих хотелок в стандарт.

И это не усложнение языка, а расширение стандартной библиотеки. Не уверен, что найдется много разработчиков, знающих всю стандартную библиотеку целиком. Но это не мешает решать поставленную задачу.

andreyu ★★★★★
()
Ответ на: комментарий от RazrFalcon

А libcairo зависит от libpango, причем зависимость закольцована, собирать приходится за два прохода. И они обе зависят от glib и за ней там уева гора остального. Практически gnome базед дистр.

Куда бечь? (У tcc только x86, а с интелов тоже хочется бечь)

anonymous
()
Ответ на: комментарий от andreyu

На конференциях он рассказывает о процессе пропихивания своих хотелок в стандарт.
И это не усложнение языка, а расширение стандартной библиотеки.

Видимо, ты плохо знаком с творчеством уважаемого Фокина. И почитай про новшества в C++17 в перерывах от написания клонов игрулек для смартфонов. Потом продолжим разговор.

anonymous
()
Ответ на: комментарий от anonymous

А libcairo зависит от libpango, причем зависимость закольцована, собирать приходится за два прохода. И они обе зависят от glib

Ты либо троллишь, либо не умеешь собирать, libcairo прекрасно собирается без pango и glib.

anonymous
()
Ответ на: комментарий от anonymous

А обратная сторона медали - усложнение языка, повышение порога вхождения и поддержки кода на нём - не так заметны.

Лол :-) Такой умный, так всё по абзацам разложил, прям молодец :-) Лол :-) Но с твоих красивых слов не понятно, каким образом добавление 2d графики в стандарт цепепе отразится на сложности цепепе? :-) Ну будет ещё один-два-три подраздела в ISO/IEC 14882, и что, возрастёт сложность? :-)

И получается замкнутый круг - стандарт постоянно растёт, усложняется и язык сам себя медленно закапывает.

Как раз именно за счёт пересмотра и активных доработок стандарта цепепе имеет шанс выжить и стать действительно лучше :-) Цепепе можно было бы развивать ещё быстрее и смелее, без этих заседаний десятилетиями и думами над каждой закорючкой :-)

Сейчас зачастую изучить новый язык с нуля проще, чем, например, изучить новый стандарт С++.

Это всегда так было :-) Хоть даже 20 лет назад, хоть сейчас :-) Сопоставимым по сложности с цепепе может быть только какой-нибудь Коммон Лисп :-)

Со временем менеджеры поймут, что писать на том же Go гораздо эффективнее.

А это да :-) Go - отличный язык :-)

anonymous
()
Ответ на: комментарий от anonymous

Это первый проход. Его результат не умеет рисовать текст.

Умеет. И для этого ему нужны только fontconfig и freetype (в случае Linux).

anonymous
()
Ответ на: комментарий от RazrFalcon

Он на сишке.

Это же здорово, никакого шаблонного бустоада, нет классов для строк и еще половины std, нет графоманских абстракций ото всего и вся. Со среднестатистической сишной библиотекой в С++ работать гораздо приятнее, чем со среднестатистической плюсовой - заинкапуслировал ее как нравится, и пользуйся

annulen ★★★★★
()
Ответ на: комментарий от ThinkDifferent

C++ слишком сложен, а его еще усложняют. Мне для профессионального понимания языка поднадобился целый месяц. Для сравнения питон 3 я выучил за неделю

да ты настоящий крендель, давече даже сам страуструп признавался что он не знает современный с++,
пацаны из группы 21, говорили что после того как побывали на заседания комитета, свое знание с++ после заседания поделили как минимум на два,
я сам использую плюсы более 10 лет, и не готов вот прям так сходу заявлять что я его знаю
а ты все за месяцок освоил, красава, подели свои знания на 0, будет более правдивее

anonymous
()
Ответ на: комментарий от ThinkDifferent

Мне для профессионального понимания языка поднадобился целый месяц.

Для сравнения питон 3 я выучил за неделю

Ахтунг! В треде замечен гений с эйдетической памятью!

Dron ★★★★★
()
Ответ на: комментарий от anonymous

Видимо, ты плохо знаком с творчеством уважаемого Фокина.

Ну так расскажите о его творчестве, если вы специалист в этом вопросе.

И почитай про новшества в C++17 в перерывах от написания клонов игрулек для смартфонов.

Что конкретно я должен прочитать.

Потом продолжим разговор.

Это не разговор, а попытка оправдать свою фразу «про очередное усложнение языка на 200 страниц».

andreyu ★★★★★
()
Ответ на: комментарий от RazrFalcon

Как минимум не хуже растовских.

Каких именно? Их там 4 вида.

Deleted
()

к щастью это приведет к откалыванию от С++ коммюнити новой порции консервативных дегенератов, которые на корню не приемлют нововведения. счастливого пути им назад в прошлое.

x0r ★★★★★
()

C++20 и 2D Graphics

а при чем тут C++20, простите? на картинке же ясно нарисовано что рассматривать предложение начнут сильно позже. У Саттера в блоге тоже никакой связи между ЦПП20 и 2д-графикой в отчетах о встречах комитета не прослеживается. Ты даже диаграмму распарсить не смог, а уже слюнями забрызгал пол ЛОРа :) Кому ты на hire нужен такой гитхабер)

ну, давай, попробуй распарсить в оригинале: https://isocpp.org/std/status

not_rj45
()

Хотят как лучше, получится как всегда)) мне вон хватает c++03 больше 8 лет его юзаю и то переодически в ногу стреляю. Как по мне,то 2д не очень то надо, ввиду того что как писали выше это нужно будет гуи... Пилить свой гуи,когда есть qt,gtk и прочее, как минимум не рационально. Вон буст сделали, им пользоваться невозможно нормально с его cpp головного мозга. Но пусть пилят, все лучше чем будет на месте стоять.

jo_b1ack ★★★★★
()
Ответ на: комментарий от jo_b1ack

мне вон хватает c++03 больше 8 лет

некоторым вон фортрана все еще хватает

Как по мне,то 2д не очень то надо

тебе в 2017м одиннадцатые не нужны, куда ты на графику-то замахиваешься :) сиди в своем болоте дальше

Пилить свой гуи,когда есть qt,gtk и прочее, как минимум не рационально

когда будешь вылезать из своего протухшего загашника, первым делом прочитай отличие гуя от 2д-графики

not_rj45
()
Ответ на: комментарий от jo_b1ack

мне вон хватает c++03 больше 8 лет его юзаю и то переодически в ногу стреляю.

Открыть вам секрет? Новые стандарты C++ как раз и делают для того, чтобы стрелять было сложнее.

eao197 ★★★★★
()
Ответ на: комментарий от RazrFalcon

Как вообще можно считать нормальными строки, которые представляют собой просто набор байт без указания кодировки?

А как будто в std есть функции для работы с кодировкой.

Deleted
()
Ответ на: комментарий от RazrFalcon

stb_truetype
stb_image

Просто лол.

Просто работает и выполняет свою задачу. А вы продолжайте и дальше лолкать, как дурачок.

andreyu ★★★★★
()
Ответ на: комментарий от Uter

Только такое, что лучше бы не было

Ну, чтоб перегнать u8 в u16, например, вполне хватает.

WAIT, O SHI
deprecated in C++17

«The entire header <codecvt> (which does not contain the class codecvt!) is deprecated». Это про wstring_convert and wbuffer_convert.

anonymous
()
Ответ на: комментарий от not_rj45

когда будешь вылезать из своего протухшего загашника, первым делом прочитай отличие гуя от 2д-графики

я не сказал что гуй и 2д это одно и тоже, а всего лишь то что для вывода графики нужен конечный контекст, и его тоже придется городить.

тебе в 2017м одиннадцатые не нужны, куда ты на графику-то замахиваешься :) сиди в своем болоте дальше

Так то это пройденный этап... Все «игры мечты» были писаны ещё в универе в 2005. И я вполне представляю что такое 2д графика и 3д.

Люди делятся на 2 категории: одни квакают,другие делают. Вы из каких будете?

jo_b1ack ★★★★★
()
Ответ на: комментарий от eao197

Открыть вам секрет? Новые стандарты C++ как раз и делают для того, чтобы стрелять было сложнее.

Не спорю. Но разве стало меньше самоубийств?)))

jo_b1ack ★★★★★
()
Ответ на: комментарий от jo_b1ack

Если вы про «выстрелы в ногу», то чем современнее версия C++, тем меньше этих самых выстрелов. Но если вы уперто сидите на C++03, то вряд ли вы поймете.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Но если вы уперто сидите на C++03, то вряд ли вы поймете.

Я не против новых стандартов, но для тех задач,в которых я использую кресты мне хватает и 03, но не прочь и 11 и 17 поюзать если понадобится

jo_b1ack ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.