Почему нужно идти в С/С++
От: tapatoon  
Дата: 13.03.23 09:45
Оценка: 1 (1) -2 :))) :))) :))) :))) :)


Не раз видел на форуме обсуждения типа "куда идти дальше" и т.п.

Отвечаю — в С/С++

Объясняю на примерах почему

Пример1
У нас куча сущностей, каждая из которых может поддерживать любой набор из множества функциональных методов. Что мы делаем в С++? Мы делаем как-то так:
#include <библиотека общей функциональности>
class Entity1 : public func1, func2 {};
class Entity2 : public func1, func3 {};
class Entity3 : public func1 {};


4 строчки
кто меньше?
C#? Java? А ну-ка, объясните нам, дуракам, почему множественное наследование плохо? Забываю постоянно

Пример2
Вы точно знаете тип откуда-то взятых данных. Но описания для компилятора нет.
В С мы конвертим void* во что хотим. За это нас ненавидят сериализаторы и объясняют почему это плохо

Пример3
Вы используете стороннюю библиотеку, которая багами побеждает GC. Ваши действия?
В С/С++ проблема не может возникнуть априори

С/С++ даёт вам свободу. Как её использовать — для багов или для уникальных фичей, зависит только от вас
Центр ИПсО Сил Специальных Операций
Отредактировано 13.03.2023 10:10 tapatoon . Предыдущая версия .
Re: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 13.03.23 10:09
Оценка:
T>Отвечаю — в С/С++
T>С/С++ даёт вам свободу. Как её использовать — для багов или для уникальных фичей, зависит только от вас
Тогда уж надо иметь пару: С++ + Go.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 10:12
Оценка: +8
Здравствуйте, tapatoon, Вы писали:

...

Очень уныло. Нужно лучше стараться.
avalon/3.0.2
Re[2]: Почему нужно идти в С/С++
От: tapatoon  
Дата: 13.03.23 10:13
Оценка: :)
Здравствуйте, LaptevVV, Вы писали:

LVV>Тогда уж надо иметь пару: С++ + Go.

Это многоженство. В принципе я не против)

LVV>Без булдырабыз!!!

Казакша белесын ба?
Центр ИПсО Сил Специальных Операций
Re[2]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 10:15
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> Тогда уж надо иметь пару: С++ + Go.


Вот и профессора GOты покусали...
avalon/3.0.2
Re: Почему нужно идти в С/С++
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.23 10:20
Оценка: +1 :)
Здравствуйте, tapatoon, Вы писали:

T>С/С++ даёт вам свободу.

Свободу стрелять себе в ноги
Re[2]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 10:25
Оценка: +6 :)))
Здравствуйте, gandjustas, Вы писали:

g> T>С/С++ даёт вам свободу.


g> Свободу стрелять себе в ноги


Да! Мои ноги, хочу стреляю, хочу не стреляю. Не вам, в памперс обутым, за меня решать!
avalon/3.0.2
Re[3]: Почему нужно идти в С/С++
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.23 10:29
Оценка: +3 :))
Здравствуйте, rudzuk, Вы писали:

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


g>> T>С/С++ даёт вам свободу.


g>> Свободу стрелять себе в ноги


R>Да! Мои ноги, хочу стреляю, хочу не стреляю. Не вам, в памперс обутым, за меня решать!


Стрелять себе в ноги — это нормально.
Говорить другим что "стрелять себе в ноги — это нормально" — это НЕ нормально.
Re[2]: Почему нужно идти в С/С++
От: velkin Удмуртия https://kisa.biz
Дата: 13.03.23 10:31
Оценка:
Здравствуйте, LaptevVV, Вы писали:

T>>Отвечаю — в С/С++

T>>С/С++ даёт вам свободу. Как её использовать — для багов или для уникальных фичей, зависит только от вас
LVV>Тогда уж надо иметь пару: С++ + Go.

А на ютубе разные люди говорят, что лучше выбрать для изучения один язык программирования и учить только его. Пока не станешь профессионалом не переходить на другой, то есть никаких связок C и C++ или C++ и Go, только или C, или C++, или Go. Иначе не получится развить основу и человек будет плавать в теории. Я вот подумал, а ведь в этом действительно есть смысл.
Re[4]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 10:33
Оценка: +1 :))
Здравствуйте, gandjustas, Вы писали:

g> g>> Свободу стрелять себе в ноги


g> R>Да! Мои ноги, хочу стреляю, хочу не стреляю. Не вам, в памперс обутым, за меня решать!


g> Стрелять себе в ноги — это нормально.

g> Говорить другим что "стрелять себе в ноги — это нормально" — это НЕ нормально.

Нормально. Естественный отбор это всегда нормально. Это закаляет характер и укрепляет тестикулы.
avalon/3.0.2
Re: Почему нужно идти в С/С++
От: velkin Удмуртия https://kisa.biz
Дата: 13.03.23 10:42
Оценка: 1 (1) +1
Здравствуйте, tapatoon, Вы писали:

T>Пример1

T>У нас куча сущностей, каждая из которых может поддерживать любой набор из множества функциональных методов. Что мы делаем в С++? Мы делаем как-то так:
T>
T>#include <библиотека общей функциональности>
T>class Entity1 : public func1, func2 {};
T>class Entity2 : public func1, func3 {};
T>class Entity3 : public func1 {};
T>

T>4 строчки
T>кто меньше?

Если это не директива препроцессора, то всё остальное можно поставить в одну строчку, да и лишние пробелы поубирать. Но я пошёл по противоположному пути Код должен быть удобочитаемым. Это опять же доказывает, что в C++ есть что-то для каждого. Даже вот этот синтаксис, в C++ шатание и разброд, не могли остановиться на 2003. А теперь ...

http://rsdn.org/poll/8913
Автор: velkin
Дата: 25.02.23
Вопрос: Вопрос к программистам C++ по стандарту ISO/IEC 14882.
Re: Почему нужно идти в С/С++
От: rFLY  
Дата: 13.03.23 12:14
Оценка: +3
Здравствуйте, tapatoon, Вы писали:

T>C#? Java? А ну-ка, объясните нам, дуракам, почему множественное наследование плохо? Забываю постоянно

А какой смысл если ты все равно завтра забудешь?
Re[4]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 13.03.23 12:18
Оценка: 3 (1) +1 :)
Здравствуйте, gandjustas, Вы писали:

R>>Да! Мои ноги, хочу стреляю, хочу не стреляю. Не вам, в памперс обутым, за меня решать!


G>Стрелять себе в ноги — это нормально.

G>Говорить другим что "стрелять себе в ноги — это нормально" — это НЕ нормально.

Простите, а выделенное жирным вы кому сказали? Неужели себе?
Re[2]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 13.03.23 13:07
Оценка:
Здравствуйте, velkin, Вы писали:

V>А теперь ...


V>http://rsdn.org/poll/8913
Автор: velkin
Дата: 25.02.23
Вопрос: Вопрос к программистам C++ по стандарту ISO/IEC 14882.


Надо было разрешить выбирать несколько вариантов, т.к. это еще и от проекта зависит. Например, в каких-то проектах все еще C++14, в каких-то все еще C++17.
Re[3]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 13.03.23 13:36
Оценка:
LVV>>Тогда уж надо иметь пару: С++ + Go.
T>Это многоженство. В принципе я не против)

LVV>>Без булдырабыз!!!
T>Казакша белесын ба?
Я долго жил в Узбекистане.
Поговорка мне понравилась — и на казахском, и на русском звучит хорошо.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 13.03.23 13:38
Оценка:
LVV>> Тогда уж надо иметь пару: С++ + Go.
R>Вот и профессора GOты покусали...
Я на Паскале писал еще в году 87 примерно...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 13.03.23 13:40
Оценка: 1 (1) +1
LVV>>Тогда уж надо иметь пару: С++ + Go.
V>А на ютубе разные люди говорят, что лучше выбрать для изучения один язык программирования и учить только его. Пока не станешь профессионалом не переходить на другой, то есть никаких связок C и C++ или C++ и Go, только или C, или C++, или Go. Иначе не получится развить основу и человек будет плавать в теории. Я вот подумал, а ведь в этом действительно есть смысл.
Для начинающих — это правильно. Начинать надо с одного.
Тогда почему не Go ?
А профи, естественно, должен быть способен переходить на любой родственный язык без особых проблем.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 13:44
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> R>Вот и профессора GOты покусали...


LVV> Я на Паскале писал еще в году 87 примерно...


И причем тут Паскаль? Это намек на то, что у ГО ноги из Оберона растут? Так Оберон это не Паскаль, это убогий вырожденец.
avalon/3.0.2
Re[4]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 13:48
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> Тогда почему не Go ?


Пральна, школоту надо сразу плохому учить. Блин, да в этом чудо-языке даже перегрузки функций нет. Пристрелить его, чтоб не мучался, да и все. Учиться нужно на Паскале! И не только учиться.
avalon/3.0.2
Re[5]: Почему нужно идти в С/С++
От: Privalov  
Дата: 13.03.23 14:30
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Пральна, школоту надо сразу плохому учить. Блин, да в этом чудо-языке даже перегрузки функций нет. Пристрелить его, чтоб не мучался, да и все. Учиться нужно на Паскале! И не только учиться.


Настоящие прграммисты не используют Паскаль
Re[6]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 14:38
Оценка:
Здравствуйте, Privalov, Вы писали:

P> Настоящие прграммисты не используют Паскаль


Да и #уй с ними.
avalon/3.0.2
Re[5]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 13.03.23 14:44
Оценка:
LVV>> Я на Паскале писал еще в году 87 примерно...
R>И причем тут Паскаль? Это намек на то, что у ГО ноги из Оберона растут? Так Оберон это не Паскаль, это убогий вырожденец.
Вообще-то желательно знать предков до 7 колена...
Оберон — плоть от плоти паскаля...
И Go многое позаимствовал.
Методы — так просто совершенно в лоб...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 13.03.23 14:45
Оценка:
LVV>> Тогда почему не Go ?
R>Пральна, школоту надо сразу плохому учить. Блин, да в этом чудо-языке даже перегрузки функций нет. Пристрелить его, чтоб не мучался, да и все. Учиться нужно на Паскале! И не только учиться.
Вы в обучении начинающих ничегошеьки не понимаете...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 15:07
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> R>И причем тут Паскаль? Это намек на то, что у ГО ноги из Оберона растут? Так Оберон это не Паскаль, это убогий вырожденец.


LVV> Вообще-то желательно знать предков до 7 колена...

LVV> Оберон — плоть от плоти паскаля...

У них из общего — только бегин с ендом. Не удивительно, что среди паскальщиков это недоразумение популярностью не пользуется.
avalon/3.0.2
Re[6]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 15:07
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> R>Пральна, школоту надо сразу плохому учить. Блин, да в этом чудо-языке даже перегрузки функций нет. Пристрелить его, чтоб не мучался, да и все. Учиться нужно на Паскале! И не только учиться.


LVV> Вы в обучении начинающих ничегошеьки не понимаете...


