Re[3]: Госспади, отправь на пенсию воспитанников фортрана!
От: rg45 СССР  
Дата: 18.11.25 15:32
Оценка: +1
Здравствуйте, Doom100500, Вы писали:

D>И это ещё не всё. Потом надо ещё в std-контейнеры переводить. (в шарпе ".ToList()", в плюсах опять begin(), end())


Я фигею, тётя Валя, с вашей телепередачи.

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

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

В-третьих, начиная с C++23, у всех стандартных контейнеров есть версии конструкторов, принимающие абстрактные рэнджи, поэтому использовать пару begin-end совсем не обязательно.

Ну и в-четвёртых, могу повторить то, что говорил выше
Автор: rg45
Дата: 17.11 17:41
: В С++ ты можешь наопределять себе какого угодно синтаксического сахара самостоятельно:

template <template<typename...> class Container>
constexpr auto make = [](std::ranges::range auto&& r) { return Container(std::begin(r), std::end(r)); };


И сколько угодно наслаждаться результатами:

http://coliru.stacked-crooked.com/a/f9e515b153d86f7c

    const std::list list = make<std::list>(nums | filter(even) | map(pow(2)));

Здесь можно было спокойно использовать auto, но я специально явно написал std::list, чтоб у тебя не возникало сомнений в том, что сконструировался именно std::list.

D>Даже в шарпе приятнее. Haskel, конечно не догнать, но плюсы — это полный П++.


Ну или просто это твои программы на плюсах — полный П++.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 18.11.2025 16:53 rg45 . Предыдущая версия . Еще …
Отредактировано 18.11.2025 16:12 rg45 . Предыдущая версия .
Отредактировано 18.11.2025 15:49 rg45 . Предыдущая версия .
Отредактировано 18.11.2025 15:48 rg45 . Предыдущая версия .
Re[5]: Госспади, отправь на пенсию воспитанников фортрана!
От: Privalov  
Дата: 18.11.25 18:27
Оценка:
Здравствуйте, SergeyIT, Вы писали:

SIT>Особенно, когда ИИ начнет уменьшать размер исходников (научившись у воспитанников фортрана)...


Кто ж его научит? Да ещё, говорят, от того старого доброго Фортрана мало что остадлсь. Ходят слухи, что Фортран уже на себя не похож. Хотя бы обратную совместимость оставили, интересно?
Re[4]: Госспади, отправь на пенсию воспитанников фортрана!
От: Doom100500 Израиль  
Дата: 19.11.25 06:32
Оценка:
Здравствуйте, rg45, Вы писали:

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


D>>И это ещё не всё. Потом надо ещё в std-контейнеры переводить. (в шарпе ".ToList()", в плюсах опять begin(), end())


R>Я фигею, тётя Валя, с вашей телепередачи.


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


В конце цепочки всё равно эти богомерзкие begin()/end()

R>В-третьих, начиная с C++23, у всех стандартных контейнеров есть версии конструкторов, принимающие абстрактные рэнджи, поэтому использовать пару begin-end совсем не обязательно.


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

R>Ну и в-четвёртых, могу повторить то, что говорил выше
Автор: rg45
Дата: 17.11 17:41
: В С++ ты можешь наопределять себе какого угодно синтаксического сахара самостоятельно:


Это везде можно сделать на любом языке. Вопрос в том, что у кого-то в стандартной библиотеке есть готовые абстракции, а кто-то отпускает это разработчикам. А потом имеем глюки — у каждого свои особенные и неповторимые, причины которых надо искать в тех обёртках, которые кто-то когда-то написал, и все остальные начали использовать. Следовательно, если мы хотим иметь стабилную систему, то для случая, где баг точно воспроизводится — мы напишем другую обёртку, немного отличающуюся от той, которая используется в каждом углу.
Да, тесты могут помочь, но нужно иметь в виду, что большинство "разрабов" срать хотели и на чистоту кода, и на покрытие тестами (а начальству фичи важнее тестов).

R>
R>template <template<typename...> class Container>
R>constexpr auto make = [](std::ranges::range auto&& r) { return Container(std::begin(r), std::end(r)); };
R>


R>И сколько угодно наслаждаться результатами:


R>http://coliru.stacked-crooked.com/a/f9e515b153d86f7c


R>
R>    const std::list list = make<std::list>(nums | filter(even) | map(pow(2)));
R>

