History of FreeBASIC

For other topics related to the FreeBASIC project or its community.
Skyler
Posts: 242
Joined: Sep 26, 2006 16:30

History of FreeBASIC

Postby Skyler » Jan 15, 2010 23:00

Hey all,

A recent assignment in one of my CS classes had me writing a short paper on the history of any programming language (other than C/C++ or Java). So of course, the first thought that pops into my head is--"FreeBASIC?"

I found v1ctor's original threads over at QBasicNews, and in conjunction with the Project History page over at the Wiki, managed to put this together. If there's anything wrong, let me know, so I can make corrections. :)

Andre Vicentini, aka “v3cz0r” or “v1ctor”, originally began development in private in September of 2004. By October of the same year, he decided to release it publicly, releasing it as a SourceForge project and posting a thread on the QBasicNews.com forums. The QBasic community responded with enthusiasm, pitching in and helping with development as well as porting various library headers to the new language. On November 13, 2004, the FreeBASIC compiler hit a milestone as it finally gained the ability to compile itself. On the 30th of that month, FreeBASIC v0.01 was released.

Up to this point, all of the development had been done under Windows. The compiler wasn’t yet at the point where it could (easily) compile a graphical IDE, so a couple different groups formed up to create an IDE—one in Visual Basic, one in C++, and a few others in their favorite languages.

In December of 2004, Angelo Mottola ported FreeBASIC to Linux—another major step. The DOS port followed a month later, on January 31st, 2005. By that point, the graphics libraries had also been added—one step closer to syntactic compatibility with QBasic.

The end of 2005 brought with it another landmark for FreeBASIC. The WinAPI headers had been completely translated, allowing programs written in FreeBASIC to use the Windows API. Full debugging support had been added that summer, and support for UNICODE strings followed shortly.

FreeBASIC saw many changes towards the end of 2006; it was heavily re-written, and began to include object-oriented features. To preserve compatibility with QBasic, the compiler was split into two different “dialects”—QB and FB, for QBasic and FreeBASIC respectively. The QB dialect was intended to provide, as nearly as possible, 99% compatible syntax to QBasic, while the FB dialect branched off to become more object-oriented and include many new features.

Since that time, development has continued; the object-oriented paradigm is still being implemented, as are several other features. As it stands, though, FreeBASIC is already a very powerful and yet easy to use language with great potential. Many people develop games in FreeBASIC—either 2D DOS-style games, or actual 3D first-person shooter or racing games in conjunction with OpenGL. The limits are almost endless; as more object-oriented functionality is implemented, FreeBASIC could be as useful and wide-spread as C/C++.


Cheers. :)

Skyler
duke4e
Posts: 717
Joined: Dec 04, 2005 0:16
Location: Varazdin, Croatia, Europe
Contact:

Postby duke4e » Jan 16, 2010 2:50

Not bad at all. Have you considered posting this to FB wikipedia article?
Skyler
Posts: 242
Joined: Sep 26, 2006 16:30

Postby Skyler » Jan 16, 2010 3:23

I thought about it, but decided to wait and see what people thought. If there's a positive response I might.
Ryan
Posts: 695
Joined: Jun 10, 2005 2:13
Location: Louisville, KY
Contact:

Postby Ryan » Jan 16, 2010 4:36

Looks good to me. Not sure if it really fits into the article, but other community-esque things might be nice to mention, like the long term FB zine QB Express and the FBGD. It might be good to clarify the creation of graphics.bi, too... that was a major step forward toward game creation, which if I'm not mistaken could be blamed for part of the language's rise in popularity. That's what we were all using QB for, right? : P
Qlink
Posts: 79
Joined: Jun 06, 2007 15:21

Postby Qlink » Jan 16, 2010 5:00

You might want to explain briefly (in a sentence or two) what Qbasic and QuickBasic are, since I'm assuming that this is meant for folks not familiar with FB and QB to read as well.

Overall, nice and concise. I was a QB guy before the FB project started, but I didn't know most of these things. Only started hearing about FB when all those folks started answering questions on QB forums with "FreeBasic can do that more easily" :P.
Sisophon2001
Posts: 1704
Joined: May 27, 2005 6:34
Location: Cambodia, Thailand, Lao, Ireland etc.
Contact:

Postby Sisophon2001 » Jan 16, 2010 15:00

I think you should have mentioned DrV also

