Просмотр одиночного сообщения
Old 29-04-2019, 09:55   #290
Димыч
Banned
 
Сообщений: 3,663
Проживание:
Регистрация: 26-07-2015
Status: Offline
Цитата:
Сообщение от alexer
С++ требуют там, где важна скорость выполнения. Обычно, чтобы на С++ нормально писать, нужно знать сильно больше, чем только язык, иначе будет только хуже. Код выше для понимания тяжелый, но это лишь потому, что там битовые манипуляции сложные. Наверное, можно немного попроще придумать реализацию, но это делать мне уже точно лень.
Там, где надо писать относительно «быстро», а на скорость плевать, пользуются чем-нибудь, типа Python. Делфи точно мертв. Да и не жил никогда. Но это уже всяко оффтоп.

Как это "точно мёртв", если я прямо сейчас доделываю мощнейшую программу по мат.моделированию процессов в атомной отрасли прямо на Delphi 7(!)
Затем года два она будет проходит аттестацию, а потом лет 20 будет использоваться в расчетном обосновании.
Хотя, и сейчас уже используется на самом деле. Просто пока там можно что улучшить - я её продолжаю дорабатывать.

Насчёт "скорости" - не верю, извини.
Вспоминаю как мы решили проверить на каком языке быстрее расчёты выполняются. И стали гонять многократно операции вида: "возвести миллион раз в степень близкую к единице, а потом выполнить миллион раз обратную операцию", после чего сравнить результаты и время вычислений. На одном и том же компе - под виндами.
Результаты меня поразили - фортран (который, по идее, должен быть заточен именно под вычисления) проиграл просто с треском - и в скорости и в точности. Долго тупили мы. Переключали типы вещественных чисел в языках, пытались в опциях компилятора всё менять. Ничего не получалось - фортран был в разы медленнее и в разы кривее. Пошли к начальнику отдела пожаловаться (т.к. знали, что он когда-то на фортране работал). Он нам почти сразу посоветовал зайти в глубокие меню и переключить в фортране тип используемых КОНСТАНТ. Т.е. когда ты там возводишь число в степень (например, а^1.001), то у тебя там по умолчанию "1.001 имеет такой тип, с которым процессору работать очень напряжно (по-моему, real*6). В результате всё тормозит нещадно. Когда изменили тип констант по умолчанию. Скорости работы фортрана и Delphi, а также точность - совпали почти ПОЛНОСТЬЮ.
Из этого, наверное, можно сделать вывод о том, что скорость работы языка (при вычислениях) вряд ли зависит от языка - если всё правильно настроить.
А вопрос начался с того - почему в стандартных конечно-элементных комплексах типа Ansys или Msc.Marc пользовательские подпрограммы предлагают делать на фортране?
Кстати, а в старых версиях Msc.Marc (а может быть и в новых тоже) по умолчанию включены такие опции, при которых изгиб простейшего стержня (который по формулам сопромата легко считается) рассчитывается с огромными погрешностями (процентов под 20). Вот такие пироги с "опциями по умолчанию" встречаются. Не только в "фортране", но и в очень серьезных коммерческих продуктах для инженерных расчётов.

Ну а про "оффтоп" - в этой теме этого добиться трудно, если посмотреть на её название