Опыт я таки имею, и прекрасно понимаю, что обучая убогому — убогому и научишь.
avalon/3.0.2
Re[7]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 13.03.23 15:26
Оценка:
LVV>> Вы в обучении начинающих ничегошеьки не понимаете...
R>Опыт я таки имею, и прекрасно понимаю, что обучая убогому — убогому и научишь.
Опыт разработки и изучения языков — это не тот опыт, который нужен в обучении.
Когда я стал преподавать — у меня был 18-летний опыт разработки.
А сейчас у меня 30-летний опыт преподавания.
И это два совершенно РАЗНЫХ опыта.
И ваша оценка убогости Go — это как раз отсутствие опыта преподавания.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Почему нужно идти в С/С++
От: Baiker  
Дата: 13.03.23 16:05
Оценка:
Здравствуйте, tapatoon, Вы писали:

T>Не раз видел на форуме обсуждения типа "куда идти дальше" и т.п.

T>Отвечаю — в С/С++

Вроде снег ещё не сошёл, а у кого-то уже крыша оттаяла... Ребят, подождите до сезона обострений, нельзя же круглый год отжигать!
Re[8]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 17:39
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> R>Опыт я таки имею, и прекрасно понимаю, что обучая убогому — убогому и научишь.


LVV> Опыт разработки и изучения языков — это не тот опыт, который нужен в обучении.

LVV> Когда я стал преподавать — у меня был 18-летний опыт разработки.
LVV> А сейчас у меня 30-летний опыт преподавания.
LVV> И это два совершенно РАЗНЫХ опыта.
LVV> И ваша оценка убогости Go — это как раз отсутствие опыта преподавания.

Об опыте преподавания я и говорил. Он скромный, но есть.
avalon/3.0.2
Re[9]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 13.03.23 17:49
Оценка:
LVV>> И ваша оценка убогости Go — это как раз отсутствие опыта преподавания.
R>Об опыте преподавания я и говорил. Он скромный, но есть.
Тогда вы должны понимать, что обучение программированию — это не изучение конкретного языка.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 13.03.23 17:53
Оценка:
P>Настоящие прграммисты не используют Паскаль
Да-да-да!
Настоящие программисты пишут на Фортране!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[10]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 18:41
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> Тогда вы должны понимать, что обучение программированию — это не изучение конкретного языка.


Так и есть. И очень хреново начинать с языка сделанного для тупых.
avalon/3.0.2
Re[7]: Почему нужно идти в С/С++
От: Privalov  
Дата: 13.03.23 18:50
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Настоящие программисты пишут на Фортране!

LVV>)

Точнее, на любом языке, если этот язык — Фортран.
Re[8]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 13.03.23 18:59
Оценка: +1
Здравствуйте, Privalov, Вы писали:

P> LVV>Настоящие программисты пишут на Фортране!

P> LVV>)

P> Точнее, на любом языке, если этот язык — Фортран.


Настоящий Программист может писать программы на Фортране на любом языке.

avalon/3.0.2
Re[9]: Почему нужно идти в С/С++
От: Privalov  
Дата: 13.03.23 19:22
Оценка: :)
Здравствуйте, rudzuk, Вы писали:

R>

Настоящий Программист может писать программы на Фортране на любом языке.


Я в суровой реальности знал одного дядьку, который писал на Фортране, используя Паскаль. Точнее, Турбо Паскаль.
Re: Почему нужно идти в С/С++
От: Pzz Россия https://github.com/alexpevzner
Дата: 13.03.23 22:28
Оценка: +1
Здравствуйте, tapatoon, Вы писали:

T>Отвечаю — в С/С++


Ты C-то знаешь? Или он для тебя синоним C++?
Re: Почему нужно идти в С/С++
От: cppguard  
Дата: 13.03.23 22:38
Оценка: +2 :))
Здравствуйте, tapatoon, Вы писали:

T>С/С++ даёт вам свободу. Как её использовать — для багов или для уникальных фичей, зависит только от вас


С++ это как бээмвэшечка — нужны сотни тон денег на обслуживание, хотя можно брать нормальные инструменты и просто писать код. В Java, кстати, есть аналог множественного наследования — default-методы в интерфейсах. Но зачем это надо? Я не знаю. 99% статей о прикладном С++ о том, как "я тут написал библиотеку, и теперь вот одним вызовом мы делалем шаблон шаблонов с конструтором перемещения и шлюхами на этапе компиляции". Вот из последнего — доклад с CppCon о том, что нужно писать в функциональном стиле, потому что так меньше ошибок. Прикольный доклад, только он заканчивается словами "но С++ ещё не готов к такому, потому что функциональный код получается ущербнее императивного".

Мне нравится смотреть на С++ как на красивую, но недоступную девушку. Красивую, потому что метопрограммирование это мощно и элегантно. Недоступную, потому что из-за обратной совместимости не получится на нём писать безопасные программы — всё время будет вылезать какое-то правило, которое не просто ломает программу, а ещё и добавляет UB, что приводит к тому, что компилятор решает сгенерировать какой-то случайный код. По-хорошему, нужно выкинуть всё наследние, оставить только нормальные правила, и научить компилятор предупреждать, что такой-то кусок кода выглядит подозрительным. Добавить сверху завтипов и вот тогда получится инструмент, который точно стоит изучать. Но вот парадокс — если начать пилить такое сейчас, то у языка будет полтора фаната, потому что весь интерес и поддержка С++ произростают из компаний, у которых огромное наследние кода и желание хоть как-то оптимизировать этого монстра.
Re[2]: Почему нужно идти в С/С++
От: WolfHound  
Дата: 13.03.23 22:56
Оценка: +1
Здравствуйте, cppguard, Вы писали:

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

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

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

Rust взлетел.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Почему нужно идти в С/С++
От: cppguard  
Дата: 14.03.23 00:45
Оценка: +2
Здравствуйте, WolfHound, Вы писали:

WH>А ЗТ сами по себе с практической точки зрения штука весьма убогая.

Я всё хотел подступиться к формальной верификации программ, но не знал, с какой стороны. Начал с Idris. Мне пока нравится, хотя до прикладного использования я пока не дошёл.

WH>Rust взлетел.

Я бы сказал, что начал набирать высоту и пока её не теряет, но про успешный успех говорить рано.
Re[11]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 14.03.23 03:00
Оценка:
LVV>> Тогда вы должны понимать, что обучение программированию — это не изучение конкретного языка.
R>Так и есть. И очень хреново начинать с языка сделанного для тупых.
Учите на Кумире.
И прочитайте Дейкстру "Смиренный программист".
А пока эффект Даннинга — Крюгера во всей красе
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Почему нужно идти в С/С++
От: ArtDenis Россия  
Дата: 14.03.23 05:21
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Rust взлетел.


Откуда тогда столько нытья в профильных чатах по обсуждению предложений работы на раст?
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[12]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 14.03.23 07:57
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> R>Так и есть. И очень хреново начинать с языка сделанного для тупых.


LVV> Учите на Кумире.


Я этим уже, слава всевышнему, не занимаюсь.

LVV> И прочитайте Дейкстру "Смиренный программист".

LVV> А пока эффект Даннинга — Крюгера во всей красе

Нет, про тупых не я сказал, а Роб Пайк, господин диагност.
avalon/3.0.2
Re[13]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 14.03.23 08:36
Оценка:
LVV>> R>Так и есть. И очень хреново начинать с языка сделанного для тупых.
LVV>> Учите на Кумире.
R>Я этим уже, слава всевышнему, не занимаюсь.
LVV>> И прочитайте Дейкстру "Смиренный программист".
LVV>> А пока эффект Даннинга — Крюгера во всей красе
R>Нет, про тупых не я сказал, а Роб Пайк, господин диагност.
Автор языка имеет право называть свой язык как угодно.
Это не значит, что за ним надо повторять...
Учите на APL...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[14]: Почему нужно идти в С/С++
От: Privalov  
Дата: 14.03.23 09:14
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Учите на APL...


Ты еще и APL знаешь? Я пару раз код в книжках видел. А как на нем программировать? У него с Фортраном ничего общего.
Re[2]: Почему нужно идти в С/С++
От: ononim  
Дата: 14.03.23 10:19
Оценка:
T>>С/С++ даёт вам свободу.
G>Свободу стрелять себе в ноги
Да! Ведь благодаря этому всегда можно ногти подстричь на ногах, в отличии от..
Как много веселых ребят, и все делают велосипед...
Re[15]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 14.03.23 11:53
Оценка:
LVV>>Учите на APL...
P>Ты еще и APL знаешь? Я пару раз код в книжках видел. А как на нем программировать? У него с Фортраном ничего общего.
Да это я его троллю...
Мой оппонент жаждет язык для не тупых — вот как раз пусть посмотрит, какие они бывают.
В одной из книжек было написано, что один из гуру как-то разбирал программу из 4 строчек 4 часа...
Насколько я знаю, в СССР не было компом с APL.
Но книжка у меня была и я ее читал.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[16]: Почему нужно идти в С/С++
От: Privalov  
Дата: 14.03.23 12:06
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>В одной из книжек было написано, что один из гуру как-то разбирал программу из 4 строчек 4 часа...


Я ж говорил, с Фортраном ничего общего. В Фортране тоже не всегда всё просто, только нормальные люди не используют всякие странные конструкции типа RETURN с меткой или безымянные COMMON-блоки, да еще по-разному определенные в разных программных единицах.

LVV>Насколько я знаю, в СССР не было компом с APL.


Я и позже живого APL не встречал. Только статьи.

LVV>Но книжка у меня была и я ее читал.


А я в библиотеке брал. По содержанию какой-то ужастик.
Re[14]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 14.03.23 13:26
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> R>Нет, про тупых не я сказал, а Роб Пайк, господин диагност.


LVV> Автор языка имеет право называть свой язык как угодно.

LVV> Это не значит, что за ним надо повторять...

Он так охарактеризовал не язык, а его целевую аудиторию.

LVV> Учите на APL...


Я не из академической среды, мне такая хрень не подходит.
avalon/3.0.2
Re[15]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 14.03.23 13:47
Оценка:
LVV>> Автор языка имеет право называть свой язык как угодно.
LVV>> Это не значит, что за ним надо повторять...
R>Он так охарактеризовал не язык, а его целевую аудиторию.
Ну, это каждый понимает в меру СВОЕЙ испорченности (с)
LVV>> Учите на APL...
R>Я не из академической среды, мне такая хрень не подходит.
Вот вы даже не знаете, что APL родился как язык описания архитектуры IBM/360
Ни о какой академической среде там и не пахло.
Потом фирма IBM сделала из него язык программирования и выпустила отдельную специальную миниЭВМ для работы с этим языком.
Но в СССР эти машины не попали.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[16]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 14.03.23 18:40
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> R>Он так охарактеризовал не язык, а его целевую аудиторию.


LVV> Ну, это каждый понимает в меру СВОЕЙ испорченности (с)


Это его прямая речь! Хотя, да, не тупые, а альтернативно одаренные

LVV> R>Я не из академической среды, мне такая хрень не подходит.


