Просмотр одиночного сообщения
Old 29-04-2019, 11:23   #293
alexer
Пользователь
 
Сообщений: 4,077
Проживание:
Регистрация: 02-09-2016
Status: Offline
Цитата:
Сообщение от Димыч
Очень, очень интересно...
Если вести речь о математических задачах, то там достаточно знать всего лишь несколько операторов - арифметические действия, операторы сравнения и оператор цикла. Ну для полноты картины - операторы считывания и записи в текстовый файл. Считывание и запись - это уже "сервис" и на скорость работы программы не влияет (при условии, что в процессе счёта не нужно непрерывно считывать данные и записывать в файл).
Так вот, почему это в том же "фортране" не "догадались" простейшие математические операторы сделать такими же быстрыми как и в С++? Неужто это прямо так трудно, что до этого могли дойти только разработчики С++? Нифига не верится как-то. Похоже на ересь всё-таки.
И ещё раз напомню, что фортран - до сих пор является встроенным языком для таких популярных программных комплексов как Ansys или Msc.Marc. Пользователи именно на нем пишут подпрограммы для этих программных комплексов. При этом Ansys очень популярен в инженерной среде и позволяет решать не только механические задачи, но и гидравлические тоже, и много-много всего другого. Лицензия стоит дофига и всё равно покупается многими инженерными конторами.
https://www.ansys.com/

Поэтому слухи о смерти фортрана уж точно не соответствуют действительности. Да и по Delphi, наверное, тоже
Но то, что сейчас многие требуют программы на С++ - я и сам вижу, поэтому и спрашиваю - "почему?"
Нет ли тут какого-то "синергетического эффекта"? Типа - договорились, и начали выпускать для велосипедов дурацкие ниппели "Presta", причем не только для тех моделей, где нужно большое давление удерживать, но и вообще - для всех, включая подвесы и фэтбайки.

P.s. Спросил других ребят, оказывается в Ansys на разные модули свои языки. Есть и "С" и "питон" тоже, помимо фортрана.

По выделенному: "операторы" в фортране не медленнее, чем в С++. Большинство вычислительных программ, написанных на фортране "в лоб", будут работать сильно быстрее, чем написанные "в лоб" программы на С++. Код на С++ окажется быстрее в случае тонко оптимизированной организации вычислений с использованием векторных инструкций, типа AVX2/AVX512, правильно организованного попадания в кэш инструкций и данных и иногда с использованием особенностей branch predictor-а. Переход к параллельным и гибридным (multi-core CPU + GPU) системам включает еще вагон очень нетривиальных оптимизаций.
Все это при желании можно делать и на других языках. Хорошая особенность С (и отчасти плюсов) заключается в том, что всегда можно довольно точно сказать, как то или иное выражение будет выглядеть после трансляции в машинный код. Я не являюсь апологетом использования того или иного языка, но, учитывая, как в последнее время развивается стандарт С++, мне понятно, почему он повсеместно используется в сферах, где важна скорость вычислений и есть возможность инвестировать в квалифицированных разработчиков.
В любом случае, речь шла о том, чтобы продемонстрировать корректность решения задачи о монетах. Поскольку я обещал выложить кодер/декодер для своего решения, я это сделал А уж если Вам ЯП не нравится, пожалуйста, можете на Delphi переписать и еще раз убедиться, что все работает, как и должно