Today's project is the past, powered by the future and is all open source.
This past week, Basic turned 50. I can go into how my first program was written on a TRS-80, stored on a cassette tape and was a Dungeons and Dragons utility, but I'm sure you all don't need to hear me reminisce... :)
Anyway, last week the VB Team (which is really the Managed Languages team, but you get the idea) released this cool project, a homage to QuickBasic, updated to Visual Basic syntax. The coolest things are how this shows off the the power that is Roslyn (cough... I mean the .Net Compiler Platform... ) and is itself, open source.
The Visual Basic team joins Dartmouth and developers worldwide whose lives have been touched by this amazing language in wishing Dartmouth BASIC (and indeed the whole BASIC family of languages) a very happy 50th birthday (and many more) today!
So many of us here on the Managed Languages team got our start with one dialect of BASIC or another we couldn’t help but put together something to show our nostalgia and affection for our roots. In homage to grandpa BASIC’s 50th we give you: QuickVB.
QuickVB is powered by the .NET Compiler Platform ("Roslyn") NuGet packages that were previewed at BUILD this year. To get started, download the source from CodePlex into a solution folder and then build and run it from Visual Studio 2013. You don’t need any Roslyn Previews installed, as NuGet package restore should pull down the required packages upon build.
When you start QuickVB, you’ll see an environment that looks quite a bit like QuickBasic:
Welcome to the QuickVB project page! On the 50th anniversary of BASIC, we released a fun sample we'd written on the Visual Basic team - it looks like QuickBasic, but it's a .NET console app that lets you write modern Visual Basic code. QuickVB shows off APIs from the .NET Compiler Platform ("Roslyn"), where we've been reimplementing the Visual Basic compiler in Visual Basic itself.
Since the post, we've seen such a great reaction that we've decided to develop QuickVB further as an open-source project!
There's a lot of work left to be done to turn this sample into an environment where you can really spend some quality time! Some key features that are left:
- Opening/saving of arbitrary files and projects - pretty important for an editor :)
- Support for navigating around large projects and adding/removing code files
- General perf improvements when working on multi-file programs like the QuickVB solution itself
- QuickBasic compatibility library, to ease porting of classic programs like GORILLA.BAS
Trying QuickVBThe easiest way to get started is to download the source code from the Source Code tab and then build and run it from Visual Studio 2013. You don’t need any Roslyn Previews installed, as NuGet package restore should pull down the required packages upon build.
All of the features below are powered by the .NET Compiler Platform ("Roslyn") APIs. To see them light up, click Enable Roslyn on the Options menu.
- Semantic code colorization (powered by Roslyn's Classification API):
- Completion lists (powered by Roslyn's Recommendations API):
- Compiler diagnostics (powered by Roslyn's Diagnostics API):
The project downloaded and ran for me the first time, with no problems. I used Visual Studio Team Explorer to Clone the project, F5 and I was QuickVB'ing
Of course I had to play the Goto game as my first run. I mean, come on!
Remember QuickVB is free and open source and the complier behind it is open source and is itself written in Visual Basic [insert "Oh the recursion" quip here]
Go forth and Goto QuickVB my friends...