Basic languages worth supporting

Miscellaneous Forums/General Discussion/Basic languages worth supporting

I'd like to run a little poll:

1. What are the BASIC dialects you know that are worth using, in your opinion ?
2. Among these languages, what are the ones which are well suited for game development ?
3. Among (all) these languages, which ones don't support function pointers, or support function pointers that can only be used within the language (but not passed to code written in C by example)?

In case you're interested, I'm wondering this because I plan to add support for other languages for BriskVM 2. The current internal design supports languages without function pointer, but it's really a pain sometimes and I'm wondering if it's worth the effort. If it's not, I may drop the idea of supporting languages without function pointers, which would give me a lot more freedom.

If you've ever used BVM 1, or plan to use BriskVM 2, you may also answer this one:

4. Would you mind if support for languages without function pointers was removed from BriskVM 2 ? (in particular it means no support anymore for Blitz3D/BlitzPlus).

Thanks to anyone who will share his knowledge and thoughts.

[EDIT]Another question, quite vital to me:

5. Which of these languages don't support neither DLL linking, not external static library linking.

1. BlitzMax, PureBasic (never used VB for that, no exp with RealBasic, Dark Basic Engine is good, the language the worst crap ever created. Dark Basic Pro allows a lot of "hack in" from outside through to its SDK as the Windows UI library shows that adds full ui support to the DX window etc. Has the more financial potential than the BRL community by quite a magnitude)
2. Both
3. Both support function pointers

1. QuickBASIC, Blitz3D/BMax, Visual Basic 6.0, VB 2005, Liberty Basic, DarkBASIC Pro, and FreeBASIC.
2. Blitz3D and Visual Basic 6.0
3. Not too sure, but I believe that function pointers are well known in Microsoft's development suites, as well as BRL's.

Can't answer #4, sorry... I'm just hoping that other languages outside of BASIC had better function pointers than they do. Since I own Visual Studio 6.0 Professional as well as Visual Studio 2005 Standard Editions, it's for sure that the .Net structure may need to bring a less integrated pointer, and just become less dependent on the other languages in the package.

1. Blitz3D, BlitzMax, LotuScript, Visual Basic, GW Basic, Amiga Basic.
2. Blitz3D, BlitzMax, LotuScript.
3. I think GW Basic only, as it's a DOS based Basic. But I use GW Basic only on DOS machines which can't run Windows anyway.
4. I had yesterday a quick look at the BriskVM 2, and found it hard to find any info (like an About page) what the purpose of it was. Reading the Testimonial from some Leadwerks guy made me think that BriskVM 2 is kinda like a standardization of all the stray Blitz Basic dialects. I've also thought of something similar, to make a language which is like a super high level precompiler language, and can be converted into any C++, Basic, Pascal or whatever source code on the fly.

Thanks for the answers, keep them coming.

@Lumooja: your answer 4 shows I need to enhance the documentation...
BriskVM is in fact a scripting system. It lets you incorporate scripts into you application, and the script language is based on BlitzBasic. Actually I would say it IS BlitzBasic (95%), plus many extensions such as OOP or serialization.
The "Leadwerks guy" is Joshua Klint, the author of the Leadwerks Engine (which uses BriskVM 2 as its scripting solution).


Concerning DarkBasic, it seems it doesn't support function pointers (at least natively, I found posts about someone hacking a workaround). Can anyone confirm this?

@Koriolis, while your main page http://www.koriolis-fx.com/ shows quite detailed what BriskVM 2 does, it's just missing the one little sentence "Why?" :) An seperate "About" page would be probably just confusing, as you kinda do the "About" on the starter page.

And yes, I know the question of "Why?" can be iterated into infinity, but most customers just want a solid strong subjective standpoint to base their decisions on.

BlitzMax.

Heh, I thought you meant for localisation in which case: English, Spanish, French, German, Japanese, Russian, Chinese etc.

B3D, PowerBasic, PureBasic

no one has mentioned powerbasic which might be the most powerful of the basics... or ibasic... or glbasic...

BlitzMax.
I am getting interested in Playbasic specifically because of the plans for PBFX.

Blitz Max, Blitz 3D, Cobra.

BlitzMax, Emergence Basic, Aurora, Power Basic.

Barney

Big&,

Cobra is based on Pascal, not Basic.

Just Luke,

I dont know pascal and can code 100% in Cobra. The only difference I can tell between that and Max is you have to declare your variables before you use them. I do that in Max anyway.

The only BASIC's worth supporting are BlitzMax, DBPro, PureBasic, REALBasic and VisualBasic.

The former 3 are the only ones that are decent for games.

Thanks for all the replies.
I already know I'd like to support PureBasic and DBPro.

I'll have to evaluate the other ones mentioned here.

The poll is not closed however, feel free to enhance the list :)

Well, if it weren't for learning to adapt my code to the .Net structure, then VB 2005 would be awesome. However, most of my support goes to VB 6.0 as far as Visual Basic is concerned. Needless to say, BlitzMax and Blitz 3D seem to take the cake overall, tho...

i stick a vote in for blitz3d, that old dog still has lots of life yet.

True, very true, the reason why I can't find better support for VB 2005 is because it doesn't allow for backwards compatibility to traditional VB code.

1. What are the BASIC dialects you know that are worth using, in your opinion ?


BlitzMax, BlitzBasic/BlitzPlus, PowerBASIC.

Back in the day also AMOS Professional, but it has definitely outlived its usefullness by now.

it DOES... just not without some tweaking... And some code does blow up as they did away with a few commands.

Microsoft.VisualBasic namespace holds a lot of compatibility commands for vb6 conversion.

I was like you for years. I just didn't want to take that leap and change. But I took a job that was based around vb.net 2005 and it was sink or swim. That was in November. Now I go back and work on some legacy vb6 stuff and wonder how the hell I managed without .net. :)

On the other side of the equation (ie. the scripting language) I'd like to see more choice of syntax. Particularly an option to switch to either a JavaScript/C# type syntax and/or a Python style syntax. Would make it much easier to develop alongside similar languages.

Would this be something you would consider, or would it be way too complicated (and break stuff)?

1, 2, 3: Not BASIC in the strictest sense, but Python bindings would be very useful.

4: Yes.

@Beaker: I don't know really. This is something I considered a few times, but I don't think the gain would justify the effort. Especially considering that it would certainly bring some confusion if the scripting language came in many different flavours. I don't reject the idea yet, but that's definitely not my priority.

@FlameDuck: are you saying what I think you're saying : being able to use BriskVM with python as the host language? (or were you speaking about python bindings for BlitzMax by any chance)
If so I must say you manage to surprise me. I wouldn't have thought I would ever get this request. This is, however, very well doable.
As for answer 4, this means you plan to use BriskVM 2 with Blitz3D/BlitzPlus ?
In any case, I now think I'm going to keep the support for host languages lacking function pointers. Lately there were some features that I was considering to add that are hard (and in some eras, impossible) to implement without funciton pointers in the host languages, hence the question. However I looked toroughly and they wouldn't fit well in BriskVM so I've dropped the idea. In addition, I already took the trouble to work around the lack of function pointers - very painfull when you need to call host functions inside of a recursive algorithm -, and this may actually be a big plus if there are other important potential host languages that have no (or lacking) function pointer support (as is the case for Blitz3D/BlitzPlus).