Re[23]: Упоротость С++
От: Skorodum Россия  
Дата: 08.09.23 07:06
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Ну есть SkiaSharp

Судя по описанию это всего-лишь обертка, которая не предоставляет более высокоуровневых элементов и средств позиционирования этих элементов. Делать GUI c помощью этой технологии дорого, но для игр или чего-то подобного, наверное, в самый раз.
Re[24]: Упоротость С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.09.23 07:20
Оценка:
Здравствуйте, Skorodum, Вы писали:

S>>Ну есть SkiaSharp

S>Судя по описанию это всего-лишь обертка, которая не предоставляет более высокоуровневых элементов и средств позиционирования этих элементов. Делать GUI c помощью этой технологии дорого, но для игр или чего-то подобного, наверное, в самый раз.

Для игр используется Unity.

OpenGL не используется напрямую в Unity. Вместо этого Unity использует свой собственный графический движок, который может работать на различных графических API, включая OpenGL.

https://qaa-engineer.ru/kak-ispolzovat-opengl-v-unity/
и солнце б утром не вставало, когда бы не было меня
Re[20]: Упоротость С++
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.09.23 08:45
Оценка:
Здравствуйте, Skorodum, Вы писали:

S>Это все в прошлом. Винда сама использует несколько разных стилей. И ничего.

Вот именно.
S>И еще миллион других вещей: локализация, ориентация лево-право, поддержка нескольких мониторов и т.п.
Я так понимаю, примерно 990000 из этого миллиона — windows-specific, а остальные не особо задуряются. Можно, к примеру, сравнить поддержку локалей в MS SQL Server и в постгресе.

S>>Когда речь идёт о какой-нибудь трёхмерщине, от этих аспектов проку никакого нет, т.к. ни в одной платформе нет встроенной поддержки. Всё, что такому гую нужно от платформы — какой-то канвас, куда мы будем лить свою картинку. Например, через OpenGL.

S>Так где примеры кросс-платформенных канвасов с поддержкой OpenGL? Я вот знаю Qt
Я не очень понял вопрос. OpenGL сам по себе ни к какой платформе не привязан.
Платформенно-специфичная оболочка, которая создаёт окно и привязывает к нему канвас OpenGL, будет не намного длиннее Hello World. А вот тот самый код, который рисует CAD-проект на этом канвасе, умеет на ходу подсвечивать выделенные узлы/рёбра/грани/объекты, и взаимодействовать с пользователем, будет платформенно-независимым в полный рост.

То, что примеров таких приложений нету, связано вовсе не с технологической невозможностью. А как раз с тем, что существующий софт в этой области стоит дороже лицензий на ОС; поэтому вместо того, чтобы искать CAD для запуска на любимой операционке, люди ищут операционку для запуска любимого CAD.

Технологически, сделать кроссплатформенным какой-нибудь тупейший энтерпрайз (те самые формы с сотнями полей) значительно сложнее, чем какой-нибудь Doom, ездящий на OpenGL.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[9]: Упоротость С++
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.09.23 08:56
Оценка:
Здравствуйте, SkyDance, Вы писали:
SD>Более того, байт-код — хороший вариант для last minute optimization, когда он компилируется в машинный код непосредственно на той машине, где предполагается исполнение.
Даже необязательно на той же машине. MSVC++ при всей нативности компилирует в IR для того, чтобы применить LTCG на этапе линковки.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: Упоротость С++
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.09.23 09:01
Оценка: +1
Здравствуйте, so5team, Вы писали:
S>Код на C++ сразу же сталкивается, например, с размером char-а, int-а и void*, которые на разных платформах могут быть слишком разные (вплоть до того, что sizeof(char) == sizeof(int) и в char 32 бита). Тогда как для Java или C# есть песочница с некоторыми гарантиями от JVM/.NET
Это не песочница, это просто отражение того факта, что авторы этих экосистем думали немножко шире, чем авторы С++. Так-то, IntPtr в C# тоже фиксированного размера не имеет и зависит от платформы.
Так что дело не в песочнице, а просто в том, что язык лучше продуман.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[11]: Упоротость С++
От: so5team https://stiffstream.com
Дата: 08.09.23 09:23
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>>Код на C++ сразу же сталкивается, например, с размером char-а, int-а и void*, которые на разных платформах могут быть слишком разные (вплоть до того, что sizeof(char) == sizeof(int) и в char 32 бита). Тогда как для Java или C# есть песочница с некоторыми гарантиями от JVM/.NET