LVV> Вот вы даже не знаете, что APL родился как язык описания архитектуры IBM/360

LVV> Ни о какой академической среде там и не пахло.

Я о том, что только академической среде эти копролиты и могут быть интересны.
avalon/3.0.2
Re[7]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 15.03.23 06:40
Оценка: 2 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>Настоящие программисты пишут на Фортране!


Настоящий погромист напишет программу на фортране на любом языке программирования! (С)
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Почему нужно идти в С/С++
От: velkin Удмуртия https://kisa.biz
Дата: 15.03.23 06:47
Оценка:
Здравствуйте, so5team, Вы писали:

V>>А теперь ...

V>>http://rsdn.org/poll/8913
Автор: velkin
Дата: 25.02.23
Вопрос: Вопрос к программистам C++ по стандарту ISO/IEC 14882.

S>Надо было разрешить выбирать несколько вариантов, т.к. это еще и от проекта зависит. Например, в каких-то проектах все еще C++14, в каких-то все еще C++17.

Цель выявить лишь одну версию стандарта на программиста.

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

Вот если бы голос можно было разделять, для примера 43% одного голоса программиста за C++14, а 57% голоса этого же программиста за C++17, тогда ещё можно было бы подумать.

А так выбора нет, приходится ограничиваться наивысшим приоритетом. Но это тоже не так плохо, каждый программист определяет какая версия стандарта для него важнее, что я и хотел увидеть в опросе.
Re[16]: Почему нужно идти в С/С++
От: Privalov  
Дата: 15.03.23 06:55
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Вот вы даже не знаете, что APL родился как язык описания архитектуры IBM/360


А вот это я как-то пропустил. Я считал, что это про REXX. Я его немножечко видел в ПДО и в Полуоси. Говорят, он и сейчас жив. Внешне он ближе к Фортрану, чем APL.
Re[17]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 15.03.23 07:18
Оценка: 1 (1)
LVV>>Вот вы даже не знаете, что APL родился как язык описания архитектуры IBM/360
P>А вот это я как-то пропустил. Я считал, что это про REXX. Я его немножечко видел в ПДО и в Полуоси. Говорят, он и сейчас жив. Внешне он ближе к Фортрану, чем APL.
В Википеди написано:

Язык APL был разработан Кеном Айверсоном, преподававшим тогда в Гарвардском университете, в качестве системы обозначений для описания вычислений.
В 1957 вышла его книга «A Program Language»[5], в которой эта нотация была описана.
В 1960 году Айверсон продолжал работу над APL в IBM. Здесь этот язык использовался для описания машинной архитектуры.

Про 1957 год я не знал, а вот про 1960 и далее я еще в Советском Союзе читал.
Нотация APL сродни стенографии...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 15.03.23 07:32
Оценка: +1
Здравствуйте, velkin, Вы писали:

V>каждый программист определяет какая версия стандарта для него важнее


Программист определяет?
Re[5]: Почему нужно идти в С/С++
От: velkin Удмуртия https://kisa.biz
Дата: 15.03.23 08:00
Оценка:
Здравствуйте, so5team, Вы писали:

V>>каждый программист определяет какая версия стандарта для него важнее

S>Программист определяет?

Именно так, в опросе каждый указывает то, что хочет он сам, то что лично для него более приоритетно.
Re[18]: Почему нужно идти в С/С++
От: Privalov  
Дата: 15.03.23 08:17
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Про 1957 год я не знал, а вот про 1960 и далее я еще в Советском Союзе читал.


Шо? APL старше Кобола? Который, конечно, не Фортран, но тоже ничего. Я про APL читал где-то в 80-е. Но в тех материалах о нем рассказывали как о суперкалькуляторе.
Позже, когда я работал в НИИ, дядьки-математики почему-то предпочли Фортран.

LVV>Нотация APL сродни стенографии...


Что-то вспомнилось. Однокурсник стенографировал лекции по общественным предметам, потом расшифровывал. Его записи выглядели чем-то инопланетным.
Даже не представляю, как быть с APL. Кто его расшифрует.
Re[6]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 15.03.23 08:21
Оценка: +3
Здравствуйте, velkin, Вы писали:

V>>>каждый программист определяет какая версия стандарта для него важнее

S>>Программист определяет?

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


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

Для того, чтобы узнать какой стандарт приоритетен для программистов в 2023-ем году, следовало бы по другому сформулировать основной вопрос в вашем опросе. Например, на "какой бы стандарт C++ вы бы выбрали в 2023-ом если бы у вас была возможность свободного выбора".
Re[7]: Почему нужно идти в С/С++
От: velkin Удмуртия https://kisa.biz
Дата: 15.03.23 09:01
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>Для того, чтобы узнать какой стандарт приоритетен для программистов в 2023-ем году, следовало бы по другому сформулировать основной вопрос в вашем опросе. Например, на "какой бы стандарт C++ вы бы выбрали в 2023-ом если бы у вас была возможность свободного выбора".


Вопрос сформулирован правильно, как его понял, так и отвечай. Если у тебя какое-то иное понимание, нежели у других, то просто голосуй согласно своему пониманию. Но обращу внимание, что вопрос не про если бы и ка бы.

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

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

Ещё раз повторяю, это выбор программиста как голосовать, но слово используете там не просто так написано. Предполагается, что программист умеет использовать выбранную версию стандарта C++, а не просто хотел бы когда-нибудь её использовать.
Re[8]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 15.03.23 09:10
Оценка: +3
Здравствуйте, velkin, Вы писали:

V>Вопрос сформулирован правильно, как его понял, так и отвечай.


Простите, я находился при мнении, что правильно сформулированный вопрос не допускает разночтений и противоречащих друг другу трактовок, но, вероятно, просто отстал о жизни.
Re[9]: Почему нужно идти в С/С++
От: velkin Удмуртия https://kisa.biz
Дата: 15.03.23 09:23
Оценка:
Здравствуйте, so5team, Вы писали:

V>>Вопрос сформулирован правильно, как его понял, так и отвечай.

S>Простите, я находился при мнении, что правильно сформулированный вопрос не допускает разночтений и противоречащих друг другу трактовок, но, вероятно, просто отстал о жизни.

Вопрос крайне простой.

Какой стандарт C++ вы используете в 2023 году?


Если тебе нужен контракт на десять страниц, то да, такого нет и не будет.

Это профессиональная деформация, если в голову лезут всякие посторонние мысли. Вроде, а где используете, а на работе или для себя, а если меня заставили, а если бы я сам лично хотел использовать, а то, а это, а точная формулировка вопроса вроде огромного многостраничного документа, и так далее.

Проголосовал и ладно. В итоге видим некие тренды, пусть и на малой выборке. Я бы лучше обсудил результаты голосования, нежели кто что думал, когда это делал. А вот они довольно интересны.
Re[10]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 15.03.23 09:36
Оценка:
Здравствуйте, velkin, Вы писали:

V>Вопрос крайне простой.


Дополнения к нему вы делаете не такие уж и простые. В частности "каждый программист определяет какая версия стандарта для него важнее", поскольку "для него важнее" и "использует" далеко не всегда тождественны.

V>Если тебе нужен контракт на десять страниц, то да, такого нет и не будет.


У меня было подозрение, что вы можете намерять не то, что собирались. На что и попытался указать.

Но, видимо, вы что-то хотели измерить, и это что-то, в итоге и измерили. Понять что и зачем у меня не получается, но да это совершенно не важно.
Re[7]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 15.03.23 09:37
Оценка:
Здравствуйте, so5team, Вы писали:

S>Например, на "какой бы стандарт C++ вы бы выбрали в 2023-ом если бы у вас была возможность свободного выбора".

В настройках компилятора я как правило ставлю самый последний доступный, чтоб потом два раза не бегать. Это ж не питон, который сам с собой не совместим.
А вот какие фичи будут реально из него использоваться — это уже как понадобится. Я не очень помню что в каком году появилось.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 15.03.23 09:37
Оценка:
Здравствуйте, velkin, Вы писали:

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

Они не настолько драматически отличаются чтоб надо было использовать именно конкретную версию, скорее это диктуется доступностью определённых фич языка.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[10]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 15.03.23 09:37
Оценка:
Здравствуйте, velkin, Вы писали:

V>Вопрос крайне простой.

V>Какой стандарт C++ вы используете в 2023 году?
Ну вот допустим я включил в опциях C++20 стандарт, весь код написал вообще в С стиле, а потом взял и добавил в одном месте range for.
Это какой стандарт получается по твоей логике?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: Почему нужно идти в С/С++
От: elmal  
Дата: 15.03.23 09:43
Оценка: +1
Здравствуйте, rudzuk, Вы писали:

R>Так и есть. И очень хреново начинать с языка сделанного для тупых.

Это какой язык создан для тупых? Go чтоль ?

Вообще, язык для самых умных я знаю. Brainfuck называется. Все остальные — для тупых однозначно!!!! Хотя, есть еще язык whitespace — тоже вполне для умных.

А если брать Паскаль. То практика показывает, что его осилить на минимальном уровне сильно сложнее, чем тот же Питон. По крайней мере что то простое на Питоне в состоянии написать крайне многие школьники. Во времена актуальности паскаля программы перемножения матриц сдавались в качестве курсового на всяческих факультетах машиностроения, и процентов 95 студентов это были написать не в состоянии и такой сложный курсовой покупали и тех, кто хоть как то умел программировать. В то время даже набрать программу готовую было неимоверно сложно, многие обладатели диплома программиста это были сделать не в состоянии . Даже hello world многие программисты получали диплом, а так и не в состоянии были написать ни на одном из языков программирования. А сейчас на современных языках как то уже получается осилить. А вот если брать досовский паскаль — снова у начинающих с ним неимоверные сложности. Так что паскаль совсем не для тупых.
Re[8]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 15.03.23 09:52
Оценка:
Здравствуйте, CreatorCray, Вы писали:

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


Это может больно укусить если приходится пользоваться разными компиляторами на разных платформах.

CC>Это ж не питон, который сам с собой не совместим.


Местами и в C++ бывают грабли (буквально вчерашнее).
Re[11]: Почему нужно идти в С/С++
От: velkin Удмуртия https://kisa.biz
Дата: 15.03.23 10:52
Оценка:
Здравствуйте, CreatorCray, Вы писали:

V>>Вопрос крайне простой.

V>>Какой стандарт C++ вы используете в 2023 году?
CC>Ну вот допустим я включил в опциях C++20 стандарт, весь код написал вообще в С стиле, а потом взял и добавил в одном месте range for.
CC>Это какой стандарт получается по твоей логике?

А что тут непонятного, когда пишешь код ориентируешься на определённую версию стандарта. Она разрешает или запрещает определённые инструкции (+stl), а так же понимает под ними именно то, что предусмотрено в этой версии стандарта. Конечно, не стоит забывать и о зависимости от реализации компилятора.

Лучше сразу определиться, что конкретно используешь в проекте, как для себя, так и для других, если они есть. Если не определишься для себя, то будет мешанина непонятно чего. А если будут ещё и другие люди, то там может оказаться ещё трешовее, когда каждый начнёт добавлять всё, что ему вздумается в контексте самовольно выбранной версии стандарта C++.

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

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

