Nice job - definitely consider implementing at least a little bit of the Win32 API layer! For kicks I tried importing an old highschool VB6 map editor at it which uses BitBlt but sadly it didn't work.
- Xojo is a commercial tool which I believe does that (but with a price and license to match)
- MoonBasic seems like a promising start
- Gambas for folks using Linux?
- For folks using the very affordable PureBasic there is the matching (also commercial, just about as affordable) SpiderBasic
Naturally if one extends the search to other languages there are lots of options, but Lazarus with a .js Object Pascal compiler seems worth mentioning. For my part, I was swayed when flet.dev announced their v1.0 and so went the Python route....
Best part of VB5 was that when you hit F1, you instantly got help for whatever was under the cursor. VB6 changed it to use some much slower MSDN help system instead.
The speed with which this thing launches in a browser should put shame on the faces of current IDE developers. While VB itself was nothing to write home about there certainly was something lost when hardware became more powerful. Imagine what current and 'recent' hardware were capable of if only efficiency was taken seriously again. Maybe generative AI can provide a boost where human developers would rather spend their time on chasing the latest fads, adding yet another feature or inversely removing even more functionality in an attempt to create the 'perfect' sparse application? Let the humans think up the features and write the initial implementation, then loosen the bots on the code to make it run as efficiently as possible on hardware which used to be current a few generations back.
The power relationship between the computer and the human has shifted since then. We want our computers to run slower so we don’t feel quite so inferior.
Are you sure? A UI based on instant gratification? Seeing everything simply blink into place instantly might not be as fun as you think after the newness wears out.
Anyway, if you really want to, you can emulate old OSs with a very fast modern computer. Some emulators even bridge the network and file system to support enough that you can really live in it.
I would love if everything on a computer were instant. One of the fastest programs I use is Sublime Merge for a Git UI. It opens and does everything so fast, and I love it. Since the first time I opened it, I haven't even opened the previous Git GUI I was using, even though I like both their UIs about the same. I had to buy Sublime Merge, compared to the free app I was using before it.
It's not just me who prefers everything as fast as possible, but true of people in general. Google measured that slowing down loading a search page by only 400ms caused people to do fewer searches. And the biggest reason I heard people say they switched to Chrome was that it was faster than other browsers (which was true for the first couple years after release).
> Are you sure? A UI based on instant gratification? Seeing everything simply blink into place instantly might not be as fun as you think after the newness wears out.
My memory may fail me, but I'm pretty sure ASP used VBScript, not regular VB. Similar syntax but not the same runtime/environment. ASP could use any Active Scripting language (the other language shipped with Windows being JScript, MS's impl of a subset of JS)
Here's something that will bake your noodle. Sage 100, the accounting/ERP software, is still to my knowledge written in Business BASIC from the 1970s—specifically the variant that ran on MAI Basic Four minicomputers (just 64 KiB of RAM!). This variant of BASIC was so, as Claude says, load-bearing that several companies emerged to support source-compatible versions on a variety of platforms as the non-mainframe business world evolved from custom-schmustom minicomputers to Unix workstations and PCs. The most common variants today are BASIS International's BBx and BBj (Java), and ProvideX. Sage 100, originally MAS 90 and MAS 200, was an accounting solution originally developed for those 1970s minicomputers and then forward-ported to new platforms as the business landscape evolved.
Yes, if you look at the developer's Twitter account they've shared a large number of projects in the past week, including in-browser recreations of Windows Vista, XP, 2000, ME, 98, 95, 3.1, Mac OS 9, Word, Excel, OneNote, Access, Visio, Adobe Illustrator, Adobe Reader, a Git Client, a CAD program, a video editor, etc. https://x.com/wieslawsoltes
Looking through his work it seems that he has build a whole .net browser based ecosystem [1]. Pretty impressive its own right. However, for his showcase projects I was wondering how he'd prompt to guide these recreations, i.e. what is used as the input, I can't image that he'd describe every tiny detail...
I was wondering how he'd prompt to guide these recreations, i.e. what is used as the input, I can't image that he'd describe every tiny detail...
I thought the same way when I saw some impressive AI-generated videos not long ago, and I suspect the author prompted AI to get a basic idea, and then possibly after many iterations, finished it up with manual editing.
IIRC even QuickBASIC 4.5 had a form of "IntelliSense" in the form of hints as to the defined data structure, if provided in DECLARE statements. F1 hints are mentioned elsewhere for built-ins but I seem to recall it (or a similar quick action) also working for a smart of "what kind of data are you allowed to pass to this user defined subroutine or function".
TYPE PERSON
AGE AS INTEGER
FIRSTNAME AS STRING * 12
END TYPE
DIM KURTZ AS PERSON
PRINT KURTZ._
You could do something like this, but it wouldn’t provide any kind of code completion or autocomplete to show the AGE/FIRSTNAME fields where the underscore represents the text cursor.
As far as subroutines/functions go, if you tried to pass data into a subroutine where the data couldn’t be coerced, it would just give you a type mismatch.
DIM Y AS SINGLE
Y = 10.5
PRINTIT Y ' Throws parameter type mismatch
PRINTIT (Y) ' Succeeds because self-evaluated expression is effectively by val
SUB PRINTIT (X%)
PRINT X%
END SUB
But again I wouldn’t consider that to be intellisense of any kind; that’s just error handling.
I've spent the last 6 months building a similar 1:1 faithful recreation of QBASIC and QuickBasic 4.5 that runs natively in the browser [1] - so I know way more about this than anyone should by right.
OK, so I followed through to the author's GitHub page and the project's repository and...
no CLAUDE.md, no AGENTS.md, no SKILL.md, no .claude or .agents directories either.
Dare we dream? A project this ambitious, done without AI help? I'm getting that feeling like when I see a piece of really well done art come across my feed—and it was done entirely by a human!
Wow, this feels almost like the real thing.
Is there something similar for the web now? Easy UI editor but a fully featured language behind with direct database access.
These kinds of browser recreations of old native apps always fails at text rendering.
What's wrong with it? Sure it's way more higher quality but the layout seems... fine?
LLMs lack taste
Slick! Thanks for bringing back some memories of how i got into programming; by automating math-homework in visual basic.
Damn... brings back memories...
Nice job - definitely consider implementing at least a little bit of the Win32 API layer! For kicks I tried importing an old highschool VB6 map editor at it which uses BitBlt but sadly it didn't work.
Debugging and IntelliSense don't work, and the deliverable isn't a .exe but an .html (though it works). Wondering if it can access ODBC lol.
Oooh beautiful! Visual Foxpro was the same, only the language changed but their screen designers were almost identical
Awesome! If only we could publish the programs as a PWA :)
Thoughts on tools capable of that?
- Xojo is a commercial tool which I believe does that (but with a price and license to match)
- MoonBasic seems like a promising start
- Gambas for folks using Linux?
- For folks using the very affordable PureBasic there is the matching (also commercial, just about as affordable) SpiderBasic
Naturally if one extends the search to other languages there are lots of options, but Lazarus with a .js Object Pascal compiler seems worth mentioning. For my part, I was swayed when flet.dev announced their v1.0 and so went the Python route....
This would be awesome
Best part of VB5 was that when you hit F1, you instantly got help for whatever was under the cursor. VB6 changed it to use some much slower MSDN help system instead.
This was also the best part of QBASIC.
It was just wonderful. I owe so much to that thoughtful feature as a child.
I wish I could meet the person who decided that. You’ve changed my life.
This takes me back! Right clicking works too, this is awesome. I miss property tables, that was a nice UX. Flash had it too.
The speed with which this thing launches in a browser should put shame on the faces of current IDE developers. While VB itself was nothing to write home about there certainly was something lost when hardware became more powerful. Imagine what current and 'recent' hardware were capable of if only efficiency was taken seriously again. Maybe generative AI can provide a boost where human developers would rather spend their time on chasing the latest fads, adding yet another feature or inversely removing even more functionality in an attempt to create the 'perfect' sparse application? Let the humans think up the features and write the initial implementation, then loosen the bots on the code to make it run as efficiently as possible on hardware which used to be current a few generations back.
The power relationship between the computer and the human has shifted since then. We want our computers to run slower so we don’t feel quite so inferior.
I don't. It's a machine, it should be fast and efficient.
Are you sure? A UI based on instant gratification? Seeing everything simply blink into place instantly might not be as fun as you think after the newness wears out.
Anyway, if you really want to, you can emulate old OSs with a very fast modern computer. Some emulators even bridge the network and file system to support enough that you can really live in it.
I would love if everything on a computer were instant. One of the fastest programs I use is Sublime Merge for a Git UI. It opens and does everything so fast, and I love it. Since the first time I opened it, I haven't even opened the previous Git GUI I was using, even though I like both their UIs about the same. I had to buy Sublime Merge, compared to the free app I was using before it.
It's not just me who prefers everything as fast as possible, but true of people in general. Google measured that slowing down loading a search page by only 400ms caused people to do fewer searches. And the biggest reason I heard people say they switched to Chrome was that it was faster than other browsers (which was true for the first couple years after release).
> Are you sure? A UI based on instant gratification? Seeing everything simply blink into place instantly might not be as fun as you think after the newness wears out.
laughs in Amiga
I guess you don't have the same opinion with your vehicle.
My first <del>love</del>IDE…
easy way to trigger an Epic developer
Wait Epic as in the medical software is written in VB6‽
The GUI parts are or were.
And parts of their patient portal website were still VB6 on the backend a decade ago, not sure that's true anymore. Visual Basic 6 as a web backend.
VB was the backend language for the vast majority of original Active Server Pages sites.
My memory may fail me, but I'm pretty sure ASP used VBScript, not regular VB. Similar syntax but not the same runtime/environment. ASP could use any Active Scripting language (the other language shipped with Windows being JScript, MS's impl of a subset of JS)
Here's something that will bake your noodle. Sage 100, the accounting/ERP software, is still to my knowledge written in Business BASIC from the 1970s—specifically the variant that ran on MAI Basic Four minicomputers (just 64 KiB of RAM!). This variant of BASIC was so, as Claude says, load-bearing that several companies emerged to support source-compatible versions on a variety of platforms as the non-mainframe business world evolved from custom-schmustom minicomputers to Unix workstations and PCs. The most common variants today are BASIS International's BBx and BBj (Java), and ProvideX. Sage 100, originally MAS 90 and MAS 200, was an accounting solution originally developed for those 1970s minicomputers and then forward-ported to new platforms as the business landscape evolved.
Wow, that's great. It brings back so many memories
How does it compare with
https://news.ycombinator.com/item?id=42105869
This one supports opening existing projects
Was this done with an LLM? Repo?
Their github account lists over 5,000 commits and 1,500 pull requests... just in the last 4 days.
Yes, if you look at the developer's Twitter account they've shared a large number of projects in the past week, including in-browser recreations of Windows Vista, XP, 2000, ME, 98, 95, 3.1, Mac OS 9, Word, Excel, OneNote, Access, Visio, Adobe Illustrator, Adobe Reader, a Git Client, a CAD program, a video editor, etc. https://x.com/wieslawsoltes
Looking through his work it seems that he has build a whole .net browser based ecosystem [1]. Pretty impressive its own right. However, for his showcase projects I was wondering how he'd prompt to guide these recreations, i.e. what is used as the input, I can't image that he'd describe every tiny detail...
[1] https://wieslawsoltes.github.io/Home/ecosystem/
I was wondering how he'd prompt to guide these recreations, i.e. what is used as the input, I can't image that he'd describe every tiny detail...
I thought the same way when I saw some impressive AI-generated videos not long ago, and I suspect the author prompted AI to get a basic idea, and then possibly after many iterations, finished it up with manual editing.
Author of this one shared the exact process https://x.com/anabology/status/2106473469441384788
https://drive.google.com/drive/folders/1aIbRs2f6sVpCxO4TGoBf... (direction-log.md shows all the human provided input). It is far less than you'd think.
This is amazing
talk about a blast from the past!
Intellisense?
Was that there?
What do you mean?
Does the site have intellisense? Yes
Did VB6 have intellisense? Also yes
IIRC even QuickBASIC 4.5 had a form of "IntelliSense" in the form of hints as to the defined data structure, if provided in DECLARE statements. F1 hints are mentioned elsewhere for built-ins but I seem to recall it (or a similar quick action) also working for a smart of "what kind of data are you allowed to pass to this user defined subroutine or function".
So I think you're talking about TYPES.
You could do something like this, but it wouldn’t provide any kind of code completion or autocomplete to show the AGE/FIRSTNAME fields where the underscore represents the text cursor.As far as subroutines/functions go, if you tried to pass data into a subroutine where the data couldn’t be coerced, it would just give you a type mismatch.
But again I wouldn’t consider that to be intellisense of any kind; that’s just error handling.I've spent the last 6 months building a similar 1:1 faithful recreation of QBASIC and QuickBasic 4.5 that runs natively in the browser [1] - so I know way more about this than anyone should by right.
[1] - https://mordenstar.com/share/qbasic-core-demos
OK, so I followed through to the author's GitHub page and the project's repository and...
no CLAUDE.md, no AGENTS.md, no SKILL.md, no .claude or .agents directories either.
Dare we dream? A project this ambitious, done without AI help? I'm getting that feeling like when I see a piece of really well done art come across my feed—and it was done entirely by a human!
Unfortunately I have to point you at some of the other comments here: https://news.ycombinator.com/item?id=49958929
> no CLAUDE.md, no AGENTS.md, no SKILL.md, no .claude or .agents directories either.
Untracked.
Wow. very nice, it even runs the app