S>Это не песочница, это просто отражение того факта, что авторы этих экосистем думали немножко шире, чем авторы С++.

Надо полагать именно поэтому .NET спустя два десятка лет своего безоговорочного доминирования представлен на значительно большем количестве платформ, чем C++. Или...?

S>Так что дело не в песочнице, а просто в том, что язык лучше продуман.


Завод по выпуску легковых автомобилей продуман лучше, чем горнообогатительный комбинат.
Сравнение такого же качество.
Re[12]: Упоротость С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.09.23 09:55
Оценка:
Здравствуйте, so5team, Вы писали:

S>>>Код на C++ сразу же сталкивается, например, с размером char-а, int-а и void*, которые на разных платформах могут быть слишком разные (вплоть до того, что sizeof(char) == sizeof(int) и в char 32 бита). Тогда как для Java или C# есть песочница с некоторыми гарантиями от JVM/.NET

S>>Это не песочница, это просто отражение того факта, что авторы этих экосистем думали немножко шире, чем авторы С++.

S>Надо полагать именно поэтому .NET спустя два десятка лет своего безоговорочного доминирования представлен на значительно большем количестве платформ, чем C++. Или...?

Ну на многих. Тот же Tizen. То есть на основных платформах представлен.
S>>Так что дело не в песочнице, а просто в том, что язык лучше продуман.

S>Завод по выпуску легковых автомобилей продуман лучше, чем горнообогатительный комбинат.

S>Сравнение такого же качество.
Что имеется ввиду под продуман? Сравнивать апельсины с яблоками.
А вот языки сравнивать можно. Опять же в .Net ты так же можешь использовать указатели, использовать интероп.
Опять бОльшая проблема в С++ это макросы и шаблоны. В .Net это Source Generator и Generic. В том числе и Generic math
Вот их и надо сравнивать.
и солнце б утром не вставало, когда бы не было меня
Re[13]: Упоротость С++
От: so5team https://stiffstream.com
Дата: 08.09.23 10:10
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>Надо полагать именно поэтому .NET спустя два десятка лет своего безоговорочного доминирования представлен на значительно большем количестве платформ, чем C++. Или...?

S> Ну на многих. Тот же Tizen. То есть на основных платформах представлен.

О том и речь, что .NET два десятка лет тотально доминировал и обошел C++ по количеству поддерживаемых платформ. Это же очевидно. А все потому, что "авторы этих экосистем думали немножко шире".

S>>>Так что дело не в песочнице, а просто в том, что язык лучше продуман.


S>>Завод по выпуску легковых автомобилей продуман лучше, чем горнообогатительный комбинат.

S>>Сравнение такого же качество.
S> Что имеется ввиду под продуман?

Вопрос к Sinclair.

S> Сравнивать апельсины с яблоками.


Спросите у Sinclair как ему это удается. Наверняка найдутся критерии, типа калорийности.
Собственно, вы тем же путем и пытаетесь идти.
Re[14]: Упоротость С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.09.23 10:13
Оценка:
Здравствуйте, so5team, Вы писали:

S>> Сравнивать апельсины с яблоками.


S>Спросите у Sinclair как ему это удается. Наверняка найдутся критерии, типа калорийности.

S>Собственно, вы тем же путем и пытаетесь идти.
Ты почему то проигнорировал

А вот языки сравнивать можно. Опять же в .Net ты так же можешь использовать указатели, использовать интероп.
Опять бОльшая проблема в С++ это макросы и шаблоны. В .Net это Source Generator и Generic. В том числе и Generic math
Давай эти парадигмы и сравнивать.
и солнце б утром не вставало, когда бы не было меня
Re[15]: Упоротость С++
От: so5team https://stiffstream.com
Дата: 08.09.23 10:26
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Ты почему то проигнорировал


Это вы не дали себе труда вдуматься.

S>А вот языки сравнивать можно.


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

Найти критерии для сравнения, конечно же, можно. Тот же синтаксический оверхэд.

Но без уточнения списка критериев фраза "лучше продуман" настолько же достоверна как и высказывание "завод по производству легковых автомобилей лучше продуман чем горнообогатительный комбинат". Ну или "апельсины лучше помидоров". Ну или как-то еще из этой же оперы.
Re[16]: Упоротость С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.09.23 10:34
Оценка:
Здравствуйте, so5team, Вы писали:

