Упоротость С++
От: dmitry_npi Россия  
Дата: 16.08.23 06:24
Оценка: +14 -2 :))) :)
По мотивам http://rsdn.org/forum/cpp/8181719.1
Автор: Sm0ke
Дата: 28.01.22


S>Вот они сделали, что std::strong_ordering::equal и прочие нельзя было запихнуть в switch case.

S>Но это не проблема, пишем враппер!

/*много устрашающего кода*/

Иногда я думаю, не зря ли я ушёл в C# из C++, всё-таки проприетарщина, а у нас импортозамещение, санкции и всё такое... Но как гляну на это, и думаю — нет, не зря. Плюсовики, вы там совсем свихнулись, что ли? Нельзя это написать как-то попроще? Зачем это вообще? Как потом это разбирать пришедшему на проект?

Я понимаю, язык системный, мощный, есть низкоуровневые возможности. И это всё реально нужно, я понимаю.
Но его и так в край усложнили за последние 20 лет, зачем усугублять?
Ладно бы это был какой-нибудь Немерле, где можно самому создавать синтаксические конструкции, там для этого есть средства. Но тут... лавкрафтовское шаблонное невыразимое нечто — это что, способ самовыражения? Ок, но только не в продакшен.

Извините за сумбур, что-то пригорело внезапно.


Атмосферная музыка — www.aventuel.net
Отредактировано 16.08.2023 6:34 dmitry_npi . Предыдущая версия .
Re: Упоротость С++
От: Нomunculus Россия  
Дата: 16.08.23 06:28
Оценка:
Здравствуйте, dmitry_npi, Вы писали:

Да, треш. И разбираться и изучать это говно нет абсолютно никакого желания.
Re: Упоротость С++
От: Sheridan Россия  
Дата: 16.08.23 06:33
Оценка: +8
Здравствуйте, dmitry_npi, Вы писали:

_>Плюсовики, вы там совсем свихнулись, что ли? Нельзя это написать как-то попроще?

Можно, пиши.
Matrix has you...
Re: Упоротость С++
От: Разраб  
Дата: 16.08.23 06:55
Оценка: +1
Здравствуйте, dmitry_npi, Вы писали:

_>По мотивам http://rsdn.org/forum/cpp/8181719.1
Автор: Sm0ke
Дата: 28.01.22


Глянул тут на модули с++20 и поразился как похож стал код на dlang.org
Лучший с++ по -сути и запилен плюсовиком.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Упоротость С++
От: Vermicious Knid  
Дата: 16.08.23 07:07
Оценка: +2
Здравствуйте, dmitry_npi, Вы писали:

_>/*много устрашающего кода*/


Код не самый красивый — факт, мне особенно не нравится обилие тернарных операторов.
Но ничего сложного или устрашающего не увидел, при том что последний раз писал на C++ лет 6-7 назад.

_>Иногда я думаю, не зря ли я ушёл в C# из C++, всё-таки проприетарщина, а у нас импортозамещение, санкции и всё такое...


Каждому свое. Я вот задумал писать некий софт для которого нужен либо C++, либо Rust, без вариантов.
Поковырял Rust, в целом ничего, но на C++ намного привычнее и удобнее.

_>Извините за сумбур, что-то пригорело внезапно.


Причем абсолютно на ровном месте. C++ давно известен гораздо более монструозными конструкциями на шаблонах и макросах.
Re: Упоротость С++
От: Alekzander  
Дата: 16.08.23 07:10
Оценка: +2
Здравствуйте, dmitry_npi, Вы писали:

_>По мотивам http://rsdn.org/forum/cpp/8181719.1
Автор: Sm0ke
Дата: 28.01.22


S>>Вот они сделали, что std::strong_ordering::equal и прочие нельзя было запихнуть в switch case.

S>>Но это не проблема, пишем враппер!

_>/*много устрашающего кода*/


_>Иногда я думаю, не зря ли я ушёл в C# из C++, всё-таки проприетарщина, а у нас импортозамещение, санкции и всё такое... Но как гляну на это, и думаю — нет, не зря. Плюсовики, вы там совсем свихнулись, что ли? Нельзя это написать как-то попроще? Зачем это вообще? Как потом это разбирать пришедшему на проект?


