Date: 2015-01-31 10:02 am (UTC)
From: [identity profile] serge shikov
> понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее.
Ну вообще говоря, у VB (не VBA) нет никаких принципиальных причин, по которым он был бы невыносимо медленным, и никаких серьезных узких мест.

Другое дело, что у него есть ограничения, которые не позволят например, использовать современные быстрые процессоры и большую доступную память по полной. А если это именно VBA из 32-битового Офиса, тогда вы скорее всего используете одно ядро и пару гигабайт памяти, не больше, даже если у вас и того и другого доступно в разы больше.

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

Надо понимать, что "раз в 10 быстрее" - это например перенести все расчеты из базы данных в память (т.е. данные с диска - туда же), и вы уже имеете ускорение на порядок, а то и на все три. Прежде чем ускорять свою модель, сначала надо четко понимать, почему она медленная, и где у нее узкое место, и какое оно - это внешние носители, т.е. диски, память, или процессор?

А без этого выбирать язык - это чистой воды дилетантство.

С точки зрения простоты и быстроты - я бы посоветовал clojure или groovy. Первый - это диалект lisp, и хорош гибкостью в первую очередь. Второй - синтаксический упрощенная версия Java. Оба на платформе JVM, а это значит, что взяв 64-битную версию, вы не будете иметь проблем, если нужно много памяти. И легко перейдете на более быструю машину, если такая подвернется, не имея проблем с перекомпиляцией. И еще у вас будет куча готовых инструментов, которые есть для JVM. Но это мои предпочтения.

Уже предложенный VB.Net - вполне достойный вариант, как и сама .Net в качестве платформы (опять же, куча инструментов тоже никуда тут не делась, хоть и другая). И дальше есть куда расти, на c# или f# например.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting
Page generated Feb. 8th, 2026 07:35 pm
Powered by Dreamwidth Studios