Здравствуйте, Философ, Вы писали:
Ф>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms. Ф>Сил моих больше нет смотреть на эту экономику букав.
Здравствуйте, Философ, Вы писали:
Ф>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms. Ф>Сил моих больше нет смотреть на эту экономику букав.
Где-то примерно до 90-х у большинства линкеров было ограничение: у глобальных символов только первые где-то 8 знаков были значащими.
Это сейчас можно объявить два символа, котырые различаются в 256-м знаке от начала, и линкер это правильно обработает.
Фортран тут не очень причём, к Си это тоже относилось. Просто памяти было мало и процессоры были слабые, по сравнению с сегодняшними. Зато программисты понимали, что инструменты могут иметь ограничения, и подстраивались.
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
namsepace my
{
using std::views::filter;
inline constexpr auto map = std::views::transform;
inline constexpr auto even = [](std::integral auto n) {return n % 2 == 0;};
inline constexpr auto pow = [](auto exp) {return [=](auto base) {return std::pow(base, exp);};};
} // namespace my
И юзай его потом, будет не хуже чем на хаскеле:
nums | filter(even) | map(pow(2))
Конечно, такого синтаксического кариеса как "map(^2)" не получится, но, имхо, это и к лучшему.
--
Справедливость выше закона. А человечность выше справедливости.
Да, девочка замечательная. Вчера у нас была. Не успел я с работы прийти, как она попыталась мне на голову запрыгнуть.
ry>Честно говоря, я не очень боюсь.
Мне иногда приходится сталкиваться. Не знаю, чему их самих учат. Если кто-то старорежимный что-то считает на калькуляторе, он знает, как эти вычисления работают, и чем отличается, скажем, синус от логарифма. А молодёжь не всегда отличает строковое выражение от логического. И не всегда знает, как проверить двоичное число на чётность. С этими явлениями я сталкивался. Боюсь думать, чему такие спецы обучат ИИ.
Re[7]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, ry, Вы писали:
ry>С преподаванием связан?
Боже сохрани! После того как нарвался на одного лоботряса, держусь подальше от этого всего. Именно тот лоботряс, на минуточку студент 2-го курса прикладной математики, не знал, как целое двоичное число на чётность проверить.
Иногда новичков в курс дела приходится вводить. Как правило, проходит нормально. Всё же иногда вылезают та-акие сюрпризы!
ry>Вокруг меня сплошная молодёжь — умники и умницы.
Тебе везёт, значит. А мне разные попадались.
Re[3]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Философ, Вы писали:
Ф>Дело в том, что у меня не формулы и не научные труды — обычная логика, которая нигде кроме кода не описана. Тем не менее, старательно экономим буквы. Местами прям до крайности: в коде заводится локальная переменная, единственная цель которой — быть короче чем изначальный идентификатор. Нет, дело не в многопоточности — знаю о чём вы подумали — тут её нет.
Я с подобным стилем сталкивался в одном из прошлых проектов. Кровавый энтерпрайз. Процедуры по нескольку сотен строк *максимальная — около 2500 строк). Правда, в IDE как-то справлялись. И помогли мне годы работы на Фортране. Я в НИИ немного занимался матаном, точнее, помогал математикам. Поэтому пришлось изучить их стиль, способ именования переменных, подпрограмм, функций. В общем, и тут справился. Начинал-то я вообще на перфокартах. По километровым распечаткам полазать пришлось. По сравнению с этим любая пародия на IDE — рай на земле.
Re[8]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, rg45, Вы писали:
R>Ну это тоже не проблемы С++. Опять же, проблемы компании и твои, поскольку ты в ней работаешь....
Это проблемы очень-очень-очень многих людей. У меня тут тоже плюсовый код 30-летней давности, там вообще всё с C начиналось, а не с плюсов.
Даже не представляю, сколько человеко-столетий нужно потратить, чтобы это заставить хотя-бы компилироваться новыми компиляторами, не говоря уже о том, чтобы заставить это работать. Плюсовый код — в большинстве случаев застарелое и окаменелое говно мамонта. Сильно сомневаюсь, что сейчас новые проекты на плюсах начинают. Даже если и начинают, то в них быстро перекачёвывают старые папки с кодом (не отдельные строки, а директории целиком). И таким образом сразу образуется куча ограничений.
ЗЫ: подозреваю, что как минимум часть кода в этих новых/старых проектах будет написана вот теми самыми престарелыми фортранистами.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Doom100500, Вы писали:
D>И это ещё не всё. Потом надо ещё в std-контейнеры переводить. (в шарпе ".ToList()", в плюсах опять begin(), end())
Я фигею, тётя Валя, с вашей телепередачи.
Во-первых, далеко не всегда финалом вычисления хочется иметь контейнер. А зачастую как раз наоборот — хочется, чтоб все эти контейнеры, коллекции и ренджи вычислились по-ленивому на промежуточных этапах и бесследно испарились в итоге.
Во-вторых, для того, кто хоть немного умеет в декомпозицию и способен отделить "ЧТО" от "КАК", тому совершенно пофиг все эти низкоуровневые подробности и программа у него на любом языке будет выглядеть чётко и компактно. А кто пишет код подобно пчеле, строящей соты, у того эти низкоуровневые сопли будут размазаны по всему коду и он будет всю дорогу жаловаться на плохой инструмент.
В-третьих, начиная с C++23, у всех стандартных контейнеров есть версии конструкторов, принимающие абстрактные рэнджи, поэтому использовать пару begin-end совсем не обязательно.
Ну и в-четвёртых, могу повторить то, что говорил выше
const std::list list = make<std::list>(nums | filter(even) | map(pow(2)));
Здесь можно было спокойно использовать auto, но я специально явно написал std::list, чтоб у тебя не возникало сомнений в том, что сконструировался именно std::list.
D>Даже в шарпе приятнее. Haskel, конечно не догнать, но плюсы — это полный П++.
Ну или просто это твои программы на плюсах — полный П++.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, Doom100500, Вы писали:
D>И??? С чем спорим, с чем согласны? Что? Другой синтаксис? Я его знаю. А что сказать то хотели?
Тут весь тред про другой синтаксис..
Re[9]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Философ, Вы писали:
Ф>Даже не представляю, сколько человеко-столетий нужно потратить, чтобы это заставить хотя-бы компилироваться новыми компиляторами, не говоря уже о том, чтобы заставить это работать. Плюсовый код — в большинстве случаев застарелое и окаменелое говно мамонта. Сильно сомневаюсь, что сейчас новые проекты на плюсах начинают.
Я уже не раз видел, как проекты на C# переписывали на С++ по разным причинам: тормознутый код, сложно делать кроссплатформенность, неумение работать на низком уровне.
Ф>Даже если и начинают, то в них быстро перекачёвывают старые папки с кодом (не отдельные строки, а директории целиком). И таким образом сразу образуется куча ограничений.
Не образовываются. Я вполне могу взять любую старую библиотеку, собрать её в отдельный dll/so с теми опциями, которые ей нужны, подключать к современному С++ коду последних стандартов. Подозреваю, что у Java/C#/Python/etc одним компилятором программу с разными стандартами и требованиями к коду не собрать.
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Dimonka, Вы писали:
D>Ну так к телу: утилита размером 6700+ строк...
Слушай, а ты, когда строки считаешь, ты их как считаешь? По колличеству действий, или тупо построчно? Вот, например,
while (ridx < expr.Length && !stdOps.Contains(expr[ridx])) ridx++;
Это одна строка или много? Строки у тебя равноценные?
По-твоему как, строка в файле на 50 строк и в файле на 1000, одинакова по сложности/трудоёмкости, или не совсем? А в функции? Строчка в функции на 5 строк равноценна строчке в функции на 4 экрана?
Сколько в мегабайтах твои 6700 строк?
Всё сказанное выше — личное мнение, если не указано обратное.
Re: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Философ, Вы писали:
Ф>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms.
Это еще ладно.
Вот A2 = A1 * B1 + C2 — C3 действительно нелегко понять.
Но!
Фортран создавался и активно использовался тогда, когда решали в основном математические задачи. Кстати, его название расшиaровывается как Formulae Translation
А в математических формулах переменные обычно обозначают одной буквой. Иногда с индексами.
И вот такое
X1 = (-B + SQRT(B*B — 4 *A *C)) / (2*A)
вполне естественно смотрелось. Да и сейчас это едва ли стоит написать иначе.
А еще про максимальную длину идентификатора. Не дам пруф, но вроде как в одно машинное слово на той машине, где впервые использовали фортран, помещалось как раз 6 букв
Должны были пройти годы, чтобы компьютеры начали использоваться в иных сферах, где иные правила, в том числе и именования переменных.
Я начинал на фортране (если точнее, то на алголе, где были те же принципы именования) и потом перестраивался.
На пенсию меня отправлять не надо — я и так на пенсии.
With best regards
Pavel Dvorkin
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>И вот такое
PD>X1 = (-B + SQRT(B*B — 4 *A *C)) / (2*A)
Примерно так оно и было. Греческие буквы часот писали alpha или alfa, beta и т. д. Старались, чтобы запись формул в программе на фортране соответствовала тому, что в источниках.
PD>А еще про максимальную длину идентификатора. Не дам пруф, но вроде как в одно машинное слово на той машине, где впервые использовали фортран, помещалось как раз 6 букв
Тут только могу сказать: имя могло быть любой длины, но компилятор (Фортран 4 на ЕС ЭВМ) распознавал первые 6 символов. Проверено на себе. Фортран 77, ЕМНИП, до 32 символов понимал.
Здравствуйте, Философ, Вы писали:
Ф>Однако, когда в коде далеко не формулы, а логика, которая пишется, правится дополняется годами, и где не соблюдается принцип единственной ответственности (в файле одновременно и графика, и логика, и парсинг исходных данных), то понять кто есть кто и кто на ком стоял оказывается весьма непростой задачей — там привычки принесённые из фортрана оказываются абсолютным злом.
Не было во времена расцвета фортрана ни логики (в нынешнем понимании), ни графики (на чем ? на АЦПУ символами ?), ни парсинга исходных данных (вводили их просто с перфокарт или терминала, при этом на ошибки представления порой не реагировали — нечего тут, вводите все правильно, иначе я ни за что не ручаюсь . Все это намного позже появилось.
И едва ли фортрановское мышление тут причиной. Мне, например, ничего не стоило отказаться от 6-буквенных имен и перейти к нынешним принципам.
А вот что я действительно в себе перестраивал — это создание циклов с помощью GOTO назад. В Фортране-4 иных средств для произвольного цикла нет, есть только для цикла типа i++ или i+=. Умел я их делать прекрасно. И мне еще долго хотелось так писать.
Еще одна "вольность" Фортрана — это EQUIVALENCE и COMMON. Что мы только на их основе не делали! Массивы представляли как скаляры, разные размеры массивов указывали, типы смешивали — все с рук сходило. Полная свобода действий. Потом очень не хватало — пришлось привыкать к современной дисциплине обращения с памятью. Кстати, когда С изучал, обнаружил union и обрадовался ему как родному. А потом узнал, что его использование не есть лучшая практика...
With best regards
Pavel Dvorkin
Re[4]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Не было во времена расцвета фортрана ни логики (в нынешнем понимании), ни графики (на чем ? на АЦПУ символами ?), ни парсинга исходных данных (вводили их просто с перфокарт или терминала, при этом на ошибки представления порой не реагировали — нечего тут, вводите все правильно, иначе я ни за что не ручаюсь . Все это намного позже появилось.
Кое-какая графика всё же была. Правда, как работал Графор на ЕС ЭВМ, я не видел. Но переносил программу, сделанную с его использованием, на MS DOS. Всех делов было правильный драйвер экрана и принтера подключить при сборке. А ошибки при вводе я вставками на Сях обрабатывал.
PD>И едва ли фортрановское мышление тут причиной. Мне, например, ничего не стоило отказаться от 6-буквенных имен и перейти к нынешним принципам.
Да, это оказалось очень легко.
PD>А вот что я действительно в себе перестраивал — это создание циклов с помощью GOTO назад. В Фортране-4 иных средств для произвольного цикла нет, есть только для цикла типа i++ или i+=. Умел я их делать прекрасно. И мне еще долго хотелось так писать.
Нормальные циклы и if elsif else endif и циклы while завезли в Фортран 77. Я на них почти сразу перешёл. И цикл do i = 1,10 — enddo был лучше do 5 i=1,10. В последнем случае часто ставили точку вместо запятой, тогда компилятор создавал переменную do5i и присваивал ей значение 1.10. А в случае do — enddo выдавалась ошибка: конец цикла есть, а цикла нет.
И ещё активно начал использовать implicit none. Всё-таки обязательное объявление переменных лучше всяких умолчаний и определения по первой букве имени.
PD>Еще одна "вольность" Фортрана — это EQUIVALENCE и COMMON. Что мы только на их основе не делали! Массивы представляли как скаляры, разные размеры массивов указывали, типы смешивали — все с рук сходило. Полная свобода действий. Потом очень не хватало — пришлось привыкать к современной дисциплине обращения с памятью. Кстати, когда С изучал, обнаружил union и обрадовался ему как родному. А потом узнал, что его использование не есть лучшая практика...
А это из серии "Грабли в Фортране". Лет 40 назад такой литературы было не меньше, чем "Изучаем Фортран". За COMMON следить нужно очень строго. Как, кстати, сделано в том же Графоре и в некоторых числодробительных библиотеках. Кто-то один из заполняет, остальные читают. Там обычно хранили всякие мировые константы типа машинного эпсилон. И было удобнее передать в подпрограмму 20 аргументов, чем рисовать COMMON-блок. А за безымянные COMMON-блоки вообще надо дисквалифицировать. Я, кстати, так и не сумел из Си-функции подключиться к такому. Наверное, просто лень было рыться в протоколах и искать имя, которое ему назначается по умолчанию. Но в реальном коде я безымянных COMMON-блоков не видел ни разу.
Ф>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms. Ф>Сил моих больше нет смотреть на эту экономику букав.
Ну останутся из поколения инженерной эпохи только MUMPS'овики — легче станет что ли? https://github.com/pkoper/mumtris/blob/master/mumtris.m
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Философ, Вы писали:
Ф>Здравствуйте, sergii.p, Вы писали:
SP>>"длинные слова меня только расстраивают" SP>>C++: ... SP>>Haskell: ...
Ф>ты не о том. Я о методах на несколько экранов, в которых приходится расшифровывать каждую строчку.
О, мне однажды пришлось разбирать программу, которую написал инженер-электронщик.
В ней все функции назывались F_xxxx, а переменные — V_xxxx.
Re[4]: Госспади, отправь на пенсию воспитанников фортрана!
A>О, мне однажды пришлось разбирать программу, которую написал инженер-электронщик. A>В ней все функции назывались F_xxxx, а переменные — V_xxxx. A>
Нужно заклеймить и осудить самопрограммирование, так же как самолечение! Пусть идут на поклон к профессионалам!
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Re: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Философ, Вы писали:
Ф>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms.
Фортран — не универсальный язык, а ппереводчик формул. Чтобы понять программу на Фортране, нужно взять первоисточник (статью, монографию, диссертацию), тогда всё встанет на свои места. Математики свободно читают короткие имена. Софт на Фортране 4 до сих пор работает. А там ещё goto до фига, как правило. Потому как нормальные конструкции ветвлений и циклов завезли только в Фортран 77. Как и длинные имена, но математиков не переучить.
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Privalov, Вы писали:
P>..., но математиков не переучить.
К сожалению это не математики.
P>Фортран — не универсальный язык, а ппереводчик формул. Чтобы понять программу на Фортране, нужно взять первоисточник (статью, монографию, диссертацию), тогда всё встанет на свои места.
Дело в том, что у меня не формулы и не научные труды — обычная логика, которая нигде кроме кода не описана. Тем не менее, старательно экономим буквы. Местами прям до крайности: в коде заводится локальная переменная, единственная цель которой — быть короче чем изначальный идентификатор. Нет, дело не в многопоточности — знаю о чём вы подумали — тут её нет.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[4]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, alexsmirnoff, Вы писали:
A>О, мне однажды пришлось разбирать программу, которую написал инженер-электронщик. A>В ней все функции назывались F_xxxx, а переменные — V_xxxx.
звучит как выхлоп декомпилятора/дизассемблера.
Re: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, sergii.p, Вы писали:
SP>Здравствуйте, Философ, Вы писали:
Ф>>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms. Ф>>Сил моих больше нет смотреть на эту экономику букав.
SP>"длинные слова меня только расстраивают"
SP>C++: SP>
Здравствуйте, Osaka, Вы писали:
A>>О, мне однажды пришлось разбирать программу, которую написал инженер-электронщик. A>>В ней все функции назывались F_xxxx, а переменные — V_xxxx. A>> O>Пусть идут на поклон к профессионалам!
Так интересно писать прошивки для каждой подпольной железки со своими глюками? Пусть уж они сами делают, что хотят.
Спасибо за внимание
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, SergeyIT, Вы писали:
SIT>Особенно, когда ИИ начнет уменьшать размер исходников (научившись у воспитанников фортрана)...
Кто ж его научит? Да ещё, говорят, от того старого доброго Фортрана мало что остадлсь. Ходят слухи, что Фортран уже на себя не похож. Хотя бы обратную совместимость оставили, интересно?
Re[4]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, rg45, Вы писали:
R>Здравствуйте, Doom100500, Вы писали:
D>>И это ещё не всё. Потом надо ещё в std-контейнеры переводить. (в шарпе ".ToList()", в плюсах опять begin(), end())
R>Я фигею, тётя Валя, с вашей телепередачи.
R>Во-первых, далеко не всегда финалом вычисления хочется иметь контейнер. А зачастую как раз наоборот — хочется, чтоб все эти контейнеры, коллекции и ренджи вычислились по-ленивому на промежуточных этапах и бесследно испарились в итоге.
В конце цепочки всё равно эти богомерзкие begin()/end()
R>В-третьих, начиная с C++23, у всех стандартных контейнеров есть версии конструкторов, принимающие абстрактные рэнджи, поэтому использовать пару begin-end совсем не обязательно.
До него надо дорасти, спортировать проект (он очень дремучий), и ночать использовать. А пока костылим как можем и тихонько матюкаемся.
R>Ну и в-четвёртых, могу повторить то, что говорил выше
: В С++ ты можешь наопределять себе какого угодно синтаксического сахара самостоятельно:
Это везде можно сделать на любом языке. Вопрос в том, что у кого-то в стандартной библиотеке есть готовые абстракции, а кто-то отпускает это разработчикам. А потом имеем глюки — у каждого свои особенные и неповторимые, причины которых надо искать в тех обёртках, которые кто-то когда-то написал, и все остальные начали использовать. Следовательно, если мы хотим иметь стабилную систему, то для случая, где баг точно воспроизводится — мы напишем другую обёртку, немного отличающуюся от той, которая используется в каждом углу.
Да, тесты могут помочь, но нужно иметь в виду, что большинство "разрабов" срать хотели и на чистоту кода, и на покрытие тестами (а начальству фичи важнее тестов).
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>Здесь можно было спокойно использовать auto, но я специально явно написал std::list, чтоб у тебя не возникало сомнений в том, что сконструировался именно std::list.
В моём компиляторе не компилируется. А значит, пока не внедрили, либо не использовать, либо опять все эти begin()/end().
D>>Даже в шарпе приятнее. Haskel, конечно не догнать, но плюсы — это полный П++.
R>Ну или просто это твои программы на плюсах — полный П++.
Это претензия к "лаконичности" плюсов.
Ну и ещё все эти обязательные return в теле лямбд очень глаза режут и замусоривают код.
Далеко не все плюсовики — независымые разработчики. Есть ещё и те, которые ждут пенсии. Вот ради них и стараемся не писать "непонятно".
Мне ranges нравятся, есличо. Лаконичности очень даже добавляет.
Меня бесят return в лямбдах, begin/end, обязательные круглые и фигурные скобки в лябдах (опять).
R>>Здесь можно было спокойно использовать auto, но я специально явно написал std::list, чтоб у тебя не возникало сомнений в том, что сконструировался именно std::list.
D>В моём компиляторе не компилируется. А значит, пока не внедрили, либо не использовать, либо опять все эти begin()/end().
Блин, я тебе ссылку дал, где это не только компилируется, но и выполняется. На компиляторе С++20, на минуточку. Ты ссылку видишь?
А если ты используешь какую-то ветошь, то при чём тут С++, это твои личные трудности.
--
Справедливость выше закона. А человечность выше справедливости.
R>>>Здесь можно было спокойно использовать auto, но я специально явно написал std::list, чтоб у тебя не возникало сомнений в том, что сконструировался именно std::list.
D>>В моём компиляторе не компилируется. А значит, пока не внедрили, либо не использовать, либо опять все эти begin()/end().
R>Блин, я тебе ссылку дал, где это не только компилируется, но и выполняется. На компиляторе С++20, на минуточку. Ты ссылку видишь?
R>А если ты используешь какую-то ветошь, то при чём тут С++, это твои личные трудности.
Не я, а компания. Трудности не мои, а компании. Мои трудности — это крепиться и терпеть, пока компания не решится сменить компилятор. Это происходит, но не тогда, когда хочу я.
Ещё раз: мне не нравится многословность плюсов, а не необходимость их постоянно учить. Это мне как раз нравится.
Многословность можно решить. ranges — хороший путь, но этого мало.
Спасибо за внимание
Re[4]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Doom100500, Вы писали:
D>Не я, а компания. Трудности не мои, а компании. Мои трудности — это крепиться и терпеть, пока компания не решится сменить компилятор. Это происходит, но не тогда, когда хочу я.
Ну это тоже не проблемы С++. Опять же, проблемы компании и твои, поскольку ты в ней работаешь. Ну блин, давай начнем критиковать C#, опираясь на возможности C# 2.0 и ссылаясь на компанию, где это используется.
D>Ещё раз: мне не нравится многословность плюсов, а не необходимость их постоянно учить. Это мне как раз нравится. D>Многословность можно решить. ranges — хороший путь, но этого мало.
Дело не в ranges. Просто C++ даёт удочки, а ты ждёшь рыбку. Вот и весь сказ.
--
Справедливость выше закона. А человечность выше справедливости.
Re[8]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, rg45, Вы писали:
R>Ну это тоже не проблемы С++. Опять же, проблемы компании и твои, поскольку ты в ней работаешь. Ну блин, давай начнем критиковать C#, опираясь на возможности C# 2.0 и ссылаясь на компанию, где это используется.
Согласен с каждым словом, но с этими проблемами надо жить.
R>Дело не в ranges. Просто C++ даёт удочки, а ты ждёшь рыбку. Вот и весь сказ.
А мне кажется, что здесь говорит ущемлённое ЧСВ адептов писать закорючки вручную.
Нет ничего плохого ни в удочке ни в рыбе. Как и в том, что наиболее часто употребляемые конструкции были бы в стандартной библиотеке.
Шарп так-то тоже иногда доводит до белочки, когда обязательно требует указывать параметр дженериков, когда мог бы и сам тип вывести.
Здравствуйте, Философ, Вы писали:
Ф>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms. Ф>Сил моих больше нет смотреть на эту экономику букав.
Я думаю, это не Фортран виноват и не его воспитанники, а просто мудаки, не умеющие писать понятно для прочих людей. А также виноваты люди иной культуры, с иероглифами или отсутствием гласных букв в словах.
Re[6]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Privalov, Вы писали: SIT>>Особенно, когда ИИ начнет уменьшать размер исходников (научившись у воспитанников фортрана)... P>Кто ж его научит?
Здравствуйте, Privalov, Вы писали:
P>Я ещё не на пенсии, но внучка подрастает.
Супер! P>Что будет с отраслью, когда набежит толпа айтишников и будет везде пихать ИИ, боюсь даже думать.
Честно говоря, я не очень боюсь. Это ведь смотря куда совать и на каких данных обученный. Надеюсь, у этой "толпы айтишников" хватит ума в критические вещи не совать ИИ, обученный на социальных сетях
Re[7]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Privalov, Вы писали:
P>Что будет с отраслью, когда набежит толпа айтишников и будет везде пихать ИИ, боюсь даже думать.
Будут такие специальные резервации, типа как для индейцев, но только для программистов, которые умеют и любят программировать руками. Основная логика будет делаться там. А потом мальчики с красными глазами и ИИ будут к этому делу приделывать бантики. Но зарплату в основном будут платить мальчикам.
Re[5]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, ry, Вы писали:
P>>Что будет с отраслью, когда набежит толпа айтишников и будет везде пихать ИИ, боюсь даже думать. ry>Честно говоря, я не очень боюсь. Это ведь смотря куда совать и на каких данных обученный. Надеюсь, у этой "толпы айтишников" хватит ума в критические вещи не совать ИИ, обученный на социальных сетях
Помнишь, несколько лет назад была история, когда американский авианосец с учений возвращался в порт на буксире потому, что у него венда не вовремя обновилась, и всё перестало работать?
Рано или поздно всю эту муть впихнут в контур управления ядерным реактором. Реактор, разумеется, бабахнет, и подходы к разработке софта начнут меняться.
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Слава, Вы писали:
С>Я думаю, это не Фортран виноват и не его воспитанники, а просто мудаки, не умеющие писать понятно для прочих людей. А также виноваты люди иной культуры, с иероглифами или отсутствием гласных букв в словах.
Люди с иероглифами или отсутствием гласных больше заметны в области криптографии и модуляции, чем в прочих областях.
И там да, простому человеку их примеры кода читать нелегко.
Re[5]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Pzz, Вы писали:
Pzz>Будут такие специальные резервации, типа как для индейцев, но только для программистов, которые умеют и любят программировать руками.
Такой вариант возможен. Но резервации со временем опустеют по естественным причинам. И вот тогда всё и начнётся.
Re[3]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Pzz, Вы писали:
С>>Я думаю, это не Фортран виноват и не его воспитанники, а просто мудаки, не умеющие писать понятно для прочих людей. А также виноваты люди иной культуры, с иероглифами или отсутствием гласных букв в словах.
Pzz>Люди с иероглифами или отсутствием гласных больше заметны в области криптографии и модуляции, чем в прочих областях.
Pzz>И там да, простому человеку их примеры кода читать нелегко.
Необычные люди, му-му-му, обработка сигналов бу-бу-бу (спутник мчится по орбите с перигея в апогей, в нём кронштейн висит прибитый), криптографическая криптография (азиатики же такие талантливые, тайнопись освоили).
Нет, всё проще. Это не модуляция и не криптография, это мудаки обычные, которые в биллинге пишут вот такое:
Здравствуйте, Pzz, Вы писали:
Pzz>Рано или поздно всю эту муть впихнут в контур управления ядерным реактором. Реактор, разумеется, бабахнет, и подходы к разработке софта начнут меняться.
Случаем, эти суждения не из серии — молодёжь не та пошла?
Сразу скажу, что у меня другое мнение.
Re[7]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, ry, Вы писали:
Pzz>>Рано или поздно всю эту муть впихнут в контур управления ядерным реактором. Реактор, разумеется, бабахнет, и подходы к разработке софта начнут меняться. ry>Случаем, эти суждения не из серии — молодёжь не та пошла? ry>Сразу скажу, что у меня другое мнение.
Да не. Проблема не в молодёжи, а в том, что ИТ постепенно превращается в сборочный конвеер.
Re: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Философ, Вы писали:
Ф>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms. Ф>Сил моих больше нет смотреть на эту экономику букав.
Мне тут, поскольку я оказался самый продвинутый в ИИ, дали ключевой код из соседнего отдела на R, который вычисляет значения >250 полей в таблице. 170 полей заполняют люди в Экселе, а остальные досчитывает эта утилита. После идёт всё в продакшн.
Ключевые люди, которые занимались поддержкой и управлением этой утилиты скопом уволились и она спустя год досталась временно мне, потому что никто больше не вкуривает, что с ней делать.
Ну так к телу: утилита размером 6700+ строк, подгружает 5-6 файлов, которые разворачиваются в памяти на 2.5 гига. Это не говоря ещё о том, что никакого контроля ошибок, логов вообще нет. Упало и упало.
Естественно авторы из Индии..
В общем я за два дня я разбил код на логических 32 части с главным методом, который загружает их. Написал документацию какие поля в этих 32-х методах являются источником данных, а какие изменяются. Оказалось, что 40% переменных заполняются по ходу кода как минимум 2 раза (значение переписывается по ходу исполнения), пара переменных заполняется аж 15 раз. Написал документ описывающий все увиденные ИИ проблемы и связанные с ними риски (как план подготовки дальнейшего улучшения кода).
Сейчас хочу сделать единый конфигуратор путей с визуальным интерфейсом — ещё пока не решил на RShiny или на C# для интерфейса. На данный момент загрузка файлов размазана по коду. В общем чувствуешь себя супергероем, учитывая, что весь этот код писался разными людьми лет 10 не меньше.
Сам ни написал ни строчки.. И параллельно занимался другими делами.. в том числе сидел тут с вами на форуме
Ну т.е. написал конечно типа: "а напиши ка мне братец..", но не более того.
PS
Чего сказать хотел? Мне бы твои проблемы
Re[8]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Pzz, Вы писали:
Pzz>Да не. Проблема не в молодёжи, а в том, что ИТ постепенно превращается в сборочный конвеер.
Что значит превращается. Когда-то, уже в далёком 2007, когда я покидал свою первую ИТ-компанию, окинув её прощальным взором, увидел фабрику по производству программного обеспечения — удивился и восхитился. А в данный момент я и работаю, чтобы конвейер ускорялся и работал без сбоев.
Re: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Философ, Вы писали:
Ф> Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms. Ф> Сил моих больше нет смотреть на эту экономику букав.
Ты ещё с SAP дело не имел. См например https://leanx.eu/en/sap/table/t001.html
Здравствуйте, Философ, Вы писали:
Ф>ЗЫ: подозреваю, что как минимум часть кода в этих новых/старых проектах будет написана вот теми самыми престарелыми фортранистами.
После перехода на C++ агент стал работать заметно быстрее и экономнее. В некоторых сценариях прирост производительности превысил 40% за счет оптимизации алгоритмов сбора и обработки данных.
Отказ от внешних библиотек позволил нам в три раза расширить список поддерживаемых ОС. Сейчас «Инферит ИТМен» работает на Windows (от 7 до Server 2022) и Linux — включая «МСВСфера», Astra Linux (от 1.7), Debian 9+, Ubuntu 18.10+, CentOS 7, Oracle Linux 8.3, Red Hat 7.4 и 8, SUSE 15.5+.
Ф>Невыносимо раз за разом расшифровывать всякие ptrn, alm, grs, rprms. Ф>Сил моих больше нет смотреть на эту экономику букав.
а) я давно уже на пенсии
б) дело не в фортране, а в перфокартах...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, m2user, Вы писали: M>Вот функции типа таких, да напрягают: M>
M>dpotrf: Computes the positive-definite ones triangular reduction/factorization (Cholesky) for double-precision real matrices
M>
M>Но, насколько я понимаю, это ограничение компиляторов/линкеров времен, когда все это создавалось.
Нет. Традиция. Но в те времена вот эти 5-6 буквенные абревиатуры вполне запоминались всеми, кто ими пользовался.
Re[5]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, mike_rs, Вы писали:
A>>О, мне однажды пришлось разбирать программу, которую написал инженер-электронщик. A>>В ней все функции назывались F_xxxx, а переменные — V_xxxx.
_>звучит как выхлоп декомпилятора/дизассемблера.
Электронщикам не привыкать, у них все так — C14, R7, VT2 и тд
WBR, Igor Evgrafov
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Это еще ладно. PD>Вот A2 = A1 * B1 + C2 — C3 действительно нелегко понять.
PD>Но!
PD>Фортран создавался и активно использовался тогда, когда решали в основном математические задачи. Кстати, его название расшиaровывается как Formulae Translation
Когда первична формула — не страшно, это даже логично: формула первична, код вторичен. В дополнение к формулам часто идут пояснения и условия их использования на бумаге.
Однако, когда в коде далеко не формулы, а логика, которая пишется, правится дополняется годами, и где не соблюдается принцип единственной ответственности (в файле одновременно и графика, и логика, и парсинг исходных данных), то понять кто есть кто и кто на ком стоял оказывается весьма непростой задачей — там привычки принесённые из фортрана оказываются абсолютным злом.
Всё сказанное выше — личное мнение, если не указано обратное.