Но представим, что программист определился с версией стандарта и использует её на полную катушку. Вот и выходит, что лично ты можешь писать суперсовместимые хеллоу ворлды, которые работают и там и здесь. Однако с таким посылом часть возможностей остаётся не задействованной.
Re[2]: Почему нужно идти в С/С++
От: Khimik  
Дата: 15.03.23 11:40
Оценка:
Здравствуйте, cppguard, Вы писали:

C>Красивую, потому что метопрограммирование это мощно и элегантно.


А что такое метапрограммирование — макросы?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[19]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 15.03.23 12:07
Оценка:
LVV>>Нотация APL сродни стенографии...
P>Что-то вспомнилось. Однокурсник стенографировал лекции по общественным предметам, потом расшифровывал. Его записи выглядели чем-то инопланетным.
P>Даже не представляю, как быть с APL. Кто его расшифрует.
Я ж говорю: в какой-то книжке было написано, что один гуру расшифровывал прогу из 4 строк более 4 часов...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Почему нужно идти в С/С++
От: RonWilson Россия  
Дата: 15.03.23 12:46
Оценка:
Здравствуйте, tapatoon, Вы писали:

T>Пример1

T>У нас куча сущностей, каждая из которых может поддерживать любой набор из множества функциональных методов. Что мы делаем в С++? Мы делаем как-то так:
T>
T>#include <библиотека общей функциональности>
T>class Entity1 : public func1, func2 {};
T>class Entity2 : public func1, func3 {};
T>class Entity3 : public func1 {};
T>


Зачем столько писанины?

#include "../.../../../../../../../shared/my-lib.h"
#define MyFeature func1, func2
#define CompleteFeature MyFeature, UselessGC
#define CompleteFeatureIMeanIt CompleteFeature, EXXtras

class MegaFeature : public CompleteFeatureIMeanIt {};
Re[12]: Почему нужно идти в С/С++
От: rudzuk  
Дата: 15.03.23 14:40
Оценка:
Здравствуйте, elmal, Вы писали:

e> Это какой язык создан для тупых? Go чтоль ?


Угу
Автор: rudzuk
Дата: 15.02.22
.

e> А если брать Паскаль. То практика показывает, что его осилить на минимальном уровне сильно сложнее, чем тот же Питон.


Про змеюку можно вообще не говорить. Язык в котором логика зависит от форматирования — не нужен! Ну, т.е. школота может играться, конечно, но в целом — не нужен.

e> Во времена актуальности паскаля программы перемножения матриц сдавались в качестве курсового на всяческих факультетах машиностроения, и процентов 95 студентов это были написать не в состоянии и такой сложный курсовой покупали и тех, кто хоть как то умел программировать.


Отличное подтверждение известного тезиса. Хотя, скорее всего, просто не видели смысла изучать информатику/программирование, как непрофильное. Я знаю ВУЗ, где лингвистам (кажется) сишечку преподавали Я офигел, когда мне девочка об этом рассказывала.

e> В то время даже набрать программу готовую было неимоверно сложно, многие обладатели диплома программиста это были сделать не в состоянии . Даже hello world многие программисты получали диплом, а так и не в состоянии были написать ни на одном из языков программирования.


Какие-то странные программисты... Без рук что ли?

e> А вот если брать досовский паскаль — снова у начинающих с ним неимоверные сложности.


Проблемы именно с досовским паскалем? Или с теми, кто в 2023 году использует досовский паскаль? Впрочем, я все равно не помню каких-либо проблем с досовским паскалем. Отличные были инструменты своего времени — лучшие!

e> Так что паскаль совсем не для тупых.


Конечно не для тупых! Язык обучения и не должен быть языком для тупых. Язык обучения должен быть простым и поняным, должен заложить основы, дать понимание базовых вещей. Но он не должен быть языком для тупых. Паскаль именно такой язык.
avalon/3.0.2
Re[3]: Почему нужно идти в С/С++
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 15.03.23 16:35
Оценка:
V> Я вот подумал, а ведь в этом действительно есть смысл.

Это только к языку Haskell относится.
Re[12]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 15.03.23 17:53
Оценка:
Здравствуйте, velkin, Вы писали:

CC>>Ну вот допустим я включил в опциях C++20 стандарт, весь код написал вообще в С стиле, а потом взял и добавил в одном месте range for.

CC>>Это какой стандарт получается по твоей логике?
V>Си и Си стиль в C++ это не одно и тоже.
Ты на вопрос так и не ответил.

V>А что тут непонятного, когда пишешь код ориентируешься на определённую версию стандарта.

Да не то чтобы.

V> Она разрешает или запрещает определённые инструкции

И какие же "инструкции" были запрещены ну к примеру в С++14 по сравнению с С++11?

V>а так же понимает под ними именно то, что предусмотрено в этой версии стандарта.

Опять таки, смысл чего поменялся между теми же 11 и 14 версиями?

V>Конечно, не стоит забывать и о зависимости от реализации компилятора.

Вот это уже теплее.

V> То есть вопрос у тебя по частичной совместимости между разными версиями Си и разными версиями C++.

Это надо очень специфичные и версии и код искать чтоб вылезло что то реально существенное.

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

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

Эта болтология не интересна.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 15.03.23 17:53
Оценка:
Здравствуйте, so5team, Вы писали:

S>Это может больно укусить если приходится пользоваться разными компиляторами на разных платформах.

Компилятор задаётся под проект. Никто в здравом уме не станет метаться туда-сюда.

S>Местами и в C++ бывают грабли

Это больше на баг компилятора похоже.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Почему нужно идти в С/С++
От: cppguard  
Дата: 15.03.23 21:02
Оценка:
Здравствуйте, Khimik, Вы писали:

K>А что такое метапрограммирование — макросы?


Шаблоны.
Re[13]: Почему нужно идти в С/С++
От: cppguard  
Дата: 15.03.23 21:13
Оценка:
Здравствуйте, CreatorCray, Вы писали:

V>> Она разрешает или запрещает определённые инструкции

CC>И какие же "инструкции" были запрещены ну к примеру в С++14 по сравнению с С++11?

V>>а так же понимает под ними именно то, что предусмотрено в этой версии стандарта.

CC>Опять таки, смысл чего поменялся между теми же 11 и 14 версиями?

Справедливости ради — загугли "until C++11" site:cppreference.com, а то слабые аргументы получаются.
Re[14]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 15.03.23 23:40
Оценка:
Здравствуйте, cppguard, Вы писали:

C>Справедливости ради — загугли "until C++11"

Вопрос не просто так про 11 vs новее был.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 15.03.23 23:44
Оценка: +3 :)
Здравствуйте, cppguard, Вы писали:

K>>А что такое метапрограммирование — макросы?


C>Шаблоны.

Не просто шаблоны, а шаблоны, фаршированные шаблонами, фаршированные шаблонами, ...
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[10]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 16.03.23 05:00
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

S>>Это может больно укусить если приходится пользоваться разными компиляторами на разных платформах.

CC>Компилятор задаётся под проект. Никто в здравом уме не станет метаться туда-сюда.

Какая категоричность, аж дух захватывает. Вообще-то мир очень разный и проекты бывают очень разные.

S>>Местами и в C++ бывают грабли

CC>Это больше на баг компилятора похоже.

Это больше на баг (точнее на белое пятно) в стандарте C++17 похоже, а clang до недавнего времени строго следовал стандарту. Это белое пятно исправили в C++20 (P1091R3, раздел 10).
Re[13]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 16.03.23 05:09
Оценка: 2 (1)
Здравствуйте, CreatorCray, Вы писали:

V>>а так же понимает под ними именно то, что предусмотрено в этой версии стандарта.

CC>Опять таки, смысл чего поменялся между теми же 11 и 14 версиями?

auto стало можно использовать в качестве параметров в лямбдах. Т.е. в C++14 стало можно так:
auto fn = [](auto a, auto b) {...};

Что вывело удобство написания лямбда-функций просто на совсем другой уровень. Особенно в шаблонном коде.
В C++11 для подобного приходилось вспомогательные типы-функторы с operator() определять.

Еще в C++14 сделали полноценный вывод типов возвращаемых значений для функций/методов.
В C++11 нельзя было просто написать auto в качестве возвращаемого значения, нужно было выводить тип после списка параметров, т.е.:
auto func() -> some_type {...}

Тогда как в C++14 компилятор уже сам мог выводить этот самый some_type:
auto func() {...}

Что, опять же, сильно повысило удобство использования шаблонов.

Там еще несколько полезных вещей было сделано (вроде init-выражения в lambda capture list). Но эти две сходу вспоминаются, т.к. после них с C++14 обратно на C++11 переключаться было очень больно.
Re: Почему нужно идти в С/С++
От: vaa  
Дата: 16.03.23 05:30
Оценка: :)))
Здравствуйте, tapatoon, Вы писали:


T>С/С++ даёт вам свободу. Как её использовать — для багов или для уникальных фичей, зависит только от вас

Ocaml is slower than C but faster than C++.
Уже одно это говорит что ЯП не очень.
Сильно не углублялся в плюсы, но издалека они очень похожи на жаваскрипт.
Это как дисплозия соединительной ткани. Гибкость есть, а вот ходить нормально не получается.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Почему нужно идти в С/С++
От: Артём Австралия жж
Дата: 16.03.23 05:42
Оценка: :))) :)
Здравствуйте, tapatoon, Вы писали:

T>Отвечаю — в С/С++


T>Объясняю на примерах почему


Примеры нерелевантны ситуации на рынке труда. Что востребовано- туда и нужно идти. Сиплюсы давно стали узко специализированной сектой, причём предложение опытных синьёрных "кому за 40" помидоров намного превышает спрос.

Сейчас набежит полтора плюсника- железячник Крейтор и суппортер легаси пластов еао86 ака состим, опять повторят очевидные вещи. Все всплакнут, что веб отжал 90% разработки, и остагутся при своих.
Re[2]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 16.03.23 05:52
Оценка: -3
Аё>Все всплакнут, что веб отжал 90% разработки, и остагутся при своих.
Ну, "матерый С++ник кому за 40" без особых проблем может перейти в веб.
А вот обратный переход практически невозможен...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Почему нужно идти в С/С++
От: cppguard  
Дата: 16.03.23 06:13
Оценка: +3
Здравствуйте, LaptevVV, Вы писали:

LVV>Ну, "матерый С++ник кому за 40" без особых проблем может перейти в веб.

LVV>А вот обратный переход практически невозможен...

