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?
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.
These are the following basic-dialects which are good both as compiler and embeddable script:
These are the following basic-dialects which are good only as compiler but can embed other scripts:
These are the following embeddable basic-dialects which are good, and can be embedded into other basic dialects depending on the frameworks:
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.
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
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.