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?
-
23If they are using GWBasic anything is an improvement. – Craig Jun 16 '11 at 12:31
-
The current solution has been tested for 20 years, so they know all the bugs, but this has admittedly cost them quite a bit of money to find out. – David Jun 16 '11 at 12:56
-
1The FreeBASIC forums seem a better place to ask this question. – Matt Ellen Jun 16 '11 at 13:39
-
@Matt Ellen, I am worried that they will be biased, as the people who have bad experience are less likely to be active on their forums. – David Jun 16 '11 at 17:27
-
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
-
4I suspect that transitioning from GWBasic to another BASIC dialect won't be as "soft" as you think. Hofstadter's law applies especially to rewrites. – Rein Henrichs Jun 16 '11 at 19:05
-
@Rein Henrichs You might be right, but they have decided to go for this, so the only thing I can comment upon is the maturity of the compiler. – David Jun 16 '11 at 19:15
-
FreeBASIC might not even be that good of a replacement for GWBasic. [According to this](http://www.gw-basic.com/1/post/2011/2/gw-basic-to-freebasic.html) the two have enough differences as to make the task of converting from one to the other nontrivial. – System Down Jun 16 '11 at 21:15
-
1Version 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. – Lars Viklund Sep 24 '12 at 20:06
7 Answers
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.

- 2,067
- 16
- 19
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.

- 104
- 1
- 1
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

- 31
- 1
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.

- 31
- 2
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.

- 2,641
- 19
- 18
-
3This 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
-
5I 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! – James Anderson Sep 26 '12 at 09: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.

- 31
- 2