Всегда интересовала логика подобных высказываний. Типа С++-сники дофига такие умные, а веб — мартышкин труд? Мой опыт говорит, что программисты, которые имеют дело исключительно с С++, имеют самый зашоренный взгляд и, как в старой шутке, на любом языке будут писать как на С++.
Re[4]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 16.03.23 06:32
Оценка: +1 -1
LVV>>Ну, "матерый С++ник кому за 40" без особых проблем может перейти в веб.
LVV>>А вот обратный переход практически невозможен...
C>Всегда интересовала логика подобных высказываний. Типа С++-сники дофига такие умные, а веб — мартышкин труд? Мой опыт говорит, что программисты, которые имеют дело исключительно с С++, имеют самый зашоренный взгляд и, как в старой шутке, на любом языке будут писать как на С++.
Не так.
Вот я имел дело с начинающими программерами.
И за 2.5 десятка лет неоднократно наблюдал, что школьники, освоившие языки веб даже на хорошем уровне, испытывают БОЛЬШИЕ проблемы с освоением указателей.
Большинство — не осваивает.
О том же писал когда-то Джоэл Спольски.
У них в МИТ при освоении программирования было несколько порогов, два из которых я тоже отмечал у студентов: рекурсия и указатели.
Про указатели он, помнится, писал, что одни — налево (в системные программеры), а другие — направо (в прикладные).

Про обратный переход (от С++) могу сказать, что основная сложность — в освоении инструментария веб-разработки.
Я просто это попробовал.
И где-то за 3 недели от полного нуля в вебе дошел до способности (в моем-то возрасте) написать фронтендную игрушку на JS...
И понимал про node.js
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[14]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 16.03.23 06:57
Оценка:
Здравствуйте, so5team, Вы писали:

CC>>Опять таки, смысл чего поменялся между теми же 11 и 14 версиями?

S>auto стало можно использовать в качестве параметров в лямбдах. Т.е. в C++14 стало можно так:
Это ж добавилась удобняшка а не поменялся смысл старого.

S>Еще в C++14 сделали полноценный вывод типов возвращаемых значений для функций/методов.

Это тоже добавленое а не изменённое.

Ну т.е. получается таки если включить в настрйках проекта сразу максимальную поддерживаемую компилером версию стандарта то писать код можно в стиле почти любой версии до него без особых запарок.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 16.03.23 06:57
Оценка:
Здравствуйте, so5team, Вы писали:

S>Вообще-то мир очень разный и проекты бывают очень разные.

Никто такой фигнёй не станет заниматься без крайней на то нужды. И если приходится так страдать то у проекта и без того будет куча проблем

S>Это больше на баг (точнее на белое пятно) в стандарте C++17 похоже, а clang до недавнего времени строго следовал стандарту.

Мб, мне на сам стандарт давно до лампочки, я смотрю исключительно на то, что генерит компилятор. Ибо теория ну очень отличается от практики.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 16.03.23 06:57
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>Ocaml is slower than C but faster than C++.

Там ж голословный булшит написан
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 16.03.23 06:57
Оценка: -1 :)
Здравствуйте, Артём, Вы писали:

Аё>железячник Крейтор

Как много порой узнаёшь о своей специализации на кывте
Нет, Артёмка, я не железячник.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Почему нужно идти в С/С++
От: Артём Австралия жж
Дата: 16.03.23 07:01
Оценка: :))
Здравствуйте, LaptevVV, Вы писали:

LVV>Ну, "матерый С++ник кому за 40" без особых проблем может перейти в веб.

Может, при должной подготовке, штудировании книжек и т.п.- причём, без потери в деньгах.

LVV>А вот обратный переход практически невозможен...


Обратный переход выглядит примерно так:

-хммм ну вот вы ответили на все вопросы, да, неожидали мы такие умные плюсники от жабиста убогонького хихи... а сколько лет говорите, отрыв от плюсного станка? 5 лет? Так так, нехорошо это"
Сколько же вы хотите?

--Ну я сейчас получаю скромно, XXX, меньше никак не может быть.

"у обоих интервьюверов глаза округляются, грохот падающей на пол челюсти"- мы вам перезвоним (C).
Re[3]: Почему нужно идти в С/С++
От: Артём Австралия жж
Дата: 16.03.23 07:07
Оценка: :)))
Здравствуйте, CreatorCray, Вы писали:

Аё>>железячник Крейтор

CC>Как много порой узнаёшь о своей специализации на кывте
CC>Нет, Артёмка, я не железячник.

Ты не проектировщик IC конечно же, но на низком уровне с железом толи дрова толи фильтры в близко к ядру пишешь. Короче, железячник.
Re[4]: Почему нужно идти в С/С++
От: LaptevVV Россия  
Дата: 16.03.23 07:19
Оценка:
LVV>>А вот обратный переход практически невозможен...
Аё>Обратный переход выглядит примерно так:
Аё>-хммм ну вот вы ответили на все вопросы, да, неожидали мы такие умные плюсники от жабиста убогонького хихи... а сколько лет говорите, отрыв от плюсного станка? 5 лет? Так так, нехорошо это"
Аё>Сколько же вы хотите?
Аё>--Ну я сейчас получаю скромно, XXX, меньше никак не может быть.
Аё>"у обоих интервьюверов глаза округляются, грохот падающей на пол челюсти"- мы вам перезвоним (C).
Ну, у меня тогда вопрос: а чего это из веба в С++ подался-то, если там так хорошо было.
А во-вторых почитай мой ответ про молодых программеров.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[15]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 16.03.23 07:27
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Это ж добавилась удобняшка а не поменялся смысл старого.

CC>Это тоже добавленое а не изменённое.

Так исходная формулировка -- "А что тут непонятного, когда пишешь код ориентируешься на определённую версию стандарта. Она разрешает или запрещает определённые инструкции" -- говорит не только о запретах, но и новых возможностях. Вот в C++14 появилось несколько фич, которых не было в C++11, т.е. С++14 разрешил определенные инструкции.

Причем пара из упомянутых мной вещей (реальный auto для вывода типа возвращаемого значения и init-выражения в capture list) сделала доступным то, что в рамках C++11 делалось э... через одно место и с кучей ненужных усилий.

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

И это как бы не совсем то, что "включаешь определенный стандарт в опциях компилятора", т.к. в большинстве случаев нормально написанный код на C++14 будет компилироваться и в режиме C++17, и C++20 (а в скором времени и в C++23).
Re[20]: Почему нужно идти в С/С++
От: Privalov  
Дата: 16.03.23 07:32
Оценка: 3 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>Я ж говорю: в какой-то книжке было написано, что один гуру расшифровывал прогу из 4 строк более 4 часов...


Заинтригован.
Нашел какую-то реализацию под Винду. Поставлю себе на ноут, посмотрю.
Re[12]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 16.03.23 07:59
Оценка:
Здравствуйте, CreatorCray, Вы писали:

S>>Вообще-то мир очень разный и проекты бывают очень разные.

CC>Никто такой фигнёй не станет заниматься без крайней на то нужды.

"Отучаемся говорить за всех" (с)

CC>И если приходится так страдать то у проекта и без того будет куча проблем


Не думаю, что разработчики Qt или какого-нибудь Connext DDS (или OpenDDS) так уж страдают и имеют кучу проблем.
Re[16]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 16.03.23 18:50
Оценка:
Здравствуйте, so5team, Вы писали:

S> говорит не только о запретах, но и новых возможностях.

Поскольку в С++ всё ещё стараются заботиться об обратной совместимости то за новые возможности переживать не стоит — в максимально поддерживаемом стандарте они все должны наличествовать.
Так что переживать стоит только за то, что было запрещено после какой то версии.
Об этом и была речь — что ж там такого было запрещено?

S>сделала доступным то, что в рамках C++11 делалось э... через одно место и с кучей ненужных усилий.

Это скомпилируется в С++20?

S>Собственно, само по себе высказывание "пишешь под определенный стандарт C++" означает не что иное, как использование фич из стандарта, которых не было в предыдущих стандартах.

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

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

А зачем вообще этот откат?

S>И это как бы не совсем то, что "включаешь определенный стандарт в опциях компилятора", т.к. в большинстве случаев нормально написанный код на C++14 будет компилироваться и в режиме C++17, и C++20 (а в скором времени и в C++23).

Верно. Потому нет никакой нужды ставить для нового проекта что либо ниже чем текущий стандарт, чтоб просто писать и не париться что в какой то момент придётся лезть и поднимать версию стандарта просто потому что понадобилась более новая фича
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[13]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 16.03.23 18:50
Оценка:
Здравствуйте, so5team, Вы писали:

CC>>Никто такой фигнёй не станет заниматься без крайней на то нужды.

S>"Отучаемся говорить за всех" (с)
Ты правда сейчас хочешь сказать что ты станешь заниматься такой фигнёй без крайней на то нужды?

CC>>И если приходится так страдать то у проекта и без того будет куча проблем

S>Не думаю, что разработчики Qt или какого-нибудь Connext DDS (или OpenDDS) так уж страдают и имеют кучу проблем.
Таки страдают и таки имеют. Поддержка зоопарка версий это тот ещё геморрой.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: Почему нужно идти в С/С++
От: qqqqq  
Дата: 17.03.23 00:30
Оценка: 3 (1)


Re[17]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 17.03.23 04:55
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

S>> говорит не только о запретах, но и новых возможностях.

CC>Поскольку в С++ всё ещё стараются заботиться об обратной совместимости то за новые возможности переживать не стоит — в максимально поддерживаемом стандарте они все должны наличествовать.

Не обязательно. Сходу вспоминается std::aligned_storage, введенный в C++11 и помеченный к удалению в C++23. Или uncaught_exception, который был до C++11, видоизменился в C++11 (помечен как noexcept вместо throw), помеченный к удалению в C++17 и удаленный в C++20.

CC>Об этом и была речь — что ж там такого было запрещено?


Между C++11 и C++14, емнип, ничего не запрещалось.

S>>сделала доступным то, что в рамках C++11 делалось э... через одно место и с кучей ненужных усилий.

CC>Это скомпилируется в С++20?

Должно.

S>>Собственно, само по себе высказывание "пишешь под определенный стандарт C++" означает не что иное, как использование фич из стандарта, которых не было в предыдущих стандартах.

CC>Это означает именно что ограничивание себя именно этой версией стандарта

Да.

CC>тогда как обычно пишут так, как лучше выходит.


В первый раз с таким сталкиваюсь. Везде были ограничения на максимальную версию стандарта (или версию компилятора, если стандарт еще не полностью реализован, как это было с долгостроями C++98, C++11 и нынешним C++20). Но это мой опыт, он сильно ограничен.

CC>Предлагаешь потом лазить по коду и выяснять какой же итоговый набор фич был использован и какому стандарту он соответствует?


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

CC>Нафига?


Что бы не иметь проблем с переносом софта на другой компилятор/платформу.

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

CC>А зачем вообще этот откат?

Именно откат -- это форс-мажор, означающий что кто-то где-то сильно облажался.
А вот чтобы такого форс-мажора не было, в определенном классе ПО ограничивают версию стандарта для того, чтобы иметь возможность собирать софт разными компиляторами на разных платформах.

S>>И это как бы не совсем то, что "включаешь определенный стандарт в опциях компилятора", т.к. в большинстве случаев нормально написанный код на C++14 будет компилироваться и в режиме C++17, и C++20 (а в скором времени и в C++23).

CC>Верно. Потому нет никакой нужды ставить для нового проекта что либо ниже чем текущий стандарт