R>Здесь можно было спокойно использовать auto, но я специально явно написал std::list, чтоб у тебя не возникало сомнений в том, что сконструировался именно std::list.

В моём компиляторе не компилируется. А значит, пока не внедрили, либо не использовать, либо опять все эти begin()/end().

D>>Даже в шарпе приятнее. Haskel, конечно не догнать, но плюсы — это полный П++.


R>Ну или просто это твои программы на плюсах — полный П++.


Это претензия к "лаконичности" плюсов.
Ну и ещё все эти обязательные return в теле лямбд очень глаза режут и замусоривают код.

Далеко не все плюсовики — независымые разработчики. Есть ещё и те, которые ждут пенсии. Вот ради них и стараемся не писать "непонятно".

Мне ranges нравятся, есличо. Лаконичности очень даже добавляет.
Меня бесят return в лямбдах, begin/end, обязательные круглые и фигурные скобки в лябдах (опять).

Претензия в примере:

C++:

auto f = [](auto t) {return t *t;};


C#:
var f = t => t*t;
Спасибо за внимание
Отредактировано 19.11.2025 6:53 Doom100500 . Предыдущая версия .
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
От: v_su Мухосранск  
Дата: 19.11.25 07:08
Оценка:
Здравствуйте, Osaka, Вы писали:

O>Ну останутся из поколения инженерной эпохи только MUMPS'овики — легче станет что ли?

O>https://github.com/pkoper/mumtris/blob/master/mumtris.m

Кстати, это красивый код в современном стиле )) Ни одного индирекшна, и гото одновременно с взаимоисключащими пре- и пост-условиями )
Re[5]: Госспади, отправь на пенсию воспитанников фортрана!
От: rg45 СССР  
Дата: 19.11.25 10:13
Оценка:
Здравствуйте, Doom100500, Вы писали:


R>>И сколько угодно наслаждаться результатами:


R>>http://coliru.stacked-crooked.com/a/f9e515b153d86f7c


R>>
R>>    const std::list list = make<std::list>(nums | filter(even) | map(pow(2)));
R>>

R>>Здесь можно было спокойно использовать auto, но я специально явно написал std::list, чтоб у тебя не возникало сомнений в том, что сконструировался именно std::list.

D>В моём компиляторе не компилируется. А значит, пока не внедрили, либо не использовать, либо опять все эти begin()/end().


Блин, я тебе ссылку дал, где это не только компилируется, но и выполняется. На компиляторе С++20, на минуточку. Ты ссылку видишь?

А если ты используешь какую-то ветошь, то при чём тут С++, это твои личные трудности.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 19.11.2025 10:22 rg45 . Предыдущая версия . Еще …
Отредактировано 19.11.2025 10:20 rg45 . Предыдущая версия .
Re[6]: Госспади, отправь на пенсию воспитанников фортрана!
От: Doom100500 Израиль  
Дата: 19.11.25 10:34
Оценка:
Здравствуйте, rg45, Вы писали:

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



R>>>И сколько угодно наслаждаться результатами:


R>>>http://coliru.stacked-crooked.com/a/f9e515b153d86f7c


R>>>
R>>>    const std::list list = make<std::list>(nums | filter(even) | map(pow(2)));
R>>>

R>>>Здесь можно было спокойно использовать auto, но я специально явно написал std::list, чтоб у тебя не возникало сомнений в том, что сконструировался именно std::list.

D>>В моём компиляторе не компилируется. А значит, пока не внедрили, либо не использовать, либо опять все эти begin()/end().


R>Блин, я тебе ссылку дал, где это не только компилируется, но и выполняется. На компиляторе С++20, на минуточку. Ты ссылку видишь?


R>А если ты используешь какую-то ветошь, то при чём тут С++, это твои личные трудности.


Не я, а компания. Трудности не мои, а компании. Мои трудности — это крепиться и терпеть, пока компания не решится сменить компилятор. Это происходит, но не тогда, когда хочу я.

Ещё раз: мне не нравится многословность плюсов, а не необходимость их постоянно учить. Это мне как раз нравится.
Многословность можно решить. ranges — хороший путь, но этого мало.
Спасибо за внимание
Re[3]: Госспади, отправь на пенсию воспитанников фортрана!
От: Qt-Coder  
Дата: 19.11.25 10:34
Оценка: -1
Здравствуйте, Doom100500, Вы писали:


D>
D>.Where(i => i % 2 == 0).Select(i => i*i).To.....
D>


Вот же
var result = from i in collection
             where i % 2 == 0
             select i * i;
Re[4]: Госспади, отправь на пенсию воспитанников фортрана!
От: Doom100500 Израиль  
Дата: 19.11.25 10:36
Оценка:
Здравствуйте, Qt-Coder, Вы писали:

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



D>>
D>>.Where(i => i % 2 == 0).Select(i => i*i).To.....
D>>


QC>Вот же

QC>
QC>var result = from i in collection
QC>             where i % 2 == 0
QC>             select i * i;
QC>


И??? С чем спорим, с чем согласны? Что? Другой синтаксис? Я его знаю. А что сказать то хотели?
Спасибо за внимание
Re[7]: Госспади, отправь на пенсию воспитанников фортрана!
От: rg45 СССР  
Дата: 19.11.25 10:46
Оценка:
Здравствуйте, Doom100500, Вы писали:

D>Не я, а компания. Трудности не мои, а компании. Мои трудности — это крепиться и терпеть, пока компания не решится сменить компилятор. Это происходит, но не тогда, когда хочу я.


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

D>Ещё раз: мне не нравится многословность плюсов, а не необходимость их постоянно учить. Это мне как раз нравится.

D>Многословность можно решить. ranges — хороший путь, но этого мало.

Дело не в ranges. Просто C++ даёт удочки, а ты ждёшь рыбку. Вот и весь сказ.
--
Справедливость выше закона. А человечность выше справедливости.
Re[5]: Госспади, отправь на пенсию воспитанников фортрана!
От: Qt-Coder  
Дата: 19.11.25 12:10
Оценка: +1
Здравствуйте, Doom100500, Вы писали:

D>И??? С чем спорим, с чем согласны? Что? Другой синтаксис? Я его знаю. А что сказать то хотели?

Тут весь тред про другой синтаксис..
Re[8]: Госспади, отправь на пенсию воспитанников фортрана!
От: Doom100500 Израиль  
Дата: 19.11.25 12:13
Оценка:
Здравствуйте, rg45, Вы писали:

R>Ну это тоже не проблемы С++. Опять же, проблемы компании и твои, поскольку ты в ней работаешь. Ну блин, давай начнем критиковать C#, опираясь на возможности C# 2.0 и ссылаясь на компанию, где это используется.


Согласен с каждым словом, но с этими проблемами надо жить.

R>Дело не в ranges. Просто C++ даёт удочки, а ты ждёшь рыбку. Вот и весь сказ.


А мне кажется, что здесь говорит ущемлённое ЧСВ адептов писать закорючки вручную.
Нет ничего плохого ни в удочке ни в рыбе. Как и в том, что наиболее часто употребляемые конструкции были бы в стандартной библиотеке.

Шарп так-то тоже иногда доводит до белочки, когда обязательно требует указывать параметр дженериков, когда мог бы и сам тип вывести.
Спасибо за внимание
Отредактировано 19.11.2025 12:14 Doom100500 . Предыдущая версия .
Re[8]: Госспади, отправь на пенсию воспитанников фортрана!
От: Философ Ад http://vk.com/id10256428
Дата: 19.11.25 12:51
Оценка: :))
Здравствуйте, rg45, Вы писали:

R>Ну это тоже не проблемы С++. Опять же, проблемы компании и твои, поскольку ты в ней работаешь....


Это проблемы очень-очень-очень многих людей. У меня тут тоже плюсовый код 30-летней давности, там вообще всё с C начиналось, а не с плюсов.
Даже не представляю, сколько человеко-столетий нужно потратить, чтобы это заставить хотя-бы компилироваться новыми компиляторами, не говоря уже о том, чтобы заставить это работать. Плюсовый код — в большинстве случаев застарелое и окаменелое говно мамонта. Сильно сомневаюсь, что сейчас новые проекты на плюсах начинают. Даже если и начинают, то в них быстро перекачёвывают старые папки с кодом (не отдельные строки, а директории целиком). И таким образом сразу образуется куча ограничений.

