Хотелось бы прокоменнтировать данную статью:
Есть конечно же и у других языков свои плюсы и Вы вправе выбрать любой из них для своих научных исследований, но я считаю, что на ближайшие лет 10 Visual Basic 6.0 в сочетание с Free Basic (или без него) это наилучший выбор для научных работников.
Считается, что для научных исследований в первую очередь важна скорость вычислений. Например моделирование ядерных взрывов, декодирование зашифрованных сообщений, моделирование автомобильных аварий, радиоастраномия, генетические алгоритмы.
Значит во главу угла ставится скорость вычислений, и максимально эффективное использование сопроцессора. Компилятор должен уметь оптимизировать математические вычисления, а также очень важно, уметь оптимизировать ветвления. Осуществлять балансировку и трамбовку логического дерева конструкций Select Case и IF-THEN.
Для примера сравним VB c PowerBASIC for Windows. Хотя бы потому, что в PB абсолютно средний, ничем не выдающийся оптимизирующий компилятор. Из оптимизаций в основном только сжатие цепочки переходов, удаление общих подвыражений, размножение констант, снижение мощности инструкций, удаление недостижимого кода и размещение переменных в регистрах. 
Для начала тест эффективности мат. выражений, цикл из 1 млн. итераций: арифметические функции, SIN, COS, TAN, SQR, возведение в степень. Будем смотреть как VB и PB умеют использовать сопроцессор для вычислений с плавающей точкой.
Для верности запускаем примеры по 10 раз, а потом вычисляем среднее время.
Тестовая машина: двухядерный P-4, частота 3 Ггц, ОЗУ-512 мбайт, WindowsXP SP2.
Математический тест
- Код: Выделить всё
 Declare Function GetTickCount Lib "KERNEL32.DLL" () As Long
Const maxtest = 1000000
Sub Main()
 Dim t As Double
 Dim i As Long
 Dim x As Double
 Dim Z As Double
 Dim u As Long
 Dim TestString As String
 t = GetTickCount - t
 u = GetTickCount
 x = 1
     For i = 1 To maxtest
        
 '-----------------------------------------------
       t = Sin(i)
       t = t + i - 1
       t = t * i
       t = t / i
        
       t = Cos(i) / t + i
       t = x ^ i
       x = Sqr(t)
       Z = Tan(i)
       
 '------------------------------------------------
       
     Next i
     u = GetTickCount - u
     MsgBox (u) & " milliseconds"
 End Sub
Результаты теста:PowerBasic 8.03  (эффективность математических вычислений)
--------------------------
641 мсек 
641 мсек 
657 мсек 
640 мсек 
641 мсек 
656 мсек 
641 мсек 
640 мсек 
641 мсек 
640 мсек 
------------------------
Среднее время вычислений: 643,8 мсек 
Visual Basic 6.0 (эффективность математических вычислений)
---------------------------
859 мсек 
859 мсек 
844 мсек 
859 мсек 
860 мсек 
844 мсек 
843 мсек 
844 мсек 
843 мсек 
844 мсек 
------------------------
Среднее время вычислений: 849,9 мсек 
Итог: PowerBasic производит математические операции на 25% быстрее, чем Visual Basic. 
И это еще без размещения переменных в регистрах процессора, и прочих ручных оптимизаций.
Для вычислений продолжающихся много часов подряд, это даже не отрыв, это - пропасть! 
Скорее всего, VB не умеет эффективно использовать сопроцессор.
Поэтому юзать VB для длительных, математических и научных расчетов нерационально.
Теперь перейдем к более интересному тесту, проверку эффективности конструкций Select Case.
В сложных математических и статистических расчетах часто требуется фильтрация большого объема
входных данных. Без Select Case никуда не деться, это одна из самых медленных инструкций в программе.
Хороший оптимизирующий компилятор должен уметь, строить эффективное логическое дерево, а также
осуществлять балансировку и "трамбовку" логического дерева.
На рисунке слева неоптимизированное дереово, справа оптимизированное.
Select Case и IF-THEN тест- Код: Выделить всё
 Declare Function GetTickCount Lib "KERNEL32.DLL" () As Long
Const maxtest = 1000000
Sub Main()
 Dim t As Long
 Dim i As Long
 Dim x As Long
 Dim u As Long
 Dim TestString As String
 t = GetTickCount - t
 u = GetTickCount
 x = 1
     For i = 1 To maxtest
        Select Case TestString
              Case "String1"
                     x = 2
              Case "String2"
                     x = 3
              Case "String3"
                     x = 4
              Case "String4"
                     x = 5
              Case "String5"
                     x = 6
              Case "String6"
                     x = 7
              Case "String7"
                     x = 1
           End Select
           If x = 1 Then TestString = "String1"
           If x = 2 Then TestString = "String2"
           If x = 3 Then TestString = "String3"
           If x = 4 Then TestString = "String4"
           If x = 5 Then TestString = "String5"
           If x = 6 Then TestString = "String6"
           If x = 7 Then TestString = "String7"
    Next i
     u = GetTickCount - u
     MsgBox (u) & " milliseconds"
End Sub   
Результаты теста:
PowerBasic 8.03  (эффективность конструкций Select Case и IF )
--------------------------
250 мсек 
250 мсек 
265 мсек 
265 мсек 
250 мсек 
250 мсек 
250 мсек 
265 мсек 
250 мсек 
250 мсек 
------------------------
Среднее время вычислений: 254,5 мсек 
Visual Basic 6.0 (эффективность конструкций Select Case и IF )
---------------------------
500 мсек 
500 мсек 
500 мсек 
500 мсек 
500 мсек 
500 мсек 
500 мсек 
500 мсек 
500 мсек 
500 мсек 
------------------------
Среднее время вычислений: 500 мсек 
Итог: PowerBASIC обходит логическое дерево Select Case на 50,9% быстрее чем VB.
Отрыв еще больше чем в первом случае. Это наглядно показывает, что такая архиважная
конструкция как Select Case реализована в VB очень небрежно и медленно.
Если подвести общий итог - использовать VB для сложных и длительных научных расчетов однозначно нельзя!
Т.к. он значительно проигрывает по скорости, даже такому среднему и посредственному компилятору как PB.
А о серьезной конкуренции для C++ и коммерческих компиляторах Fortan`а даже и говорить смешно...
Это не значит, что VB - плохой продукт. Просто у него другая область применения. Неправильно сравнивать кукурузник и реактивный истребитель по скорости полета.
В аттаче лежат исходники тестов.