Это от типа проекта зависит. Ну и от желания побегать по граблям самых свежих версий компиляторов, в которых поддержка новых фич из новых стандартов еще только-только появилась.
Re[14]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 17.03.23 04:57
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>>>Никто такой фигнёй не станет заниматься без крайней на то нужды.

S>>"Отучаемся говорить за всех" (с)
CC>Ты правда сейчас хочешь сказать что ты станешь заниматься такой фигнёй без крайней на то нужды?

Хорошо бы определить понятие "крайней нужды". Ибо для проектов, вроде Qt, Connext DDS или nginx переносимость на разные платформы и разные компиляторы -- это повседневная обыденность.

CC>>>И если приходится так страдать то у проекта и без того будет куча проблем

S>>Не думаю, что разработчики Qt или какого-нибудь Connext DDS (или OpenDDS) так уж страдают и имеют кучу проблем.
CC>Таки страдают и таки имеют. Поддержка зоопарка версий это тот ещё геморрой.

Да? Ну ладно, геморрой так геморрой, хоть буду знать как это называется.
Re[18]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 17.03.23 07:38
Оценка:
Здравствуйте, so5team, Вы писали:

S>Не обязательно. Сходу вспоминается std::aligned_storage

Это ж не часть самого языка

S>Или uncaught_exception, который был до C++11, видоизменился в C++11 (помечен как noexcept вместо throw), помеченный к удалению в C++17 и удаленный в C++20.

Опять таки не часть именно что самого языка.

S>Между C++11 и C++14, емнип, ничего не запрещалось.

Так и дальше не припоминается чтоб именно в языке что то кардинально менялось.
Вот в сравнении с до-С++11 то же ключевое слово auto изменило смысл. Это ломающее изменение именно языка, пусть даже оно уже сто лет как не использовалось.

S>>>Собственно, само по себе высказывание "пишешь под определенный стандарт C++" означает не что иное, как использование фич из стандарта, которых не было в предыдущих стандартах.

CC>>Это означает именно что ограничивание себя именно этой версией стандарта
S>Да.
А зачем?

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

А смысл?

S> или версию компилятора

Вот это уже смысл имеет. Но ограничение не сверху а снизу. Т.е. минимальная версия компилятора.

CC>>Предлагаешь потом лазить по коду и выяснять какой же итоговый набор фич был использован и какому стандарту он соответствует?

S>Не нужно лазить. Обычно у компиляторов есть ключики -std.
Не, наоборот. Я сомневаюсь что все помнят в какой версии какие фичи добавились, потому код пишу с использованием тех фич, которые для него подходят лучше всего. И мне пофигу из какой они версии. Потому и не вижу никакой логики в ограничивании сверху.

S>Что бы не иметь проблем с переносом софта на другой компилятор/платформу.

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

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

CC>>А зачем вообще этот откат?
S>Именно откат -- это форс-мажор, означающий что кто-то где-то сильно облажался.
Облажался как именно? И кто?

S>в определенном классе ПО

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

S> ограничивают версию стандарта для того, чтобы иметь возможность собирать софт разными компиляторами на разных платформах.

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

CC>>Верно. Потому нет никакой нужды ставить для нового проекта что либо ниже чем текущий стандарт

S>Это от типа проекта зависит. Ну и от желания побегать по граблям самых свежих версий компиляторов
Никто не берёт под проект альфу наиновейшего компилятора, все пользуют тот, который уже проверен. И там нет никакого смысла занижать версию стандарта.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[15]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 17.03.23 07:38
Оценка:
Здравствуйте, so5team, Вы писали:

CC>>Ты правда сейчас хочешь сказать что ты станешь заниматься такой фигнёй без крайней на то нужды?

S>Хорошо бы определить понятие "крайней нужды".
Ты ж сам его и дал: когда есть реальная, а не гипотетическая, необходимость обеспечить собираемость на всяком хламе.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[18]: Почему нужно идти в С/С++
От: night beast СССР  
Дата: 17.03.23 08:13
Оценка:
Здравствуйте, so5team, Вы писали:

S>Не обязательно. Сходу вспоминается std::aligned_storage, введенный в C++11 и помеченный к удалению в C++23.


не совсем понял, что предлагается вместо него?
Re[19]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 17.03.23 08:24
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

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


S>>Не обязательно. Сходу вспоминается std::aligned_storage

CC>Это ж не часть самого языка

Так-то стандартная библиотека -- это часть языка. Например, std::forward и std::move -- реализованы в виде библиотечных функций, но это часть языка, без которой программировать, наверное, можно, но зачем. Точно так же, std::less, будучи библиотечным классом, позволяет безопасно делать то, что на "голом" языке делать не следует (сравнивать указатели между собой). Ну или std::launder -- это часть языка, хотя и представляет из себя библиотечный вызов.

S>>Между C++11 и C++14, емнип, ничего не запрещалось.

CC>Так и дальше не припоминается чтоб именно в языке что то кардинально менялось.

В C++17 окончательно выпилили std::auto_ptr и триграфы. И если с триграфами ладно, вряд ли они у кого-то были, но вот без std::auto_ptr старый код новыми компиляторами в 17-ом стандарте уже не собирается.

S>>>>Собственно, само по себе высказывание "пишешь под определенный стандарт C++" означает не что иное, как использование фич из стандарта, которых не было в предыдущих стандартах.

CC>>>Это означает именно что ограничивание себя именно этой версией стандарта
S>>Да.
CC>А зачем?

Например: не париться, если приходит заказчик с пожеланием видеть софт на своей платформе, а там у него только C++14. И более свежий не предвидится в перспективе нескольких нет. Причины тому могут быть разными, начиная от наличия сертификатов от каких-либо проверяющих органов, до банального нежелания покупать новую версию VisualStudio.

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

CC>А смысл?

Если делается библиотека, то чем ниже стандарт, тем больше народу сможет ее использовать. Это как один из примеров.

CC>Не, наоборот. Я сомневаюсь что все помнят в какой версии какие фичи добавились, потому код пишу с использованием тех фич, которые для него подходят лучше всего. И мне пофигу из какой они версии. Потому и не вижу никакой логики в ограничивании сверху.


Ну вот такой подход и бьет потом по рукам, когда выясняется, что задействовали концепты из C++20, а нужно оставаться в рамках C++17, потому что на платформе заказчика C++20 нет.

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

CC>>>А зачем вообще этот откат?
S>>Именно откат -- это форс-мажор, означающий что кто-то где-то сильно облажался.
CC>Облажался как именно? И кто?

Тот, кто принимал решение о выборе стандарта. Техлид или архитектор, тут от организации работ зависит. Если речь о библиотеках типа Qt или Connext DDS, то здесь еще и вина маркетологов могла быть.

S>>в определенном классе ПО

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

Поэтому я сразу и сказал "отучаемся говорить за всех". Сей зоопарк имеет место быть.

CC>Я пишу системный код под линейку довольно таки разных девайсов и то давно уже есть поддержка С++20 на них всех.


Повезло.

CC>Никто не берёт под проект альфу наиновейшего компилятора, все пользуют тот, который уже проверен. И там нет никакого смысла занижать версию стандарта.


Ну раз никто, значит никто. Вам виднее.
Re[19]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 17.03.23 08:29
Оценка:
Здравствуйте, night beast, Вы писали:

S>>Не обязательно. Сходу вспоминается std::aligned_storage, введенный в C++11 и помеченный к удалению в C++23.


NB>не совсем понял, что предлагается вместо него?


Сам пропозал: https://wg21.link/p1413

В кратком виде описано здесь: https://stackoverflow.com/a/71828512 (тут же и краткие примеры как следует делать).
Re[20]: Почему нужно идти в С/С++
От: night beast СССР  
Дата: 17.03.23 08:50
Оценка:
Здравствуйте, so5team, Вы писали:

NB>>не совсем понял, что предлагается вместо него?


S>Сам пропозал: https://wg21.link/p1413

S>В кратком виде описано здесь: https://stackoverflow.com/a/71828512 (тут же и краткие примеры как следует делать).

да, читал. просто удивился что они реально предлагают заменить тип, скрывающий детали, на:
alignas(T) std::byte t_buff[sizeof(T)];
Re[21]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 17.03.23 08:56
Оценка:
Здравствуйте, night beast, Вы писали:

S>>Сам пропозал: https://wg21.link/p1413

S>>В кратком виде описано здесь: https://stackoverflow.com/a/71828512 (тут же и краткие примеры как следует делать).

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

NB>
NB>alignas(T) std::byte t_buff[sizeof(T)];
NB>


Видимо, слишком уж часто народ ошибался при использовании std::aligned_storage. Иначе мне самому логику принятия такого решения сложно найти.
Re[20]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 17.03.23 18:42
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>Так-то стандартная библиотека -- это часть языка.

Всё, что можно написать на этом же языке — не часть языка.

S> Например, std::forward и std::move -- реализованы в виде библиотечных функций, но это часть языка

Прикинь, я std не пользуюсь вообще и при этом move semantics использую очень активно. Как же так?

S>Точно так же, std::less, будучи библиотечным классом, позволяет безопасно делать то, что на "голом" языке делать не следует (сравнивать указатели между собой).

А то, что делает std::less можно делать только через std либу или как то ещё можно? Вопрос с подвохом.

S>В C++17 окончательно выпилили std::auto_ptr

Это библиотечная хрень, впрочем совершенно ничего не мешает тебе продолжать использовать тот же самый код std::auto_ptr даже в С++20.

S> и триграфы.

Это скорее препроцессор чем компилятор.

S>вот без std::auto_ptr старый код новыми компиляторами в 17-ом стандарте уже не собирается.

А если подумать? Это всего то небольшой темплейтный класс, неужто ну никак нельзя?

S>потому что на платформе заказчика C++20 нет.

И стало это известно только на этапе сдачи проекта? Как уже говорилось — тогда у этого проекта проблемы посерьёзнее.

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

Как уже говорилось — тогда у этого проекта проблемы посерьёзнее.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[21]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 17.03.23 18:55
Оценка:
Здравствуйте, CreatorCray, Вы писали:

S>> Например, std::forward и std::move -- реализованы в виде библиотечных функций, но это часть языка

CC>Прикинь, я std не пользуюсь вообще и при этом move semantics использую очень активно. Как же так?

Может закатываете Солнце вручную?

CC>А то, что делает std::less можно делать только через std либу или как то ещё можно? Вопрос с подвохом.


У вас и C++20 уже полностью доступен, может вы уверены и в том, что uintptr_t вам всегда доступен.

S>>В C++17 окончательно выпилили std::auto_ptr

CC>Это библиотечная хрень, впрочем совершенно ничего не мешает тебе продолжать использовать тот же самый код std::auto_ptr даже в С++20.

Ничего кроме компилятора и его стандартной либы.

S>>вот без std::auto_ptr старый код новыми компиляторами в 17-ом стандарте уже не собирается.

CC>А если подумать?

Сами-то пробовали. Ну подумать-то?

А то я редко сталкиваюсь с людьми, которые и думают, и настолько уверены в своей правоте.