S>> Ты почему то проигнорировал


S>Это вы не дали себе труда вдуматься.


Ну дык объясни чем шаблоны лучше дженериков?
Или SG хуже шаблонов

Шаблоны это кодогенераторы для каждого типа ибо в основном там присутствует перегрузка операторов. И соответственно, нет никакого интеллисенса.
Дженерики это обобщения, но с ограничениями. Для использования операторов ввели Generic math

То же можно было сделать и с шаблонами. Может уже сделли?
Опять же SG против макросов. В студии они уже видны в интеллисенсе итд.
Проблема у С++ и со множеством компиляторов, с кучей настроек итд.
и солнце б утром не вставало, когда бы не было меня
Re[17]: Упоротость С++
От: so5team https://stiffstream.com
Дата: 08.09.23 10:40
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, so5team, Вы писали:


S>>> Ты почему то проигнорировал


S>>Это вы не дали себе труда вдуматься.


S> Ну дык объясни чем шаблоны лучше дженериков?


Слушайте, это может быть не заметно, но я реально не люблю грубить людям. Однако, когда они своей глупостью (или намеренным нежеланием думать) отнимают мое время, мне сложно сдержаться. Поэтому попробую еще раз, для умственно отсталых. Если не дойдет, то извините, больше тратить время на убогих не буду:

Когда кто-то говорит просто "язык X лучше продуман чем язык Y" без перечня конкретных критериев, по которым производится сравнение, это высказывание аналогично тем сравнениям между заводами, которое я уже приводил выше.

У меня нет желания сравнивать C++ и C# по каким-то конкретным критериям.

Я просто говорю, что высказывание "язык X лучше продуман чем язык Y" практически бессмысленно без кучи уточнений. Вот и все.

Если вы хотите, чтобы вас убедили в том, что генерики в C# лучше, чем шаблоны в C++, то вы не по адресу. Равно как и про убеждение в обратном.
Re[18]: Упоротость С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.09.23 10:46
Оценка:
Здравствуйте, so5team, Вы писали:



S>У меня нет желания сравнивать C++ и C# по каким-то конкретным критериям.


S>Я просто говорю, что высказывание "язык X лучше продуман чем язык Y" практически бессмысленно без кучи уточнений. Вот и все.


S>Если вы хотите, чтобы вас убедили в том, что генерики в C# лучше, чем шаблоны в C++, то вы не по адресу. Равно как и про убеждение в обратном.

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

Пример TypeScript где есть аннотация типов, не влияющая но компиляцию, но использующаяся для интеллисенсе и проверки кода.
Или самый лучший редактор для C++ это NotePad++
и солнце б утром не вставало, когда бы не было меня
Отредактировано 08.09.2023 10:47 Serginio1 . Предыдущая версия .
Re[15]: Упоротость С++
От: rudzuk  
Дата: 08.09.23 11:00
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Опять бОльшая проблема в С++ это макросы и шаблоны. В .Net это Source Generator и Generic. В том числе и Generic math

S> Давай эти парадигмы и сравнивать.

Да-да, костыли лучше чем ноги!

avalon/3.0.2
Re[16]: Упоротость С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.09.23 11:01
Оценка:
Здравствуйте, rudzuk, Вы писали:

S>> Опять бОльшая проблема в С++ это макросы и шаблоны. В .Net это Source Generator и Generic. В том числе и Generic math

S>> Давай эти парадигмы и сравнивать.

R>Да-да, костыли лучше чем ноги!


R>Image: medium


Я бы понял, если бы назвал сахар. С сахаром лучше, чем без него.
Как и без костылей хромому.
и солнце б утром не вставало, когда бы не было меня
Re[17]: Упоротость С++
От: rudzuk  
Дата: 08.09.23 11:14
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> R>Да-да, костыли лучше чем ноги!


S> R>Image: medium


S> Я бы понял, если бы назвал сахар. С сахаром лучше, чем без него.

S> Как и без костылей хромому.

Сахар не добавляет функциональности, просто сокращает писанину. Генерикматх именно костыли к этим вашим "продуманным" хромым генерикам.
avalon/3.0.2
Re[18]: Упоротость С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.09.23 11:23
Оценка:
Здравствуйте, rudzuk, Вы писали:

S>> R>Да-да, костыли лучше чем ноги!


S>> R>Image: medium


S>> Я бы понял, если бы назвал сахар. С сахаром лучше, чем без него.

S>> Как и без костылей хромому.

R>Сахар не добавляет функциональности, просто сокращает писанину. Генерикматх именно костыли к этим вашим "продуманным" хромым генерикам.

Я вот привел пример с аннотацией типов в TS. Выхлоп огромный и все переходят на него. И это отнюдь не костыли.
Пришпондорить ограничения к шаблонам не проблема, зато наслаждение от интеллисенса и предупреждения от ошибок в полный рост.
Опять же на этапе отладки дженерики,а в релизе шаблоны!
и солнце б утром не вставало, когда бы не было меня
Re[12]: Упоротость С++
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.09.23 11:27
Оценка: +2
Здравствуйте, so5team, Вы писали:

S>Надо полагать именно поэтому .NET спустя два десятка лет своего безоговорочного доминирования представлен на значительно большем количестве платформ, чем C++. Или...?

При чём тут доминирование и количество платформ? Вы же только что писали, что работает он ровно на одной платформе.
Теперь, вижу, наступает понимание, что это примерно такая же чушь, как считать, что С++-ная программа работает на "платформе С++".
И С++ покрыл больше платформ вовсе не потому, что написать полноценный компилятор С++ под какую-нибудь экзотическую архитектуру сильно проще, чем CLR, а, собсно, потому, что для некоторых платформ С# бесполезен.
А компиляция туда С++, как правило, достигается ровно тем же трюком, что и для C# — фронт-енд у всех один и тот же, а для новой железки достаточно написать бэкенд для LLVM.

S>Завод по выпуску легковых автомобилей продуман лучше, чем горнообогатительный комбинат.

S>Сравнение такого же качество.
Разные языки программирования ставят перед собой разные задачи, поэтому в некоторых аспектах их сравнивать бессмысленно. Но это не означает, что надо отказываться сравнивать их в сравнимых аспектах.
Например, на модульность в С++ исторически был положен болт, что не могло не сказаться на качестве итоговых решений на его основе.
И единственность платформы на эту модульность никак не влияет — тот же Паскаль поддерживает модули на порядок лучше плюсов, несмотря на свою нативность.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: Упоротость С++
От: so5team https://stiffstream.com
Дата: 08.09.23 11:42
Оценка: :)
Здравствуйте, Sinclair, Вы писали:

S>>Надо полагать именно поэтому .NET спустя два десятка лет своего безоговорочного доминирования представлен на значительно большем количестве платформ, чем C++. Или...?

S>При чём тут доминирование и количество платформ?

При том, что якобы кто-то думал ширшее. Может и думали, итог-то какой спустя 20+ лет? Усех забороли, полагаю?

S>Вы же только что писали, что работает он ровно на одной платформе.


C# на одной -- на .NET.

Но перечитайте мое предложение, я там не про C#, а про .NET.

S>А компиляция туда С++, как правило, достигается ровно тем же трюком, что и для C# — фронт-енд у всех один и тот же, а для новой железки достаточно написать бэкенд для LLVM.


Только вот .NET -- это не только и не столько про конкретный набор инструкций. Или тот же GC -- это уже не часть платформы .NET?

S>Разные языки программирования ставят перед собой разные задачи, поэтому в некоторых аспектах их сравнивать бессмысленно.


Надо же, проблеск сознания. Внезапно.

S>Например, на модульность в С++ исторически был положен болт, что не могло не сказаться на качестве итоговых решений на его основе.


Все это досужие переливания из пустого в порожнее без учета исторического контекста и достигнутых результатов.
Отредактировано 08.09.2023 11:50 so5team . Предыдущая версия .
Re[14]: Упоротость С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.09.23 11:47
Оценка:
Здравствуйте, so5team, Вы писали:



S>Только вот .NET -- это не только и не столько про конкретный набор инструкций. Или тот же GC -- это уже не часть платформы .NET?

Например компиляция в AOT использует С++ компилятор. Там же присутствует и GC. Где там платформа .NET?
Тот же Unity с его https://unityhub.ru/manual/IL2CPP
и солнце б утром не вставало, когда бы не было меня
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.