Visual Basic 6 IDE recreated in C#

(github.com)

Comments

Jtsummers 14 November 2024
https://news.ycombinator.com/item?id=42105869 - from 3 days ago, 224 comments
makmanalp 14 November 2024
Oh my GOD I have to comment. This is how I learned to program as a kid.

I found a copy of "Write Your Own Adventure Programs" (1983 - Usborne: https://colorcomputerarchive.com/repo/Documents/Books/Write%...) as a kid in my primary school's bookshelf. I remember the code was written in BASIC and my family didn't really own a computer back then.

Fast forward a few years later I saw this "Visual Basic" thing and thought it would be similar ... it was, but only sort of. I had no book to learn from at first so I remember clicking through every single menu and button available to see what it did. Then I remember using our dialup to download every possible 3rd party VB form control and throwing them in a Form to see what they did. I don't know why I found this entertaining enough to keep doing it.

Eventually by copy pasting and changing stuff I was able to write some basic "homework helper" programs: calculate the area of a circle and stuff like that. Soon after I tried to look up tutorials which taught me basic win32 programming to do things like have an icon in the status area next to the clock, and then hiding my window to run in the background and make annoying sounds so I could build a silly little prank program to install on my friend's computers which was fun but often would fail because they were missing some .dll file which wouldn't fit on the same floppy.

It could be frustrating at times but also I feel so blessed to have lucked myself into learning programming this way and my parents pretty much just letting me do whatever I wanted to this expensive device that probably was not a small thing for us to afford at the time.

Even tutorials felt more fun at the time, it'd be "hypnoMan37's windows registry tutorial!!! HEyyeyeyy Guuyzs :-)))) gzgzgz to my irc channel #blabla on EFNet! so first you call RegistryCreateNewKey32(...." because god knows I did not have an MSDN CD either.

Learning via a code camp feels way more efficient but also so much more dry in comparison. I wonder if there isn't a substantial cost to boring the newbies to death.

rkagerer 14 November 2024
It's an awesomely inspirational vision, but within 2 minutes of trying it out I found it's lacking a lot of little features (at least on the web build)... e.g:

Ampersands in button labels don't create an accelerator (e.g. &Go does not underline the G).

In true VB6 you could plop down a Label control and just start typing to change it's contents. Here you have to focus on the input field first (and you can't just click the "Caption" heading, you have to click within the input column). To maintain fidelity, one of the rows in the Properties grid should always be highlighted when a control is selected on the GUI designer (for Labels this defaulted to Caption, and I believe for controls without a specified default it defaulted to Name).

When switching to a different control with a property matching the name of the currently selected one, VB6 would maintain the selection on that property. This made it quick and easy to update for example the Tag property a bunch of controls in sequence with minimal clicks.

Obviously the menus for Debugging, Save, Help, Add-ins, etc. are missing implementation.

A working Build button that spits out an "exectuable" that runs in the browser would be killer!

My nitpicks are born out of love ;-).

wiseowise 14 November 2024
Still don't understand how we went from this to modern GUI toolkits.

It looks and works so intuitively.

bluedino 15 November 2024
Man, that 1995-2001 era Windows UI was like, peak Windows.

It was so crisp and clean. Visual C++ and Visual Basic of the time were far from perfect, but they let you just get things done(tm)

XP was right around the corner and it's been downhill from there.

abrookewood 15 November 2024
Slightly off topic, but this was built using Avalonia, which I have never heard of. Has anyone used it? The promise sounds impressive (beautiful, cross-platform applications from a single .NET codebase), just wondering whether it actually delivers?

https://avaloniaui.net/

Stratoscope 15 November 2024
So nice to see this!

I was one of the original developers of the "visual" side of Visual Basic.

It was called Ruby at the time (no relation to the programming language) and was going to be a customizable shell for Windows 3.0. The idea was that individual Windows users would create their own personal desktop using our visual editor and "gizmos" (later called by the much more boring name "controls") to make their own personal environment.

Microsoft, probably wisely, realized that this was more suited as a developer tool rather than an end user tool. They combined Ruby with Basic to create Visual Basic.

If anyone here ever created VBX custom controls, you can blame me for that terrible API!

And if anyone wonders where the phrase "fire an event" came from, you can find the answer in Retool's article about VB:

https://retool.com/visual-basic

(Content warning: drug reference)

As they say, "AMA".

If I may indulge in a bit of shameless self-promotion, I am looking for work. My team at IBM was hit pretty hard in their recent round of layoffs, as we lost our one exclusive customer, McDonald's.

I know a lot about a lot of languages and frameworks, but I don't know everything. Does anyone?

I love working with customers to understand their needs. Like every programmer, I enjoy coding, but it is just a way to make my customers happy.

If anyone is curious, you can find me here:

http://linkedin.geary.com/

http://resume.geary.com/

0xmarcin 15 November 2024
When you dig into the code you can see that the author did the bare minimum to have a nice demo. For example only 2 functions are supported: MsgBox and InputBox: https://github.com/BAndysc/AvaloniaVisualBasic6/blob/383a005...

Still it is impressive to create something complex like this in a matter of 4 days (looking at the commit history). And it is a good start to develop a full fledged IDE.

The more advanced features like syntax highlighting & autocomplete unfortunately are missing. I did not run it (I am on macOS) but I also expect there is no debugger.

