5+1 причина, почему VBA не побить и не победить

О пользе рубанка как творческого инструмента

Posted by Vladimir on June 9, 2023

За знание VBA профессиональным программистам платят немного. Его ядро не меняется, наверное, с 90-х годов. Развиваются только внешние прикладные библиотеки. Но мы уверены, что в ближайшие несколько десятков лет ни одному языку не победить VBA в офисном окружении. И вот почему.

Причина первая. VBA – не просто язык, а low-code платформа

В общем-то сравнивать VBA с другими языками программирования некорректно. VBA – это скорее low-code платформа, создаваемая из готовых фрагментов простого кода.

Причина вторая. VBA позволяет работать с бизнес-логикой

Работа программиста здесь заключается не в том, чтобы сделать приложение, а в том, чтобы превратить бизнес-логику в значения, нужные пользователю. «Настоящие» разработчики недооценивают VBA именно потому, что его надо воспринимать не как язык, а как способ формирования слоя бизнес-логики.

Причина третья. С VBA может работать даже неопытный программист

VBA позволяет работать с бизнес-логикой, зная только минимальный «программерский» арсенал. Поэтому он так популярен.

Причина четвертая. VBA – исключительно прикладной язык

Таких абстракций, как виртуальное окружение, асинхронность, потоки, рабочие классы, обертки, в VBA просто нет. Конечно, некоторые любители делают Doom 3D в VBA или Quake на Excel. Но это исключение.

Причина пятая. В VBA у вас будет 100% полезной работы вместо 10%

В VBA разработчик тратит 100% времени на то, чему в «большом» программировании уделяется 10% времени. Поэтому на VBA создаются сложнейшие прикладные модели – например, для расчета производных финансовых инструментов. Во «взрослых» приложениях разработчикам не до этого. Они слишком заняты программированием и настройкой абстрактных слоев. Им банально не хватает времени и сил на бизнес-логику. А если и хватает, то она получается куцей, не такой продуманной, не такой детальной и, откровенно говоря, слабой.

В нашей компании, например, на VBA написана программа, которая строит сценарии Монте-Карло в зависимости от состояния кредитного портфеля и его вызревания и позволяет дать ответ всем пользователям финансовой отчетности – какие убытки у финансового учреждения будут на горизонте квартала, года, двух и трех лет.

Причина шестая, дополнительная. VBA – ваше конкурентное преимущество

По названным причинам в компаниях, особенно крупных, всегда есть разработчики, которые знают правду и не изменят любимому инструменту. Сравнивая VBA с Python, C Sharp, JavaScript или другими современными компилируемыми и интерпретируемыми языками, можно сказать, что VBA – это рубанок. Рубанком дом не построить, но выточить более красивую деталь, чем с помощью автомата или роботизированного инструмента, можно и даже нужно. Поэтому для любого эксперта в предметной области знание VBA — огромный плюс.