ЗЫ: подозреваю, что как минимум часть кода в этих новых/старых проектах будет написана вот теми самыми престарелыми фортранистами.
Всё сказанное выше — личное мнение, если не указано обратное.
Отредактировано 19.11.2025 12:54 Философ . Предыдущая версия .
Re[6]: Госспади, отправь на пенсию воспитанников фортрана!
От: Doom100500 Израиль  
Дата: 19.11.25 12:55
Оценка:
Здравствуйте, Qt-Coder, Вы писали:

QC>Тут весь тред про другой синтаксис..


Блин, забыл
Спасибо за внимание
Re: Госспади, отправь на пенсию воспитанников фортрана!
От: Слава  
Дата: 19.11.25 14:11
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms.

Ф>Сил моих больше нет смотреть на эту экономику букав.

Я думаю, это не Фортран виноват и не его воспитанники, а просто мудаки, не умеющие писать понятно для прочих людей. А также виноваты люди иной культуры, с иероглифами или отсутствием гласных букв в словах.
Re[6]: Госспади, отправь на пенсию воспитанников фортрана!
От: pilgrim_ Россия  
Дата: 19.11.25 14:34
Оценка:
Здравствуйте, Privalov, Вы писали:

SIT>>Особенно, когда ИИ начнет уменьшать размер исходников (научившись у воспитанников фортрана)...


P>Кто ж его научит?


  С месяц назад пролетала вакансия :




отсюда
Re[4]: Госспади, отправь на пенсию воспитанников фортрана!
От: ry Россия  
Дата: 19.11.25 15:12
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Я ещё не на пенсии, но внучка подрастает.

Супер!
P>Что будет с отраслью, когда набежит толпа айтишников и будет везде пихать ИИ, боюсь даже думать.
Честно говоря, я не очень боюсь. Это ведь смотря куда совать и на каких данных обученный. Надеюсь, у этой "толпы айтишников" хватит ума в критические вещи не совать ИИ, обученный на социальных сетях
Re[5]: Госспади, отправь на пенсию воспитанников фортрана!
От: Privalov  
Дата: 20.11.25 05:47
Оценка: 1 (1) :)
Здравствуйте, ry, Вы писали:

ry>Супер!


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

ry>Честно говоря, я не очень боюсь.


Мне иногда приходится сталкиваться. Не знаю, чему их самих учат. Если кто-то старорежимный что-то считает на калькуляторе, он знает, как эти вычисления работают, и чем отличается, скажем, синус от логарифма. А молодёжь не всегда отличает строковое выражение от логического. И не всегда знает, как проверить двоичное число на чётность. С этими явлениями я сталкивался. Боюсь думать, чему такие спецы обучат ИИ.
Re[7]: Госспади, отправь на пенсию воспитанников фортрана!
От: Privalov  
Дата: 20.11.25 06:13
Оценка:
Здравствуйте, pilgrim_, Вы писали:

_>
  С месяц назад пролетала вакансия :
_>[url=https://i.ibb.co/tMn25Lpp/IMG-20251119-171943-025.jpg]Image: IMG-20251119-171943-025.jpg[/url]

_>[url=https://i.ibb.co/GffMVzwC/IMG-20251119-171945-924.jpg]Image: IMG-20251119-171945-924.jpg[/url]



_>отсюда


Не, искусственных ЫнтЭллигЭнтов пускай другие обучают. Мне когда-то одного живого лоботряса хватило. Еле убежал.
Re: Госспади, отправь на пенсию воспитанников фортрана!
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.11.25 06:36
Оценка: 1 (1) +2
Здравствуйте, Философ, Вы писали:

Ф>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms.

Ф>Сил моих больше нет смотреть на эту экономику букав.

Где-то примерно до 90-х у большинства линкеров было ограничение: у глобальных символов только первые где-то 8 знаков были значащими.

Это сейчас можно объявить два символа, котырые различаются в 256-м знаке от начала, и линкер это правильно обработает.

Фортран тут не очень причём, к Си это тоже относилось. Просто памяти было мало и процессоры были слабые, по сравнению с сегодняшними. Зато программисты понимали, что инструменты могут иметь ограничения, и подстраивались.
Re[9]: Госспади, отправь на пенсию воспитанников фортрана!
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.11.25 06:42
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Сильно сомневаюсь, что сейчас новые проекты на плюсах начинают.


Кстати, мне очень любопытно, на чём сейчас новые проекты начинают.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.