A friend of mine is considering using FreeBASIC in a critical production environment. They currently use GWBasic, and they want to make a soft transition towards more modern languages. I am just worried that there might be undetected bugs in the software. I see that their version number is 0.22.0, which indicates, that it is not quite mature yet. I also read this discussion, without being able to conclude. Also on their Sourceforge pages there is no indication of whether it is Alpha or Beta (which anyways is not a very good indicator). Does anyone have own experience about the maturity, ideas on how to judge the maturity, or know of companies using FreeBASIC in a critical production environment?

  • 23
    If they are using GWBasic anything is an improvement.
    – Craig
    Jun 16 '11 at 12:31
  • 1
    The FreeBASIC forums seem a better place to ask this question.
    – Matt Ellen
    Jun 16 '11 at 13:39
  • 2
    @David Do they have a testing environment? It might be worth running one and hiring as a consultant one of the project developers, so he/she can fix bugs found in the testing run.
    – Vitor Py
    Jun 16 '11 at 18:13
  • 4
    I suspect that transitioning from GWBasic to another BASIC dialect won't be as "soft" as you think. Hofstadter's law applies especially to rewrites. Jun 16 '11 at 19:05
  • 1
    Version numbers are very project-specific things. Some projects reserve the major digit for something very special and just keep revving the minor and micro versions. Sep 24 '12 at 20:06

I hope it's not too late to dig up an old thread.

I have used FreeBASIC in an industrial environment for 5+ years, and have found it to be rock solid. It actually worked very well back around 0.1, with growing QuickBASIC compatibility, and has slowly grown to exceed those roots and become more "serious" but can be told to work in a near 100% QB compatible mode. Fairly large releases only see the version number go up by 0.01.

I suggest your friend takes the GWBASIC to MS QuickBASIC, which should be quite easy (I've done it before, isn't it designed for 100% compatibility?). FreeBASIC then gives you a '21st century' option to run natively as a 32 bit app should anyone feel the need. Otherwise with Windows 7 etc, you're stuck using a VM running DOS or something.


PureBasic is probably your best bet instead of FreeBASIC but if i was you, i'd probably change to a more modern and robust language such as C# or Python.


Imho the best BASIC to use for upgrading from GWBASIC is PowerBasic (www.powerbasic.com). Many have done this before, so there's quite a lot of experience in Powerbasic's user community should you need assistance there.

Also Powerbasic is a high quality product with almost no problems/bugs and actively developed. It's not free ($199) but worth every penny.

FYI: I'm not affiliated with them and use VB.NET myself (for professional reasons; otherwise it would be Powerbasic ...).


Powerbasic is quite mature, and I would heartily recommend it, especially if dependability and great support are important to you. I personally don't use it anymore because it is not really designed for games programming - for which I use (and recommend) the cross-platform BlitzMax.

That being said, Freebasic should not be too much of a hurdle if you're coming from GWBasic, and seems to be reasonably stable as well. Documentation and forum support are better than average as well.

Still, if I were a company (as opposed to an individual) looking for a solution that will be there and supported for the foreseeable future, I would go with something like Powerbasic. here is a program that can convert QBasic to Powerbasic: http://www.powerbasic.com/support/downloads/files/QB2PBv2.zip

Hope this helps! Russell


These are the following basic-dialects which are good both as compiler and embeddable script:

1) gambas

These are the following basic-dialects which are good only as compiler but can embed other scripts:

2) jabaco

3) objectivebasic

4) freebasic

5) chipmunkbasic

These are the following embeddable basic-dialects which are good, and can be embedded into other basic dialects depending on the frameworks:

6) scriptbasic

7) maven-sb4j

8) ajbasic

All these can also be used for making gui applications which differ with each other, database connecting tools, and in the area of embeddable applications (webserver pages), scriptbasic and gambas-gbs3 are already there, whereas if you can get fb-curl and fb-simplewebserver and integrate them into freebasic framework, then also freebasic-server-pages (if they are not there then you may have to download and copy-paste the library and header files under the lib and include directory of freebasic respectively). Even jabaco can embed maven-sb4j, or objectivebasic and chipmunkbasic can embed applescript and scriptbasic respectively. So these are likely to have have solution for most of the requirements.

If you are very particular with gwbasic compatibility then choose bwbasic (gwbasic enhanced for freebsd and linux), but I don't think there is much of any difference with some others.

However for graphics with bwbasic you have to contend with x11 based options or wait until it adds support for tk, fox, and other well known toolkits.

If you are willing to look for:

Robust vb-like development environment + basic server pages, then choose gambas or jabaco with maven-sb4j.

Robust interpreter supported with a thin but good ide: freebasic, and if you can get fb-curl and fb-simplewebserver and integrate them into freebasic framework, then also freebasic-server-pages.

Robust web-engine for basic server pages, then scriptbasic, and thinbasic.

So, these are all robust and may become usable at least after adding some few modules.

Borrowed some minor features from python/perl/ruby: scriptbasic (and also yabasic3)

Easy and very standard syntax: would be obasic (openbasic) in future, currently freebasic and scriptbasic are two varied flavors or traditional basic, whereas gambas and jabaco are a varied vb6 dialects.


What exactly is your use case? Or rather your friend's use case. I would be directing them toward Python (or any of the other widely used but also simple languages out there) but perhaps there is some specific reason why they need to be using a BASIC dialect.

I'm all for playing around with various languages in personal projects, but for critical production purposes I generally stick to languages that are widely known, widely supported, and very battle-tested.

  • 3
    This is not an answer, but more suited as a comment. The use case is that it is used for business critical calculation of material costs, labor costs, generation of 3D model etc. The current GWbasic program has around 30.000 lines of code (created by a single developer), which is the reason why a smaller rewriting is preferred compared to going to Python, which would require a complete rewrite.
    – David
    Jun 16 '11 at 18:41
  • 5
    I am not personally familiar with either FreeBASIC or GWBasic but I suspect it's not a small rewrite. Most BASIC dialects that I've encountered are actually quite different from each other. Pure Basic, Real Basic, Blitz Basic, GL Basic, etc. They are conceptually very similar (eg. not object-oriented) but the syntax is completely different.
    – jhocking
    Jun 16 '11 at 18:53
  • Tempted to downvote anyone who favours "pretty" code over working code. It sounds like they have a large body of tried and tested GWBASIC, they are happy with its functionality, they would just like to move to a more modern language without having to re-write or re-design everything, which is perfectly sensible. Re-writing a large legacy system is one of the most arduous tasks you can ever embark on! Sep 26 '12 at 9:42
  • Moving to a more modern language without rewriting everything is a sensible first instinct, but not really practical in this situation. If the only reason to rewrite everything is to get "pretty" code then yeah that's a huge waste of time, but that's a reason not to switch languages. If however you have a real need to switch languages (this is an old thread so I don't recall if he did) then switching languages pretty much forces you to rewrite everything.
    – jhocking
    Sep 26 '12 at 15:59

Then there is java-api support or japi for scriptbasic, yabasic2 and jabaco, which is cross-platform.

But of course now a days many basic-dialects have other cross platform toolkits too, which can soon pave way for quality applications in the future.

Not the answer you're looking for? Browse other questions tagged or ask your own question.