CC>Это всего то небольшой темплейтный класс, неужто ну никак нельзя?


Без переписывания?

S>>потому что на платформе заказчика C++20 нет.

CC>И стало это известно только на этапе сдачи проекта?

Нет. Обычно это бывает так: у компании есть полукоробочный продукт, который кастомизируется под заказчика. Приходит новый заказчик, продукт нужно подгонять под него.
Re[22]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 17.03.23 21:41
Оценка:
Здравствуйте, so5team, Вы писали:

S>Может закатываете Солнце вручную?

В смысле писать каст руками каждый раз? Нет есессна.
Но подобные примитивы совершенно не обязательно пользовать реализацию именно из std.

S>У вас и C++20 уже полностью доступен

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

S>может вы уверены и в том, что uintptr_t вам всегда доступен.

Мне ВСЕГДА доступно то, что имеется в используемом под проект платформенном framework. Так что мне совершенно всё равно что там во вспомогательных либах поменялось, я не использую из std совершенно ничего, но всё равно имею всё что мне там было нужно. Что забавно — оно ещё и работает быстрее std реализаций.
Если комитет решит что нить ещё задепрекейтить или поменять поведение существующего, то на мне это не отразится совершенно никак. Сюрпризов не будет.

CC>>Это библиотечная хрень, впрочем совершенно ничего не мешает тебе продолжать использовать тот же самый код std::auto_ptr даже в С++20.

S>Ничего кроме компилятора и его стандартной либы.
Ты хочешь сказать что более новый компилятор не соберёт имплементацию std::auto_ptr?
Стандартная либа же пофигу, она не обязательна к использованию, более того никакой магии в ней самой нет да и сама часто бывает написана местами очень не очень, не по криворукости (впрочем и такое бывало) а просто потому что задача стояла сделать всемогутер на все случаи жизни, что неминуемо ведёт к компромиссам и работает оно в итоге везде одинаково плохо.

S>А то я редко сталкиваюсь с людьми, которые и думают, и настолько уверены в своей правоте.

Да потому что на практике делаю то, про что рассказываю.

CC>>Это всего то небольшой темплейтный класс, неужто ну никак нельзя?

S>Без переписывания?
Переписывания чего?

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

И поэтому надо заранее пессимизировать ВЕСЬ код под ну очень уж гипотетический случай прихода волосатого caveman из пещеры, который к тому же принесёт с собой ну столько бабла, что ну никак нельзя будет сказать ему что его компилятор давно устарел.
Соболезную работающим в таком грустном месте.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[23]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 18.03.23 06:07
Оценка:
Здравствуйте, CreatorCray, Вы писали:

S>>Может закатываете Солнце вручную?

CC>В смысле писать каст руками каждый раз? Нет есессна.
CC>Но подобные примитивы совершенно не обязательно пользовать реализацию именно из std.

Если вы вынуждены повторять руками то, что уже сделано в std, то это и есть закат вручную.

S>>может вы уверены и в том, что uintptr_t вам всегда доступен.

CC>Мне ВСЕГДА доступно то, что имеется в используемом под проект платформенном framework.

Это прекрасно. Но это не значит, что это во всех проектах так.

CC>>>Это библиотечная хрень, впрочем совершенно ничего не мешает тебе продолжать использовать тот же самый код std::auto_ptr даже в С++20.

S>>Ничего кроме компилятора и его стандартной либы.
CC>Ты хочешь сказать что более новый компилятор не соберёт имплементацию std::auto_ptr?

Именно std::auto_ptr? Именно внутри std::?
Собрать-то он может и соберет, но это будет такое жирное UB, собственноручно вставленное в код, что жирнее некуда.

S>>А то я редко сталкиваюсь с людьми, которые и думают, и настолько уверены в своей правоте.

CC>Да потому что на практике делаю то, про что рассказываю.

Т.е. эту фразу: "Потому нет никакой нужды ставить для нового проекта что либо ниже чем текущий стандарт" следует относить только к тем проектам, над которыми вы лично работаете?

CC>>>Это всего то небольшой темплейтный класс, неужто ну никак нельзя?

S>>Без переписывания?
CC>Переписывания чего?

Кода, в котором std::auto_ptr используется. Грубо говоря, 20 лет назад был написан код, который до сих пор нормально работал в рамках C++98/03 стандартов. В 2023-ем захотели обновиться до C++17 или C++20.

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

CC>И поэтому надо заранее пессимизировать ВЕСЬ код под ну очень уж гипотетический случай прихода волосатого caveman из пещеры, который к тому же принесёт с собой ну столько бабла, что ну никак нельзя будет сказать ему что его компилятор давно устарел.

Например, компании готовы платить за Red Hat Enterprise Linux с 10 летней поддержкой и считают, что это оправдано. У таких компаний есть деньги и не вижу смысла от этих денег отказываться из-за желания всегда использовать только самый свежий стандар.
Re[24]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 18.03.23 07:45
Оценка:
Здравствуйте, so5team, Вы писали:

S>Если вы вынуждены повторять руками то, что уже сделано в std, то это и есть закат вручную.

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

S>Это прекрасно. Но это не значит, что это во всех проектах так.

На хреновых есессна не так.

S>Именно std::auto_ptr? Именно внутри std::?

Что мещает его скопировать из предыдущей версии?

S>Собрать-то он может и соберет, но это будет такое жирное UB, собственноручно вставленное в код, что жирнее некуда.

В чём именно UB? Его ж убрали не потому что был сломан а потому что придумали лучший вариант а этот решили просто убрать.

S>Например, компании готовы платить за Red Hat Enterprise Linux с 10 летней поддержкой и считают, что это оправдано.

И каким боком там стандарт С++?
Платят там совсем не за это.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[25]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 18.03.23 08:14
Оценка:
Здравствуйте, CreatorCray, Вы писали:

S>>Это прекрасно. Но это не значит, что это во всех проектах так.

CC>На хреновых есессна не так.

Понятно. Но мне бы хотелось увидеть ответ вот на этот вопрос:

> Т.е. эту фразу: "Потому нет никакой нужды ставить для нового проекта что либо ниже чем текущий стандарт" следует относить только к тем проектам, над которыми вы лично работаете?


S>>Именно std::auto_ptr? Именно внутри std::?

CC>Что мещает его скопировать из предыдущей версии?
CC>В чём именно UB? Его ж убрали не потому что был сломан а потому что придумали лучший вариант а этот решили просто убрать.

ЕМНИП, в пространство имен std можно добавлять только специализации std-шных классов для типов пользователей. Т.е., специализацию условного std::less для vasiya::pupkin::long_integer в std поместить можно. Какой-то новый класс/функцию/оператор/перегрузку -- нет.

S>>Например, компании готовы платить за Red Hat Enterprise Linux с 10 летней поддержкой и считают, что это оправдано.

CC>И каким боком там стандарт С++?

Там будет конкретная версия gcc с каким-то стандартом C++, далеко не самым свежим.

И да, поставить на этот Linux более свежий gcc (clang, intel или еще что-то) может быть невозможно по организационным/политическим причинам.
Re[20]: Почему нужно идти в С/С++
От: Privalov  
Дата: 18.03.23 20:07
Оценка: :)
Здравствуйте, LaptevVV, Вы писали:

LVV>Я ж говорю: в какой-то книжке было написано, что один гуру расшифровывал прогу из 4 строк более 4 часов...


Теперь понятно, почему. Там есть что расшифровывать.

https://tryapl.org
Re[26]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 19.03.23 07:46
Оценка:
Здравствуйте, so5team, Вы писали:

S>Понятно. Но мне бы хотелось увидеть ответ вот на этот вопрос:

>> Т.е. эту фразу: "Потому нет никакой нужды ставить для нового проекта что либо ниже чем текущий стандарт" следует относить только к тем проектам, над которыми вы лично работаете?
Вопрос довольно размытый. Если надо краткий да/нет ответ то нет, не только.
Разжёвывать это всё ещё раз мне лень.

S>ЕМНИП, в пространство имен std можно добавлять только специализации std-шных классов для типов пользователей.

S> Т.е., специализацию условного std::less для vasiya::pupkin::long_integer в std поместить можно. Какой-то новый класс/функцию/оператор/перегрузку -- нет.
Это не запрет, это скорее соглашение, примерно как резервация "__" префикса для платформенных нужд.
В реальности же ничего не мешает да хоть всё там своим заменить.

S>И да, поставить на этот Linux более свежий gcc (clang, intel или еще что-то) может быть невозможно по организационным/политическим причинам.

Это аналог "а вдруг надо будет чтоб работало на WinXP 32bit"
За допиливание чтоб работало на древнем хламе принято брать весьма серьёзные деньги.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[27]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 19.03.23 08:54
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Разжёвывать это всё ещё раз мне лень.


Вы так говорите как будто уже объясняли один раз (на самом деле нет).

S>>И да, поставить на этот Linux более свежий gcc (clang, intel или еще что-то) может быть невозможно по организационным/политическим причинам.

CC>Это аналог "а вдруг надо будет чтоб работало на WinXP 32bit"

Нет.
Re[23]: Почему нужно идти в С/С++
От: Артём Австралия жж
Дата: 19.03.23 08:56
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

CC>Мне ВСЕГДА доступно то, что имеется в используемом под проект платформенном framework. Так что мне совершенно всё равно что там во вспомогательных либах поменялось,


Т.е. твой опыт внутрикорпоративных велосипедов за переделами компании нерелевантен. Все равно как MFC -й CString, только хуже.
Re[24]: Почему нужно идти в С/С++
От: Ночной Смотрящий Россия  
Дата: 20.03.23 09:03
Оценка: :)
Здравствуйте, Артём, Вы писали:

Аё>Т.е. твой опыт внутрикорпоративных велосипедов за переделами компании нерелевантен. Все равно как MFC -й CString, только хуже.


Видел я как то похожий проект, где не то что std, даже rtl свой был. Проталкивали это не в силу каких то супертребований, а под тем же соусом что и СС.
Начальство, однако, что то стало подозревать. Сперва когда новые люди в проекте не могли более полугода начать приносить пользу. Потом когда мелкие фичи стали реализовываться долго и больно. Последней каплей было когда какую то фичу временно заказали аутсорсерам на какой то богомерзкой платформе типа Java, и они ее выкатили месяца за три, а плюсовые гении свой вариант пилили полтора года, а результат оказался не просто хуже аутсорсеного по качеству, но даже не достиг приемлемого по требованиям уровня распознавания.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[25]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 20.03.23 10:49
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Сперва когда новые люди в проекте не могли более полугода начать приносить пользу.

А пробовали нанимать таки инженеров а не студней с курсом жаба за три дня?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[26]: Почему нужно идти в С/С++
От: Ночной Смотрящий Россия  
Дата: 20.03.23 11:10
Оценка:
Здравствуйте, CreatorCray, Вы писали:

НС>>Сперва когда новые люди в проекте не могли более полугода начать приносить пользу.

CC>А пробовали нанимать таки инженеров а не студней с курсом жаба за три дня?