o Daniel R. Verkamp (i_am_drv[at]yahoo.com):
- Ported FreeBASIC to DOS and Xbox; ports maintainer.
- Translated the Allegro headers (later replaced by the SWIG FB wrapper
version).
- Wrote the DLL and static library automation, plus resource scripts
support on Windows.
- Developed the VB-compatible file routines in the extended runtime library.

Garvan
cha0s
Site Admin
Posts: 5317
Joined: May 27, 2005 6:42
Location: Illinois
Contact:

Postby cha0s » Jan 17, 2010 0:39

Cool. You could also mention that the FB community started at the QBasic News forum, and eventually after outgrowing that forum, moved to freebasic.net :)

The compiler was originally built in VB and the GFX library was originally coded in SDL (more of trivia maybe? ;))
MystikShadows
Posts: 606
Joined: Jun 15, 2005 13:22
Location: Upstate NY
Contact:

Postby MystikShadows » Jan 17, 2010 23:18

The limits are almost endless;


Maybe it's just my english, but doesn't this seem to state that you'll never stop finding limits? lol

Just a thought. Good work, I was there since that original thread, and I found this a very good read :)
relsoft
Posts: 1767
Joined: May 27, 2005 10:34
Location: Philippines
Contact:

Postby relsoft » Jan 19, 2010 2:50

cha0s wrote:Cool. You could also mention that the FB community started at the QBasic News forum, and eventually after outgrowing that forum, moved to freebasic.net :)

The compiler was originally built in VB and the GFX library was originally coded in SDL (more of trivia maybe? ;))


VBDOS. TPTC came before SDL. :*)
v1ctor
Site Admin
Posts: 3799
Joined: May 27, 2005 8:08
Location: SP / Bra[s]il
Contact:

Postby v1ctor » Jan 19, 2010 11:02

Yeah, it was VBDOS. I tried to use VB first, but it lacked many features and the console output was just a hack, so i gave up.

I think cha0s was talking about the gfxlib, it was first done using SDL, then Angelo joined the project and rewrote the library.

Rel: i was using your demos (the examples/gfx/rel-*.bas one) to test the gcc emitter last days; it was nostalgic to see the "freebasic 0.1" in the title ;). You'll be impressed with the speed difference when compiled with "-O max" (max p0w3r ftw!).
RayBritton
Posts: 306
Joined: Jun 02, 2005 7:11
Contact:

Postby RayBritton » Jan 19, 2010 11:07

MystikShadows wrote:
The limits are almost endless;


Maybe it's just my english, but doesn't this seem to state that you'll never stop finding limits? lol


Haha, I suppose technically it does say that, but that phrase generally means you can do anything.
TheMG
Posts: 376
Joined: Feb 08, 2006 16:58

Postby TheMG » Jan 19, 2010 22:19

Uhh, thats combining two similar meaning phrases, "no limits" and "endless possibilities" to create one that means something completely different xD.
relsoft
Posts: 1767
Joined: May 27, 2005 10:34
Location: Philippines
Contact:

Postby relsoft » Jan 20, 2010 3:11

v1ctor wrote:Yeah, it was VBDOS. I tried to use VB first, but it lacked many features and the console output was just a hack, so i gave up.

I think cha0s was talking about the gfxlib, it was first done using SDL, then Angelo joined the project and rewrote the library.

Rel: i was using your demos (the examples/gfx/rel-*.bas one) to test the gcc emitter last days; it was nostalgic to see the "freebasic 0.1" in the title ;). You'll be impressed with the speed difference when compiled with "-O max" (max p0w3r ftw!).


Whooa!!!! You made a new emitter?!!!!
-O max > -O 3?

Last time I used GCC it was -O3
v1ctor
Site Admin
Posts: 3799
Joined: May 27, 2005 8:08
Location: SP / Bra[s]il
Contact:

Postby v1ctor » Jan 20, 2010 3:54

Yeah, for now it is just passing -O3, but other optimization flags could be used later.

Your Julia Rings: Gcc version with -O3, Gcc version for pentium4 + sse, Gas version.
Landeel
Posts: 703
Joined: Jan 25, 2007 10:32
Location: Brazil
Contact:

Postby Landeel » Jan 21, 2010 2:29

Wow, GCC+SSE version is 3 times faster than GAS version in my system.
I will love to see how multiput will perform on this. :)

Return to “Community Discussion”

Who is online

Users browsing this forum: No registered users and 1 guest