PureBASIC is the best BASIC language there is.
For a few points brought up.
The IDE might seem like a glorified version of Notepad, but it isn't not even close.
Anyone who uses Blitz3D will already be familiar with the IDE style, however there are ways to change this.
Standardly the programs you are working on are tabbed at the top, and to the right is a box for your Functions/Arrays/Structures.
This is very remanisant of DBP IDE infact.
Down the left side of each source is the standard numbers.
However as I've said all of this can be changed using the preferences. Colour/Font/Positions/Styles ... It isn't exactly a FULLY functional IDE like Microsoft Developer 6.0/.Net or Dreamweaver Mx 2004; however it has just as many features as any other Basic IDE.
(DBP's has the most, but to be honest it is still far to buggy)
And if you REALLY don't like the standard IDE, you can download the full source from Purebasic.com and make you own.
Currently there are around 8 to choose from, including one which people will recognise from a DBP one in production.
Honestly I prefer the standard one over all the 3rd parties, just like with DBP. But that's personal preferance.
Next onto the language. Simply put, it can do everything DBP's BASIC stuff can do and more.
Structures are PB's version of Types, however these are C-Compliant. This means that you can make Structures IDENTICAL to those in C, there is a reason for why this is later.
Moving on and you'll find that all the basic types are available for use...
Byte, Word, Long, String & Float
using the Structure you can create your own new types so that you can infact make Double or even Quad Floats and such...
you assign these easier than you do in dbp using '.' instead of 'as'
so like
a.l = 65535
b.f = 1.0
you get the idea
this extended to structures as well, only when you put in your structure data when you want to do it as the individual parts you use the '\' rather than '.'
imo this is confusing but you get used to it
structure mystruct
a.l
b.f
endstructure
current.mystruct
current\a = 65535
current\b = 1.0
but as you can use them like C you can do cool things like this
structure mdlverts
*new.mdlverts
x.f
y.f
z.f
endstructure
model.mdlverts
for i=0 to 4
model(i)\x = 1.0*i
model(i)\y = 1.1*i
model(i)\z = -0.9 *i
next i
also it allows for arrays defined as [], which although are support to be static you can actually use the pointer feature again to extend them
Next up are the Procedures (functions). These are again C-Compliant, so really they look and act just like a C Function.
procedure.b flipByte( in.b )
procedureresult = ~in
endprocedure
as you can see you assign the return value to the procedure rather than it being completely open. you can argue this is more limited, however really if your using a decent pointer system this is a moot point.
The depth with which PureBASIC has really means it is closer to C than any other BASIC on the market. This is examplified through the fact that you can natively use any library file that C can.
There is even extended functionality to allow you to use Windows .COM based Libraries natively.
This means rather than using DirectX like DBP does, you can use DirectX as if you were just using C++.
The same goes for OpenGL...
To that end PureBASIC comes with 2 examples which show just how easy it is to do this. As well as an SDK to allow you to include any library file you choose.
There are a few limitations which when your working between the cross platform compatibility you wish would be a little better.
For example the Deftype really need to conform to C's as well as Definitions right now are pathetically basic (like DBP's Constants)
The Declare command goes a little way to eliviate this but really there are several functions doing the job of one and not all of the jobs of it. So when your programming skills get advanced enough you'll begin to start hitting limitations which you can't easily think ways around without using ASM.
That said inline ASM is built in and NASM/FASM Compliant.
As Rich mentioned most of the current build-in functions are Windows Only ... however you do have the option to export Amiga/Linux executables as well.
(along with 3 varieties of Windows Compiled Program Type, Win32/Console/SharedDLL)
Unfortunately the main reason there are only a few (but bloody good) game example for PureBASIC is simply because the Windows API is exposed from the get go and is heavily commented on howto use.
DirectX and OpenGL aren't covered by a particularly decent engine so you have to code them pure... most people will just use C/C++ to do this over a BASIC, hense no decent examples.
But that doesn't mean it isn't possible, just that most people who are working with a basic don't want to be working with overly complex APIs.
Perhaps once someone makes a 3D Engine for it like DBPs, eh.
Personally I cannot stand the Syntax, if i could then I'd drop dbp like a lead weight.
So yeah I'd totally recommend it ^_^
AthlonXP 2500+ | 256MB DDR PC2700 | GeForce FX 5700 60.18 | DirectX 9.0b | CMedia 8620 | Windows XP Professional