В той команде джунов и миддлов не было совсем. Просто код за десятилетия эволюции и переписывания всего что можно в силу NIH-синдрома превратился в нечто. Домножаем все это на крайне сложную предметную область и получаем что получаем.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[27]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 20.03.23 11:24
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Просто код за десятилетия эволюции и переписывания всего что можно в силу NIH-синдрома превратился в нечто.


А там даже попыток не делалось как-то переиспользовать готовые вещи из внешнего мира (хоть из C++ной stdlib, хоть из Boost, хоть из ACE/POCO и т.д.)?
Re[28]: Почему нужно идти в С/С++
От: Ночной Смотрящий Россия  
Дата: 20.03.23 13:29
Оценка: 2 (2) +1
Здравствуйте, so5team, Вы писали:

S>А там даже попыток не делалось как-то переиспользовать готовые вещи из внешнего мира (хоть из C++ной stdlib, хоть из Boost, хоть из ACE/POCO и т.д.)?


Нет. Проект начался в 90-х, и на тот момент им в основном продолжали рулить те люди, которые его начинали. А когда ты 15-20 лет только один проект делаешь, то у тебя восприятие технологий становится несколько biased, изначальные установки превращаются в идеологемы (мол если проект успешный, то строго все принятые решения были на 100% правильными). И надо очень большое мужество чтобы в этот момент отбросить все накопленное и непредвзято посмотреть вокруг.
Собственно, и тут на форуме постоянно это все наблюдается, пусть и не в такой запущенной форме.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[29]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 20.03.23 14:24
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Проект начался в 90-х


Тогда наличие собственной RTL понятно.
Re[27]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 20.03.23 19:04
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>>>Видел я как то похожий проект, где не то что std, даже rtl свой был

НС>>>Сперва когда новые люди в проекте не могли более полугода начать приносить пользу.
НС>Просто код за десятилетия эволюции и переписывания всего что можно в силу NIH-синдрома превратился в нечто.
Но считаешь ты что это всё только потому, что они вместо std::map пишут ourfw::map?
Когда сам проект превращается в копролит совсем не важно какой std/rtl был использован — там совсем не в консерватории проблемы.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[28]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 20.03.23 19:04
Оценка:
Здравствуйте, so5team, Вы писали:

S>А там даже попыток не делалось как-то переиспользовать готовые вещи из внешнего мира (хоть из C++ной stdlib, хоть из Boost, хоть из ACE/POCO и т.д.)?


В одной из компаний где я работал буст и вовсе попал под запрет, после того как их очередное обновление сломало нам столько, что оказалось что проще написать своё, проще и менее универсальное, чем починить тот пц что они наворотили.
В результате мало того что стало работать как надо так ещё и неслабый прирост скорости что работы что компиляции получили.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[29]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 20.03.23 19:04
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

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

А также очень много свободного времени, чтоб чинить ещё и чужой код.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[30]: Почему нужно идти в С/С++
От: Ночной Смотрящий Россия  
Дата: 21.03.23 08:49
Оценка:
Здравствуйте, CreatorCray, Вы писали:

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

CC>А также очень много свободного времени, чтоб чинить ещё и чужой код.

Это время более чем окупается, не переживай.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[28]: Почему нужно идти в С/С++
От: Ночной Смотрящий Россия  
Дата: 21.03.23 08:49
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Когда сам проект превращается в копролит совсем не важно какой std/rtl был использован


Или важно.

CC> — там совсем не в консерватории проблемы.


А в чем? Ели захочешь мне рассказать, что там тупые программисты были — не стоит, там в определенном аспекте очень крутая команда, я бы сказал уникальная и лучшая в мире. Но вот недоверие к вообще любому стороннему коду все испортило.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[29]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 21.03.23 09:11
Оценка: +2
Здравствуйте, CreatorCray, Вы писали:

S>>А там даже попыток не делалось как-то переиспользовать готовые вещи из внешнего мира (хоть из C++ной stdlib, хоть из Boost, хоть из ACE/POCO и т.д.)?


CC>В одной из компаний где я работал буст и вовсе попал под запрет, после того как их очередное обновление сломало нам столько, что оказалось что проще написать своё, проще и менее универсальное, чем починить тот пц что они наворотили.

CC>В результате мало того что стало работать как надо так ещё и неслабый прирост скорости что работы что компиляции получили.

Boost -- это вообще отдельная тема для разговора, т.к. он и слишком большой (хотя через vcpkg его можно использовать и помодульно, но vcpkg не так уж и давно получился), и какие-то вещи там были порождены ну совсем уж сумрачным гением.

Однако, если в старом проекте в 90-х было написано вообще чуть ли не все свое, то со временем какие-то части можно было заменить на что-то стороннее. Скажем, в 90-е чуть ли не каждый второй был вынужден писать свои смарт-поинтеры. С появлением в начале нулевых Boost-а эти самые смарт-поинтеры можно был из Boost-а скомуниздить.

Собственно, если люди не занимаются совсем уж узкой темой (хард рил-тайм, к примеру, или замороченный HPC), то больше 20 лет все делать только и исключительно на собственных велосипедах... Ну для этого нужны очень уж веские основания.
Re[31]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 21.03.23 09:26
Оценка: :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Это время более чем окупается, не переживай.

Не, не окупается. Плавали, знаем.
Куда быстрее и безбажнее получается написать аналог, в котором будет только то, что надо. Даже не обязательно с нуля, можно тупо форкнуть и выпилить оттуда весь мусор.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[29]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 21.03.23 09:26
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

CC>>Когда сам проект превращается в копролит совсем не важно какой std/rtl был использован

НС>Или важно.
На фоне уже гигантского копролита — не важно.

НС>там в определенном аспекте очень крутая команда

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

НС>Но вот недоверие к вообще любому стороннему коду все испортило.

А с чего ты взял что причиной было именно недоверие к стороннему коду а не то, что проект тупо перерос свой изначальный дизайн и стал обваливаться под собственным весом, как очень часто бывает со старыми проектами.
Когда у тебя небоскрёб построен так же как привыкли строить сарай и потому вот вот обвалится — не сильно важно какого цвета были гвозди.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[30]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 21.03.23 09:38
Оценка:
Здравствуйте, so5team, Вы писали:

S>Boost -- это вообще отдельная тема для разговора, т.к. он и слишком большой (хотя через vcpkg его можно использовать и помодульно, но vcpkg не так уж и давно получился), и какие-то вещи там были порождены ну совсем уж сумрачным гением.

Там суровая жесть местами.

S>Однако, если в старом проекте в 90-х было написано вообще чуть ли не все свое, то со временем какие-то части можно было заменить на что-то стороннее.

Или переписать на те же мотивы.

S>С появлением в начале нулевых Boost-а эти самые смарт-поинтеры можно был из Boost-а скомуниздить.

Мы тогда ещё поначалу скомуниздили, поплевались, выкинули, написали свои похожие, только поудобнее.

S> Ну для этого нужны очень уж веские основания.

Они работают, этого достаточно.
Скорее надо веские основания менять на что то стороннее, что хз как поддерживать и обслуживать.
Буст нам несколько раз сломал всю посевную из за багов, которые в их темплейтном маразме хрен поймаешь и починишь. А в обновлении они починили одно и наглухо сломали другое.
После чего буст и был отправлен на помоечку и написаны свои аналоги. На порядки проще и куда менее темплейтно.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[32]: Почему нужно идти в С/С++
От: Ночной Смотрящий Россия  
Дата: 21.03.23 09:40
Оценка:
Здравствуйте, CreatorCray, Вы писали:

НС>>Это время более чем окупается, не переживай.

CC>Не, не окупается. Плавали, знаем.

Еще как окупается. Плавали, знаем.

CC>Куда быстрее и безбажнее получается написать аналог,


Это если аналог примитивный и таких аналогов не очень много. Иначе получаем что получаем.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[30]: Почему нужно идти в С/С++
От: Ночной Смотрящий Россия  
Дата: 21.03.23 09:40
Оценка:
Здравствуйте, CreatorCray, Вы писали:

НС>>там в определенном аспекте очень крутая команда

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

Ну понятно. Лишь у тебя код идеальный, я верно понял?

НС>>Но вот недоверие к вообще любому стороннему коду все испортило.

CC>А с чего ты взял что причиной было именно недоверие к стороннему коду

Наверное потому что они сами мне об этом сказали?

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


Есть такое понятие как рефакторинг. Он помогает в такой ситуации.
Но вот тут то мы и попадаем в засаду (даже если оставить за скобками крайнюю недружелюбность к сему действию плюсов) — чем больше ты переписываешь стандартного кода, тем больше кода в проекте , и тем дороже и болезненнее рефакторинг.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[31]: Почему нужно идти в С/С++
От: so5team https://stiffstream.com
Дата: 21.03.23 10:22
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

S>>С появлением в начале нулевых Boost-а эти самые смарт-поинтеры можно был из Boost-а скомуниздить.

CC>Мы тогда ещё поначалу скомуниздили, поплевались, выкинули, написали свои похожие, только поудобнее.

Да, тоже вариант. В любом случае, можно подсмотреть как сделано у других.

S>> Ну для этого нужны очень уж веские основания.

CC>Они работают, этого достаточно.

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

Для того же Boost-а (ACE, POCO и т.д.) хоть какая-то документация есть, вопросы-ответы в интернете и т.д.
По своим же велосипедам только код этих самых велосипедов, хорошо если с комментариями. Хотя и встречаются редкие исключения.
Re: Почему нужно идти в С/С++
От: gyraboo  
Дата: 22.03.23 17:41
Оценка: +1
Здравствуйте, tapatoon, Вы писали:

Мм... обожаю девелопить/суппортить энтерпрайз на плюсах, so lovely... (нет)
Отредактировано 22.03.2023 17:42 gyraboo . Предыдущая версия .
Re[2]: Почему нужно идти в С/С++
От: Patalog Россия  
Дата: 22.03.23 21:02
Оценка: +1
Здравствуйте, vaa, Вы писали:

[]

vaa>Ocaml is slower than C but faster than C++.

Всегда удивляли долб.диб.странные люди, пишущие что С++ медленнее С,
Почетный кавалер ордена Совка.
Re[3]: Почему нужно идти в С/С++
От: vaa  
Дата: 24.03.23 03:40
Оценка:
Здравствуйте, Patalog, Вы писали:

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


P>[]


vaa>>Ocaml is slower than C but faster than C++.

P>Всегда удивляли долб.диб.странные люди, пишущие что С++ медленнее С,

Сам удивляюсь ))
однако зиг в этом плане хорош https://programming-language-benchmarks.vercel.app/cpp-vs-zig
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Почему нужно идти в С/С++
От: CreatorCray  
Дата: 24.03.23 10:22
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>однако зиг в этом плане хорош

А где он там хорош?

Первый же тест:

cpp 1-im.cpp 764ms
cpp 1-im.cpp 769ms
zig 2-m.zig 1268ms
zig 3-i.zig 1610ms
zig 2.zig 2518ms
zig 1.zig 3512ms


И у них хрень какая то с временем. Что у них time означает если оно меньше чем "time(user)"?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.