FreeBASIC is a free/open source BASIC compiler for Windows DOS and Linux
115 points
14 days ago
| 7 comments
| freebasic.net
| HN
orionblastar
14 days ago
[-]
This one emulates GW-BASIC as PC-BASIC so old BASIC programs for the IBM PC DOS systems can run on modern systems: https://robhagemans.github.io/pcbasic/

FreeBASIC is like Microsoft's QuickBASIC.

More BASIC Languages: https://www.thefreecountry.com/compilers/basic.shtml

reply
vunderba
14 days ago
[-]
It really isn't - from the docs themselves:

  FreeBASIC gives you the FreeBASIC compiler program (fbc or fbc.exe),
  plus the tools and libraries used by it. fbc is a command line program
  that takes FreeBASIC source code files (*.bas) and compiles them into
  executables.  In the combined standalone packages for windows, the main
  executable is named fbc32.exe (for 32-bit) and fbc64.exe (for 64-bit)

The magic of QuickBasic was that it was an editor, interpreter, and help system all rolled up into a single EXE file. Punch F5 and watch your BAS file execute line-by-line.
reply
pjmlp
13 days ago
[-]
A magic also available in Turbo BASIC.

Ironically Borland gave up competing against Microsoft on BASIC tooling, while Microsoft gave up competing against Borland on Pascal tooling (Quick Pascal).

Both products where short lived, Microsoft killed Quick Pascal quite quickly, while Borland sold Turbo BASIC, which became Power BASIC.

reply
orionblastar
13 days ago
[-]
PowerBASIC is dead; the website no longer works. The old PowerBASIC for DOS abandonware can be found here: https://winworldpc.com/product/powerbasic/3x

It is a DOS 16-bit program.

reply
pjmlp
13 days ago
[-]
Yeah, I lost track of where it went back in Windows 9X days.

Real BASIC seemed the only alternative to VB that was somehow still market relevant.

reply
westurner
14 days ago
[-]
> The magic of QuickBasic was that it was an editor, interpreter, and help system all rolled up into a single EXE file. Punch F5 and watch your BAS file execute line-by-line.

That's still how vscode works; F5 to debug and Ctrl-[Shift]-P like CtrlP.vim: https://code.visualstudio.com/docs/debugtest/debugging

FWICS,

The sorucoder.freebasic vscode extension has syntax highlighting: https://marketplace.visualstudio.com/items?itemName=sorucode...

There's also an QB64Official/vscode extension that has syntax highlighting and keyboard shortcuts: https://github.com/QB64Official/vscode

re: how qb64 and C-edit are like EDIT.COM, and GORILLA.BAS: https://news.ycombinator.com/item?id=41410427

C-edit: https://github.com/velorek1/C-edit

reply
vunderba
14 days ago
[-]
I tried QB64 a couple years ago, but IIRC it's still compiled as opposed to interpretative, e.g. you can't Ctrl-Break and drop into the current executing line of BASIC code unless they've radically changed how it works.
reply
90s_dev
14 days ago
[-]
Rather, QB was the pico8 of the 1990s. Convenient, self-contained, mysterious, quasi-powerful, in-app help menu for the entire language and API, and a few built-in demo games.
reply
westurner
11 days ago
[-]
'Edit' - a CLI/TUI text editor similar to EDIT.COM but written in rust - is now open source https://news.ycombinator.com/item?id=44031529
reply
bencollver
14 days ago
[-]
Wasn't QBasic the interpreter as opposed to QuickBasic the compiler?
reply
vunderba
14 days ago
[-]
It's been a long time, but my impression was that QuickBASIC had an interpreter and the ability to compile. Then later on, Microsoft bundled a more limited version called QBasic with later versions of MS DOS which lacked the compiler.

But all of them (QBasic, QuickBASIC, Microsoft PDS, and even Visual Basic for DOS which almost nobody remembers sadly) had the editor, interpretative execution, and built-in help.

