Sub Halve (ByRef i As Integer)
i /= 2
End Sub
Sub Triple (ByRef i As Integer)
i *= 3
End Sub
Type operation As Sub (ByRef As Integer)
' an array of procedure pointers, NULL indicates the
' end of the array
Dim operations(20) As operation = _
{ @Halve, @Triple, 0 }
Dim i As Integer = 280
' apply all of the operations to a variable by iterating through the array
' with a pointer to procedure pointer
Dim op As operation Ptr = @operations(0)
While (0 <> *op)
' call the procedure that is pointed to, note the extra parenthesis
(*op)(i)
op += 1
Wend
Print "Value of 'i' after all operations performed: " & i
Кто первым догадается, что этот код делает? (взято из документации к FreeBASIC). Сторонникам C такая галиматья должна быть как бальзам на грудь, хотя работа с указателями на языке Intel Assembler'а, например, выглядит куда логичнее и понятнее, поскольку обходится минимумом мозолящих глаза сущностей.
Я это к тому веду, что современный BASIC всё также многословен, но по степени замороченности наступает на пятки языку C. На мой взгляд, всё же основным недостатком BASIC, из-за которого им мало кто пользуется в Linux и вообще в nix'ах - это отсутствие стандартизации. Но если считать, что, например, Java, PHP и Perl - это разновидности языка C (а так оно вообще говоря и есть, если посмотреть на их синтаксис), то BASIC с его немногочисленными живыми разновидностями (а по сути только с тремя: FreeBASIC, Gambas и Mono BASIC aka VB.Net) уже не будет казаться таким уж многоголовым чудищем.
Кстати, весьма интересно, что Microsoft BASIC PDS 7.1, вышедший что-то в 89-м году или 90-м, был вообще одним из первых универсальных ЯП, отлично заточенных под работу с базами данных....
P.S А вообще программистам следовало бы думать о качестве кода, а не о том, какие инструменты правильные, а какие нет. А то получается как в басне Крылова: «а вы, друзья, как ни садитесь, всё в музыканты не годитесь».