I remember as a teenager programming for years in QBASIC – a free, lite version of QuickBasicMicrosoft bundled with DOS and early versions of Windows. It was great fun – but I yearned to get my hands on the full QuickBasic so I could compile my applications and give them to others without giving away all my source code (okay, OSS was barely known back then).
Later I would save for months to purchase Visual Basic 5. $100+ is a lot of money for a teenager – but I wanted to program so bad that I scraped and saved.
After that there was the ASP.NET Web Matrix – a predecessor to the great tools Microsoft now offers for free. Unfortunately, its development was abandoned and for a long period of time I was left in a painful lurch….but then Microsoft started the trend that has made me extremely happy – free lite development tools.
These development tools include Visual Basic 2008 (for desktop applications), Visual C# 2008 (also for desktop applications, but in C#), Visual C++ (just like the last two), and Visual Web Developer (for web applications) – all in the Express line. Additionally they’ve thrown out there SQL Server Express (database back-end) and SQL Server Studio Management Studio Express (for writing SQL and managing databases).
While these applications are noted as “express” that doesn’t suggest that they are majorly crippled – rather they are extremely full functioning applications which can be used to create many impressive applications. For the new, hobbyist, or small business developer many times the Express Editions will be all that you ever need.
This was a smart move on Microsoft’s part – it gets people hooked on Microsoft development young – and it works great for us as well – because we get free development tools. By the time Microsoft expects us to shell out cash – well, we are probably making some from our now decent development skills. Go grab yourself some free development applications: https://www.visualstudio.com/vs/visual-studio-express/.
My first experiences programming where on a Commodore 64 and an Apple II+. In both cases there was no separation of the end user interface and the development interface…you could just start entering code at the command line and it would begin building. Things have come a long ways since then – this is good and bad. It is no longer quite as easy or essential to get involved in programming, on the other hand one can much more rapidly build complex applications.
If you ever long for the throw back days you may think of QBasic, which became ubiquitous due to its inclusion with Microsoft DOS…but all these concepts are so from yesteryear – in computer terms they are almost millennia away.
So what if you want to do some simple programming these days with a BASIC feel to it? One good option is FreeBasic. FreeBasic was built to be largely backwards compatible with Microsoft’s QBasic and thus can run many old QBasic programs with only minimal modifications, but FreeBasic has also gone far beyond this and delivers a fairly powerful development environment.
If you do decide to use FreeBasic I recommend downloading a free copy of FbEdit as well. See development usually consists of at least two components – the compiler and the editor. A compiler is the program that takes your code and turns it into an executable program while an editor is what you write the code in. Granted, you can write your code in any plain text editor – but trust me, FbEdit will be a big help.
The FreeBasic forums have a very friendly and active community that will help you along through the learning process. Just take some time to explore the entire site and community, it is pretty impressive.
All this said, FreeBasic isn’t the language I primarily use for development – or the language I would recommend. In general, I’m a Microsoft .NET guy – mainly ASP.NET and VB.NET. Microsoft offers free copies of the lite versions of these applications as well, and while I say kudos to the FreeBasic team and hope they keep up the great work, if you are looking for a job in technology, you might be better off starting with a Microsoft .NET technology. Actually, probably C#.NET instead of VB.NET as I do (old habits die hard).