Now I also want to share my childhood story: I started my dev journey first by using Turbo Pascal and then by switching to Delphi 7. Delphi was pretty much like VB6, you designed an app by dragging and dropping components on a form. My first app that I have created was a Notepad++ clone, I still keep the code for it but it is so awful that I cringe every time I try to look at it.

jftuga 14 November 2024
Open the web version in your browser:

https://bandysc.github.io/AvaloniaVisualBasic6/

wolpoli 14 November 2024
How I missed the frame component in modern day applications. They all seem to think that a bold heading and some extra whitespace at the end is sufficient to group things together.
flog 14 November 2024
As a kid I spent summers working in the schools IT department in order to save up to buy VB6 (with a staff discount). This was not cheap back in the day!
waldrews 15 November 2024
The Property Grid control was the greatest general purpose UI ever created. Using it (in the .Net, Windows Forms incarnation) for custom types in non-VS application was a tremendous productivity shortcut for LOB apps. Put attributes on your user exposed objects, done.

To this day, we don't have anything equivalent for web or mobile. Dynamic form generation from JSON schema gets part of the way there, but not quite.

kristianp 15 November 2024
I appreciate the amount of work that might have gone into this, but a small annoyance:

> Antlr4BuildTasks library couldn't automatically download Java.

It would be nice if more effort was put into avoiding large dependencies, like a java runtime for a .net product. Edit: It's not just the size of the dependency, it's the complexity this adds to the deployment and development.

sn0n 15 November 2024
Anyone else use rapidq (https://rapidq.phatcode.net/) or what it became, realbasic (now xojo)?

Another fun one was gambus ( Linux, https://gambas.sourceforge.net/ ).

DidYaWipe 15 November 2024
I worked for a company that was prototyping a ground-up rewrite of their flagship product in VB, while a team of Visual C++ programmers was building the "real" version. It was basically an industry-specific CRUD application.

I probably don't even need to finish this story, because you know what happened: We knocked out a fully functional application in VB while the C++ programmers struggled to replicate it with a less-rich environment. Back then VC++ lacked numerous controls that were available in VB.

The app connected to the database with ODBC and it was easy. Management saw that and said WTF are we building this other thing for, and asked the C++ to join the VB effort and finish the product. They turned their noses up at it, and were all summarily fired. I was put in charge of design and continued working with a team of contractors to finish the app.

I was pretty young and learned a couple of obvious lessons there.

And oh yeah, I actually started my professional programming career writing complicated macros in Word. If I ever meet the guy who approved WordBasic, I will buy him a drink. A word processor with a freaking GUI builder in it! I wrote a macro that could parse and rewrite thousands of SQL modules when a bunch of table structures changed.

I lived in Word. What a great product it was, and what a sorry state it's in now.

pjmlp 15 November 2024
VB 6, back when doing COM was still easy, then the macho team took over, and COM development experience has been a mess ever since, even though it is the main API surface since Windows Vista.
jakebasile 15 November 2024
Warms my heart to see this. VB6 was how I first made serious forays into making software. Really cool recreation to boot.
wkirby 15 November 2024
That screenshot takes me waaaay back. Wrote my very first code in that IDE sitting in my dad’s living room, copying examples from a letter my mom’s cousin sent us in the mail. Made a choose your own adventure game about a squirrel climbing a tree. Just if statement after if statement after if statement…
peutetre 15 November 2024
The thing I like about WebAssembly is that it brings all languages to web.

Writing Visual Basic on the web in a C# application compiled to WebAssembly is Inception levels of great.

todd3834 15 November 2024
Giving me flashbacks to the AOL punters and proggies scene. <3
teo_zero 15 November 2024
Contrary to the original one, this editor doesn't automatically capitalize keywords. It was a sort of syntax highlighting that I haven't seen on contemporary editors and IDEs. Does anybody know of a plugin to do that for common editors?
IYasha 17 November 2024
I wish someone recreated the fast and reliable VS/VC 6.0. It was so blazingly fast and.. just good. I was SO disappointed with slow and bloated MS .NET BS that I ditched VS entirely.
yarone 14 November 2024
I absolutely loved VB3 thru VB6!
rcshubhadeep 15 November 2024
I love this. Have so many memories with vb. When I was going through my graduation back in 2003/4 I took some classes on developing application using vb6. Some of the most fun things I had ever done.
orphea 15 November 2024
If I'm not mistaken, ComboBox is supposed to have a mode in which it allows typing in it, in addition to choosing items from the dropdown.
rcarmo 15 November 2024
I’m going to say this again: this UX but using Lua (or Python) instead would be a killer app.
larodi 14 November 2024
Interestingly it also downloads Java for the antlr grammar support.
rivetsec 14 November 2024
My first programming environment as well. Love it.

I once used multiple iomega zip drives to smuggle a copy of this out from my school so I could make things at home.

moribvndvs 15 November 2024
This is giving me a lot of nostalgia but also a lot of PTSD.
psawaya 14 November 2024
My first programming environment. Pure nostalgia. Love it!!
firebot 15 November 2024
Not really though. ScaleWidth and ScaleHeight and innumerable other properties and functions don't exist. I can't even get a for next loop working to paint the canvas.
CaesarA 15 November 2024
This absolutely amazing.
thr0waway1812 15 November 2024
fdaf
ranger_danger 15 November 2024
How is this legal?