reply
agf
14 days ago
[-]
This matches my memory. When I got my dad's old work computer with QuickBASIC on it, and I discovered the compiler, and could write programs other people could "just run", I felt like a real programmer for the first time.
reply
90s_dev
13 days ago
[-]
Yet you were even before that, the moment you made programs work at all.
reply
90s_dev
14 days ago
[-]
I remember VB-DOS, and fondly too. It was magical. I think I used it even before VB3.
reply
pjmlp
13 days ago
[-]
Yes that was the case, by the time Visual Basic 5 came to be, its compiler was based on Visual C++ backend.
reply
the_af
14 days ago
[-]
No, QuickBasic was both an interpreter and a compiler. QBasic was just an interpreter.
reply
klipt
14 days ago
[-]
"Compiler". Even Visual Basic only compiled to p-code, which had to be interpreted at runtime. Not to fully native code.

That's why it always ran slower than Delphi.

reply
dspillett
13 days ago
[-]
VB6 (and IIRC 5 too) could compile to native, as seen in the compile options: https://imgur.com/a/v0QcbBU

P-code was still offered as an option because some wanted the smaller output binary sizes, and the build process was faster⁰.

Some incorrectly assume that the native option wasn't really fully compiled because the main supporting library (msvbvm60.dll) was still used¹, but this was for common library functions³ and the interpreter portion was not touched.

There were unofficial tools that would statically link your exe with the relevant VB runtime (and certain other libraries) but the use of those was rare.

----

[0] Though I don't think the build speed matter was actually significant for many, if any, workflows, even on really slow kit.

[1] Some didn't distribute it after a time, to reduce download sizes, as they were included with Windows so users already had them. Windows 7 (and maybe Vista?) included msvbvm60.dll and friends by default, and most XP and 98 installs² had it too as it came with Internet Explorer updates.

[2] though there was a compatibility break at one point that meant you needed to recompile with VB6sp6 if you hadn't included a local copy in your apps directory

[3] Much like many C programs don't have glibc statically linked into them, but work because it is practically ubiquitous on the systems they target.

reply
pjmlp
13 days ago
[-]
Having to depend on msvbvm60.dll was hardly any different than msvcrt.dll, but try to explain that to most folks.
reply
pjmlp
13 days ago
[-]
Wrong, starting with with Visual Basic 5, a proper compiler was introduced based on Visual C++ backend, in addition to the P-Code interpreter.

Additionally VB devs no longer needed to rely on C++ for ActiveX controls, aka OCX, the VBX replacement.

reply
lproven
13 days ago
[-]
Both of these are incorrect.

Both QuickBASIC and the BASIC Professional Development System compiled to full native DOS code, and could make standalone EXE files.

VB finally gained this with VB 6 which could also make native EXE files.

reply
the_af
13 days ago
[-]
QuickBasic produced a DOS .EXE file.

It didn't output p-code. You're confusing it with Visual Basic.

reply
lproven
12 days ago
[-]
You are correct, and VB 6, the final version, at last included a native-code compiler as well.
reply
DCKP
14 days ago
[-]
All this brings back fond memories of my first programming foray, an ASCII game in QBASIC from Mars and Back: Computer Programming Handbook by Andrew J. Read. So much fun, so much frustration.
reply
analog31
14 days ago
[-]
This is what I recall too. QuickBasic was perhaps BASIC's answer to Turbo Pascal, a relatively lightweight but usable text based IDE. I knew some happy users.
reply
pjmlp
13 days ago
[-]
No, the answer was Quick Pascal, however Microsoft didn't really cared that much about it.
reply
orionblastar
13 days ago
[-]
https://winworldpc.com/product/quickbasic/45 for a look at QuickBASIC 4.5 abandonware; they also had QuickC and QuickPascal.
reply
anthk
13 days ago
[-]
Kinda like any Forth. Even PForth has a bundled block editor and a rudimentary help system.
reply
lproven
13 days ago
[-]
No, FBC is not like QuickBASIC: there's no IDE in FBC.