Это как российские законы — сложность, корявость и общая невменяемость компенсируются необязательностью применения. Большая часть полезного сиплюсплюсного кода пишется на "си с классами", в крайнем случае с использованием каких-нибудь QString (потому, что стандартная библиотека совершенно идиотская). Зато большая часть шума производится любителями из пустого переливать в порожнее (в лучшем случае) или запутывать простую мысль до неузнаваемости (в худшем).

До смешного доходит. В одном коллективе, я помню, на пять прикладников наняли человека, который занимался только сиплюсплюсом. "Вася, ты чем занимаешься?" "Соединяюсь с сервером на сиплюсплюсе". "А ты, Петя?" "А я рисую графики на сиплюсплюсе". "А ты, Миша?" "А я просто сиплюсплюсом". Я не вдавался в детали, но там, кажется, надо было навертеть как можно больше такого ужаса, как по ссылке выше. И заставить всех им пользоваться. Закончилось тем, что его уволили нахрен. Всё-таки, здравый смысл восторжествовал. Но вот то, что ЯП запрограммировал их на то, чтобы нанять человека, который по штатному расписанию не делал вообще ничего полезного, это многое говорит о носителях языка.
Отредактировано 16.08.2023 9:07 Alekzander . Предыдущая версия . Еще …
Отредактировано 16.08.2023 7:18 Alekzander . Предыдущая версия .
Re: Упоротость С++
От: cppguard  
Дата: 16.08.23 07:20
Оценка: +2 -1
Здравствуйте, dmitry_npi, Вы писали:

_>Извините за сумбур, что-то пригорело внезапно.


C++ чем-то похож на государство — проблема не столько в правительстве (комитете), сколько в людях (программистах). Мой опыт говорит, что момент "всё плохо" наступает, если есть одно из трех:
1. Попытка использовать все возможности С++.
2. Попытка использовать новые возможности там, где надобности в них не было.
3. Попытка писать на С++ как на скриптовых языках и делать вид, что ничего не происходит.

В действительности, если воспринимать С++ как Си-с-классами, где после 2011-го ещё и можно не вызывать new и malloc (ну, почти), и очень-очень аккуратно использовать что-то из STL, а в сторону third-party смотреть только под страхом смерти, то оказывается, что это таки неплохой язык. Я честно топил на Си, пока активно коммитил в открытые проекты, но потом признал очевидное — С++ безопаснее для прикладных проектов, если применять его с умом. Для системных я бы всё же выбрал Си. А то, что комитет состоит из старых пердунов и засланцев компаний-гигантов, это и без микроскопа видно.
Re: Упоротость С++
От: Shmj Ниоткуда  
Дата: 16.08.23 07:40
Оценка: -2 :)))
Здравствуйте, dmitry_npi, Вы писали:

_>Иногда я думаю, не зря ли я ушёл в C# из C++, всё-таки проприетарщина, а у нас импортозамещение, санкции и всё такое... Но как гляну на это, и думаю — нет, не зря. Плюсовики, вы там совсем свихнулись, что ли? Нельзя это написать как-то попроще? Зачем это вообще? Как потом это разбирать пришедшему на проект?


Ну и как ты напишешь на C# библиотеку, которую можно использовать везде: на Windows, MacOS, Linux, iOS, Android, WebAssembly?

Тут же не в том дело удобно или нет. На С++ это можно сделать и реально делают. На C# как бы ты ни извращался — ну просто не получится

_>Я понимаю, язык системный, мощный, есть низкоуровневые возможности. И это всё реально нужно, я понимаю.

_>Но его и так в край усложнили за последние 20 лет, зачем усугублять?

С++ состоит из 2 разных языков:

  1. С++ времени компиляции. Он не такой большой, слов не так много, но тоже весьма полноценный и сложный язык.
  2. С++ времени исполнения.

Попытка верить что С++ один цельный язык — приводит к когнитивному диссонансу и отторжению. Просто сразу разделяйте для себя — это один язык, это другой язык. Они по сути не особо то и пересекаются.
Re[2]: Упоротость С++
От: CreatorCray  
Дата: 16.08.23 07:45
Оценка:
Здравствуйте, Vermicious Knid, Вы писали:

VK>Код не самый красивый — факт, мне особенно не нравится обилие тернарных операторов.

Это всё можно было написать более читабельно, да.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re: Упоротость С++
От: Dair Россия https://dair.spb.ru
Дата: 16.08.23 07:47
Оценка: +2
Здравствуйте, dmitry_npi, Вы писали:

_>Иногда я думаю, не зря ли я ушёл в C# из C++, всё-таки проприетарщина, а у нас импортозамещение, санкции и всё такое... Но как гляну на это, и думаю — нет, не зря. Плюсовики, вы там совсем свихнулись, что ли? Нельзя это написать как-то попроще? Зачем это вообще? Как потом это разбирать пришедшему на проект?


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

Можно писать на C++ (и не на "C с классами") лаконично и понятно, и без вот этого всего.
Re[2]: Упоротость С++
От: so5team https://stiffstream.com
Дата: 16.08.23 07:48
Оценка: +1
Здравствуйте, cppguard, Вы писали:

C>В действительности, если воспринимать С++ как Си-с-классами, где после 2011-го ещё и можно не вызывать new и malloc (ну, почти), и очень-очень аккуратно использовать что-то из STL, а в сторону third-party смотреть только под страхом смерти, то оказывается, что это таки неплохой язык.


А если не ограничивать себя "Си-с-классами", то выяснится, что после 2011-го это вообще во многом другой язык, а после 2017-го он стал более чем неплохим.

C>Я честно топил на Си, пока активно коммитил в открытые проекты, но потом признал очевидное — С++ безопаснее для прикладных проектов, если применять его с умом.


Если вам потребовалось время чтобы дойти до такой очевидной вещи?
Re[3]: Упоротость С++
От: cppguard  
Дата: 16.08.23 07:59
Оценка: +1
Здравствуйте, so5team, Вы писали:

S>А если не ограничивать себя "Си-с-классами", то выяснится, что после 2011-го это вообще во многом другой язык, а после 2017-го он стал более чем неплохим.

Если не ограничивать себя, то появляются топики как этот или "Большая компания. Бардак. Больше так не могу
Автор: Codealot
Дата: 20.07.23
".

S>Если вам потребовалось время чтобы дойти до такой очевидной вещи?

То что?
Re[4]: Упоротость С++
От: so5team https://stiffstream.com
Дата: 16.08.23 08:07
Оценка:
Здравствуйте, cppguard, Вы писали:

S>>А если не ограничивать себя "Си-с-классами", то выяснится, что после 2011-го это вообще во многом другой язык, а после 2017-го он стал более чем неплохим.

C>Если не ограничивать себя, то появляются топики как этот или "Большая компания. Бардак. Больше так не могу
Автор: Codealot
Дата: 20.07.23
".


Инструменты должны подбираться под задачу. Если для задачи достаточно "Си-с-классами", то OK, можно ограничится "Си-с-классами". Если для задачи нужны умения написать с нуля Boost.Hana или Boost.Xpressive, то насильственное ограничение себя "Си-с-классами" вовсе не OK.

S>>Если вам потребовалось время чтобы дойти до такой очевидной вещи?

C>То что?

То вам бы следовало бы с осторожностью доверять собственному мнению на счет того же C++. Ну раз вы сами долго таких вещей не замечали.
Что уж говорить о ценности вашего мнения для сторонних читателей.
Re[2]: Упоротость С++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.08.23 08:12
Оценка: +2 :)
Здравствуйте, Shmj, Вы писали:

S>Ну и как ты напишешь на C# библиотеку, которую можно использовать везде: на Windows, MacOS, Linux, iOS, Android, WebAssembly?


А в чем проблемы то? Есть MAUI, UNO, Avalonia. Код Един для всех платформ, а вот гуй для линукса выбирай из UNO, Avalonia
Другое дело, что ты не упомянул Аврору!
и солнце б утром не вставало, когда бы не было меня
Re[5]: Упоротость С++
От: cppguard  
Дата: 16.08.23 08:13
Оценка: +1 -1 :))
Здравствуйте, so5team, Вы писали:

S>То вам бы следовало бы с осторожностью доверять собственному мнению на счет того же C++. Ну раз вы сами долго таких вещей не замечали.

S>Что уж говорить о ценности вашего мнения для сторонних читателей.
Ой, извини, что не спросил тебя, стоит ли мне доверять собственному мнению. А можно список твоих коммитов в открытые проекты, чтобя я был уверен, что твоему мнению доверять уж точно стоит? А то вот Торвальдс, говорит, что С++ это bullshit. Но я уверен, что ты, как программист, покруче Линуса будешь.
Re[3]: Упоротость С++
От: pagid_ Россия  
Дата: 16.08.23 08:16
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

CC>Это всё можно было написать более читабельно, да.

