The best I found in the early/middle 90s was GFA basic for 16 bit Windows but with the advent of WinNT4/Win95 I found PowerBASIC
I coded a lot in Gfa, first on the Atari ST, then on Windows; the 16-bit version was marvelous, it took the best of Basic and Pascal. But
Frank Ostrowski quit before 32-bit Windows became the standard, and those who tried after him to produce a 32-bit version failed miserably. PowerBASIC is indeed a good dialect (and so are FreeBasic, FBSL, O2, ...), but M$ destroyed the scene, maybe not intentionally, with VB - the most successful non-BASIC ever 8)
? = PRINT in basic
I know; it's just not intuitive, and Basic should be intuitive.
Your C example works, of course, but you are comparing apples and oranges. What you are showing is a static strings example, and that is much, much closer to hand-made assembler than to Basic. Try this:
include \masm32\MasmBasic\MasmBasic.inc ; download
SetGlobals a$="Hello avcaballero", b$=", what's up today?"
Init
Let esi=a$+b$+CrLf$+"Here are two little files:"+CrLf$+FileRead$("\Masm32\include\Windows.inc")+CrLf$+FileRead$("\Masm32\include\WinExtra.inc")
Inkey Left$(esi, 230), CrLf$, "...", CrLf$, Mid$(esi, 977500, 142)
EndOfCodeOutput:Hello avcaballero, what's up today?
Here are two little files:
;;;; head
comment * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
WINDOWS.INC for 32 bit MASM (Version 1.6 RELEASE January 2012)
...
comment * ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
winextra.inc is the second part of the windows.inc file