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.
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!
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?
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:
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.
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.
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.
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!
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.
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.
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.
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.
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…
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?
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.
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.
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.
Visual Basic 6 IDE recreated in C#
(github.com)377 points by porterde 14 November 2024 | 176 comments
Comments
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.
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 ;-).
It looks and works so intuitively.
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.
https://avaloniaui.net/
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/
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.
https://bandysc.github.io/AvaloniaVisualBasic6/
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.
> 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.
Another fun one was gambus ( Linux, https://gambas.sourceforge.net/ ).
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.
Writing Visual Basic on the web in a C# application compiled to WebAssembly is Inception levels of great.
I once used multiple iomega zip drives to smuggle a copy of this out from my school so I could make things at home.