However, the QB64PE project does have an IDE. Some screenshots in this thread:

https://qb64phoenix.com/forum/showthread.php?tid=2469&pid=23...

reply
WalterGR
14 days ago
[-]
> FreeBASIC is like Microsoft's QuickBASIC.

Except that it doesn't emulate Microsoft's QuickBASIC, or ... ?

reply
banana_giraffe
14 days ago
[-]
It does support "-lang qb" which is designed to specifically limit FreeBASIC to a QuickBASIC compatible dialect.
reply
TonyTrapp
13 days ago
[-]
And more specifically, "-lang qb" is more or less how FreeBASIC started out. The more modern dialects came later, and became the default, hence the addition of "-lang qb".
reply
Firehawke
13 days ago
[-]
Microsoft really should go back and look into open sourcing more of their really old tools. Get versions of MASM, QuickBasic, VisualBasic (the DOS version, of course), and so forth out there.

There's a lot to learn from these old tools and it'd be nice to have this stuff opened up for tinkerers on ancient platforms. It's not like MS is going to make any money off any of this anymore, nor is it viable for use on a modern platform even with substantial effort.

reply
JdeBP
12 days ago
[-]
Of course, things like NASM have existed for a long time precisely because MASM and TASM were not open source.

* https://www.nasm.us

reply
anta40
13 days ago
[-]
I have some CDs from a computer magazine (in the 2000s) which provided you code archives even back to 90s (including good old QB stuffs).

FBC easily compile lots of them. Well, too bad still no macOS support.

reply
zozbot234
13 days ago
[-]
Did you check whether these are available on Internet Archive already?
reply
anta40
13 days ago
[-]
The magazine I meant is Mikrodata. It's an Indonesian IT magazine, which was was closed few years ago. Until 2000-ish, the magazines came with CDs which has code archives from practically all Mikrodata contributors.

I started learning programming in 2002 with VB, so it felt kinda amusing looking at 90s DOS stuffs (Turbo Pascal 7, QB, TASM) etc

reply
zozbot234
13 days ago
[-]
Looks like the Internet Archive has no content from this magazine as of yet! It may be that they have it archived privately and it's just hidden from public view, but you may want to write to Jason Scott https://en.wikipedia.org/wiki/Jason_Scott (who works on the Software section at the Internet Archive) about getting this stuff backed up and archived properly for the foreseeable future. As an official archive and library, the Internet Archive is one entity that can keep copies of rare and fragile content safely backed up (and CD coverdiscs from old Indonesian magazines definitely qualify) without being restricted by copyright laws as most other people and organizations might be.
reply
gus_massa
14 days ago
[-]
Old discussion: https://news.ycombinator.com/item?id=38730966 (105 points | Dec 2023 | 70 comments)
reply
larodi
13 days ago
[-]
I really wonder why MS would not supper the whole BASIC legacy that anyway exists even without them.
reply
ironicgnome
10 days ago
[-]
But can it run Nibbles or Gorillas?
reply
andrea76
13 days ago
[-]
Is there an ide with form designer like visual basic?
reply
lproven
13 days ago
[-]
Not with FreeBASIC.

Others that do: Gambas, Xojo, RAD BASIC, Twin BASIC.

reply
TonyTrapp
13 days ago
[-]
I think FBEdit was the closest to that, but like with most other languages, it never reached the same level of integration and quality because forms are simply not first-class citizens in FreeBASIC, unlike VB where the whole development process evoled around forms. You always need native GUI code or use a GUI library like GTK to achieve the same in FreeBASIC.
reply
Libcat99
13 days ago
[-]
Not free, but this was one of my favorite things when learning to program. https://everybasic.info/lib/exe/fetch.php/basics/vbdos-3.png Visual Basic for DOS.
reply