Фортран. Программирование для физиков.

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

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

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

Но самое главное задача или решение в общем нестандартны и в библиотеке подпрограмм не лежат.

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

И вот перед вами выбор языка программирования, на котором это писать.

Что от него требуется?

Первое, низкий порог вхождения, то есть человек точно понимающий алгоритм решения мог максимально быстро превратить его в программу. Вам не нужны сложные программные изыски позволяющие апгрейдить работающую программу «на горячо», не нужны сложные, обязательные стандарты, позволяющие потом, когда забудется, без проблем разобраться в программе. Это как у физиков экспериментаторов, сначала по-быстрому делается устройство собранное чуть-ли не жевательной резинке, и проверяется сам принцип, а уже потом когда понятно направление всё отдается на изготовление сначала в экспериментальный цех, а потом на специализированное производство.

Второе: вам нужны подпрограммы для стандартных действий. Чтобы скажем численное интегрирование не прописывать по действиям. Но эти подпрограммы должны быть с открытым кодом и описанием. Чтобы вы понимали, как это делается, иначе потом может оказаться что алгоритм интегрирования вашей функции вообще не подходит или чудовищно не оптимален.

Третье: Язык должен позволять выжать из доступной вам системы максимум. Если задача распараллеливается, то прозрачно разделить её на параллельные ветви и потоки. То есть загрузка многопроцессорных систем должна быть для него «родной и близкой»

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

Сколько языков после этого остаётся? По моему мнению, два, для начального уровня, самого начального Visual Basic, причём не NET вариант, а уже древний Visual Basic 6.0 1998 года выпуска и существовавший до 2002 пока не был заменён на вариант для платформы NET  став по сути иным языком, потеряв лёгкость вхождения, и с точки зрения физика ничего не приобрёл.  И второй, собственно, вечно живой Fortran. Если кто считает, что он помер то может он считает, что и язык ADA тоже почил в бозе?  Вы мало о них слышали? Так может вы фрилансер с немалым опытом программирования? И не видели заказов под эти языки?  Всё элементарно, то, что на них пишется требует настолько специализированных знаний, что иногда умение, собственно, программировать вторично. Важно знать основную проблему, а фриланс это в основном косметическая подгонка стандартных решений к особенностям  пожеланиям клиента, не более и не менее.

Писал это к тому, что если что-то не используется широко и не на слуху, то его нет. Вы, например знаете о тонкостях производства скальпелей или шарикоподшипников? Не то что можно почерпнуть из передачи «Как это сделано» а таких которые позволят вам повторить процесс.  А ведь это не просто кто-то знает, а есть строятся и модернизируются огромные предприятия.  А в интернете и биржах фриланса об этом маловато как-то.  Разве что какой-то энтузиаст вроде меня расскажет, выложит что то, а самим производителям это не нужно.

Скачать

Добавить комментарий