Вопрос в том надо ли это было писать. У меня ощущение, что там пытаются решать какие-то проблемы в поисках идеала с точки зрения С++ника. И большинство обсуждений на темы С++ как раз об этом.
Re[6]: Упоротость С++
От: so5team https://stiffstream.com
Дата: 16.08.23 08:23
Оценка: 3 (2) +2
Здравствуйте, cppguard, Вы писали:

C>Ой, извини, что не спросил тебя, стоит ли мне доверять собственному мнению.


Вы на публичном форуме излагаете свое мнение и обижаетесь на то, что кто-то озвучивает вам субъективную ценность вашего мнения? Ну афигеть. Может не стоит тогда писать на публичных форумах, если уж у вас такая тонкая душевная организация?

C>А можно


Можно.
Например здесь: https://github.com/Stiffstream/restinio/commits/master (но нужно отмотать назад, т.к. где-то с 2021-го года проект на паузе).
Или здесь: https://github.com/Stiffstream/sobjectizer/commits/master
Смотреть по нику eao197.

С аналогичной просьбой к вам обратиться можно?

C>А то вот Торвальдс, говорит, что С++ это bullshit.


Говорил. И вы верите в это просто потому, что это сказал Торвальдс?
А потом Торвальдсу потребовалось написать какую-то программулину с GUI и он это сделал на плюсах, емнип.

C>Но я уверен, что ты, как программист, покруче Линуса будешь.


Нет. Я уверен, что, как минимум, 80% RSDN-еров круче меня как программисты. Не говоря уже про Торвальдса.
Re: Упоротость С++
От: Dym On Россия  
Дата: 16.08.23 08:42
Оценка:
Здравствуйте, dmitry_npi, Вы писали:

_>Я понимаю, язык системный, мощный, есть низкоуровневые возможности. И это всё реально нужно, я понимаю.

_>Но его и так в край усложнили за последние 20 лет, зачем усугублять?
_>Ладно бы это был какой-нибудь Немерле, где можно самому создавать синтаксические конструкции, там для этого есть средства. Но тут... лавкрафтовское шаблонное невыразимое нечто — это что, способ самовыражения? Ок, но только не в продакшен.
Коллега, упороться можно на любом языке программирования, дело не в с++.
Счастье — это Glück!
Re[3]: Упоротость С++
От: Shmj Ниоткуда  
Дата: 16.08.23 09:01
Оценка: +1 :)
Здравствуйте, Serginio1, Вы писали:

S> А в чем проблемы то? Есть MAUI, UNO, Avalonia. Код Един для всех платформ, а вот гуй для линукса выбирай из UNO, Avalonia

S>Другое дело, что ты не упомянул Аврору!

Так, давай по-порядку.

MAUI — не умеет в Linux и WebAssembly.
Avalonia — не умеет в моб. платформы (объявлено экспериментально — но пока нет по сути) и WebAssembly.

Т.е. вам нужно делать минимум 3 разных GUI и никак иначе.

Не говоря уже о тормознутости всего этого, о том что для WebAssembly потребуется тащить сотни мегабайт фреймворка для мин. сборки.

Еще более важно — ваши библиотеки, по сути, можно будет использовать только из .Net — т.е. они не универсальны. Написанное на С++ и обрамленное с помощью extern "C" — легко использовать и из Python и из JS и из Dart и т.д. Тут проблемы: https://rsdn.org/forum/dotnet/8544603.flat
Автор: Shmj
Дата: 17.06.23


Я понимаю что вы влюбились в язык и все такое. Но реальность сурова — нет. Никак. Не возможно в принципе.

Хочешь или нет — а придется принять реальность — серьезные взрослые программы пишутся на С++. У него минусы есть, но на самом деле не так страшен черт.
Re[2]: Упоротость С++
От: Alekzander  
Дата: 16.08.23 09:20
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Ну и как ты напишешь на C# библиотеку, которую можно использовать везде: на Windows, MacOS, Linux, iOS, Android, WebAssembly?

S>Тут же не в том дело удобно или нет. На С++ это можно сделать и реально делают. На C# как бы ты ни извращался — ну просто не получится

Он говорит совершенно о другом. Язык можно было развивать совсем иначе. Поверь, можно и без способа кастинга, записанного словами через чёрточку и оператора "архитектурные астронавты летят на ракете" писать под "Windows, MacOS, Linux, iOS, Android, WebAssembly".
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.