Эта статья также опубликована в Блоге GRID.

Когда я проводил предварительное исследование перед запуском GRID, одним из самых больших источников вдохновения для меня была Фелиен Херманс. Впервые я встретил Фелиен в Страте в Лондоне в 2012 году, и с тех пор мы периодически поддерживаем связь. В то время она изучала электронные таблицы для получения степени доктора философии, и я сразу понял, что у нее было более глубокое понимание того, что такое электронные таблицы и как они используются, чем кто-либо другой, которого я встречал.

Одна из ее любимых строк была: Таблицы - это код. (У нее отличная презентация по этому поводу: видео, колода.) Это быстро прозвучало для меня правдой, но, как она так элегантно объясняет в своем недавнем выступлении от rstudio :: conf 2019, это не относилось к все!

Для тех из вас, кто еще не пришел, я скажу следующее: когда вы поймете, что электронные таблицы - это не только код, но программы, написанные непрограммистами, все, что касается электронных таблиц и того, как они используются (и злоупотребляют), будет имеет смысл. Так что подумайте как следует!

В этом программном докладе она также рассказывает о том, как развивалась тема исследования для ее докторской степени. Это прекрасно объясняется в трех мультипликационных кадрах из ее выступления. DSL - это аббревиатура от «Domain Specific (Programming) Language»:

Я слышал историю Фелиен и раньше, но когда я увидел ее снова, на этот раз она прозвучала еще громче, потому что недавно я слышал, как мой друг Зигги говорит то же самое - только не так элегантно.

Дилемма квантовой свободы

Зигги работает в компании, которая создает на Уолл-стрит специализированный инструмент для количественных аналитиков (квантов). Общий инструмент рассчитывает взвешенный риск, выполняя симуляции Монте-Карло для тысяч сценариев для миллионов активов.

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

Но за свободу приходится платить. Они быстро поняли, что предоставление квантам такой гибкости позволяет им прострелить себе ногу. Предоставление квантам возможности писать собственные циклы и даже встраивать целые библиотеки в код, который запускается миллиарды раз для завершения одной симуляции, чреват непредвиденными последствиями. Фактически, при запуске сценария миллиарды раз каждая миллисекунда выполнения замедляет работу сверх допустимого. Изменение, которое увеличивает время выполнения на 1 миллисекунду, будет стоить почти 12 дней для выполнения 1 миллиарда раз без распараллеливания!

Добавив функциональность, которая должна была дать квантам больше свободы, Зигги и его коллеги поставили перед собой новый набор задач. Теперь они глубоко погрузились в режим решения проблем, помогая своим клиентам оптимизировать и упрощать скрипты.

Команда Зигги задумалась, есть ли решение попроще. Может быть, было бы лучше позволить клиентам выражать свои математические желания декларативно, чем давать им свободу писать сценарии с нуля.

И они поняли, что есть простое решение: модели электронных таблиц полностью декларативны и позволяют людям описывать свои намерения, не задумываясь о точном методе. Оптимизация может быть сделана на механизме электронных таблиц и реализации отдельных функций электронных таблиц, а не на каждой индивидуальной модели.

И еще один важный бонус: Каждый финансовый специалист знает этот язык наизусть!

Excel действительно является предметно-ориентированным языком для финансов (и не только), и в этом плане он чертовски хорош.