Rendered at 20:17:43 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
hnlmorg 10 hours ago [-]
> Even Visual Basic, a real platform that evolved over many years and gained “serious language features”, has fallen out of fashion
VB didn't fall out of fashion. Microsoft unceremoniously killed it and replaced it with VB.NET - a language nobody asked for. VB.NET has the verbosity of C# but with none of the benefits.
These days there's little incentive to learn VB because it's been dead for quarter of a century. And there's little point reviving it because anyone who wants a GUI will likely be working with web frameworks.
I did like VB, a lot. It was such a shame to see the abomination MS released with VB.NET. And that makes me all the more grateful that most languages these days are open. For example Perl 6 (now Raku) ended up taking a journey that fragmented the ecosystem, so dedicated and passionate Perl developers took on the mantel to continue the life of Perl 5
asimeqi 7 hours ago [-]
VB the ide was really good but VB the language was not. In particular it didn't support object orientation in any sensible way. While I am not crazy about object orientation in general, I think it is indispensable for UI development. I tried writing an application in Visual Basic. It was quick to start but the 5th time I had to copy the same code in yet another module, I switched to Visual C++. And anytime you needed to do something advanced with Win32, you had to resort to unnatural C like techniques in VB, while the same operation was native in Visual C++. This was 25 years ago and it was the last time I tried VB.
hnlmorg 7 hours ago [-]
You can’t really separate the IDE from the language because so much of final binary could only be expressed from the IDE. This was something VB.NET fixed but was also why VB.NET was (in my opinion) a failure. Having that complexity shifted to code (like VB.NET did) undermined the simplicity and speed of the language for prototyping.
Also VB supported OOP. It’s just classes were stored in separate files. You didn’t have a singular file for all language constructs like you do in any normal “grown up” language. Classes went in a different file with a different extension to UI events.
As for Win32 APIs in VB, I thought those worked really well. In fact the C interop in VB was far better than in many modern languages of today.
I won’t deny VB was an oddball language with some rough edges and quirks though. But I also think it was those oddball designs that made it amazing good at GUI development and prototyping. In fact still I don’t think there has been a better language for that since.
pjmlp 6 hours ago [-]
COM OOP is good enough, by VB 6 it was already there.
Also COM OOP is exactly what UWP and WinUI are all about.
WinRT started as the reboot, what if .NET was actually what it was originally planned for, and not a Java clone based on J++.
I would be very glad of a VB style IDE which would make stand-alone HTML5 (or some more up-to-date equivalent)web apps
mysterydip 8 hours ago [-]
Not exactly what you’re asking for, but the closest I’ve found (asking the same question) so far: https://www.spiderbasic.com/
giancarlostoro 8 hours ago [-]
Xojo might be what you want. Used to be REALBasic. They have long since reworked the compiler and it runs everywhere including Raspberry Pi and web.
WillAdams 6 hours ago [-]
I actually had a very early book on RealBASIC (back in the Windows 3.0 days) and have always regretted not following up w/ it (went w/ HyperCard, then Runtime Revolution/LiveCode).
ferguess_k 7 hours ago [-]
May I say that the architecture is like this --
The VM is completely independent from the frontend. It also provides primitive functions interacting with the system, e.g. printing to console and drawing lines/circles, etc to different devices. It also implements an abstract VFS, which seems to be of a different concept comparing with the VFS in the kernel, because it is in user land. It is the frontend to tokenize and parse the language and call upon the VM to do something useful.
I think this is pretty common among compiler designs, except that most compilers don't implement drawing functions or user land file systems, while EndBASIC's does that -- if my assumption is correct. In essence it looks like a user land operating system.
canpan 11 hours ago [-]
I'm In This Photo and I Don't Like It.
Wrote a basic interpreter in C/Wasm last year. Finished it, but in the end never posted it anywhere. While I started my dev journey with Basic as a child, I was quickly reminded why I moved to C as soon as I learned about it. Basic is just not particular useful and has a lot of funny behavior or missing parts for any serious project. I still enjoy C, sometimes ASM, but not basic anymore.
rbanffy 10 hours ago [-]
> Basic is just not particular useful and has a lot of funny behavior or missing parts for any serious project.
I think it is an interesting teaching tool. It has a lot of limitations that place it close to the machine level - all variables being global, no real named functions, and so on. It grounds the expectations about what a computer can and can't do - all the fancy things we do are smoke and mirrors layered on top of a very simple machine.
canpan 10 hours ago [-]
It is true, I did learn Basic (QBasic) first, as elementary school student, and C second. What made it particular good was the F1 help. I think it is still one of the best help systems I ever used. Good intro and F1 while pointing on any function and instant help, easy to understand. Additionally no complicated include and compiling. But at the same time, I think I could also teach simple C or JS to an elementary school student. It is just the help and runtime that is bad. Somehow still today there is no major language system that does all of this well. Curious...
rbanffy 3 hours ago [-]
QBasic is already a couple levels of abstraction above GWBasic and other 8-bit ROM-based BASIC interpreters (BBC excepted).
hnlmorg 9 hours ago [-]
I’ve taught Python to primary school kids (which I think is the same age group as elementary school).
thought_alarm 5 hours ago [-]
I would really love to see something like EndBASIC built around a Lisp-family language.
I've recently been playing around with some of the old Logo implementations from the 80s and I've been really charmed by just how powerful and elegant that language can be once you've wrapped your head around it. It makes BASIC look barbaric by comparison.
giancarlostoro 8 hours ago [-]
Sounds like the real solution here is to make something like the JVM or .NET where you could still have BASIC and a less BASIC language.
But smaller than both.
zem 12 hours ago [-]
super interesting! wonder how hard it would be to make this a target for haxe, which has already solved a lot of the issues around designing a good cross-target language.
jerf 6 hours ago [-]
Context: I grew up with a Commodore 64. So I wasn't around "since the beginning" of BASIC but I've clocked some real time with it.
Looking back on it, I don't think there was anything special about BASIC, from a modern point of view. Historically, yes, very significant language; that's not what I'm saying. What I'm saying is that BASIC's justified reputation for being an "easy" language is very much the product of what the competition was.
On the small side of the computer space, the competition was assembly. Yeah, BASIC is easier than assembly. But that's not really saying much. On the large computer side you have some more competition with C and a handful of other viable languages, but they're all just terrible. You can't get a sense of what 1970s or 1980s C looked like by looking at a modern code base. C style has come a long way. The competition was even worse than it is today. (I'm also talking the "average" code base, not things like the annotated UNIX that does look pretty nice, but is also among the best of the best of the era.) Yeah, BASIC was easier than that, and again, that's not saying much.
It also sacrificed a looooot of capability for that easiness. We've built many languages since then that are easier than C without the massive sacrifice of capability. Some sacrifice, yes, but nowhere near as much. Having more computing resources available has not hurt, that's for sure.
By modern standards it makes a wide variety of terrible and/or baffling decisions. Even in its final form of Visual Basic .Net it was not a great language; if you target the earlier iterations which is where it earned its reputation it has even more baffling decisions. For instance, the memory model the language was built around was basically completely static allocation of everything. It's better to start with a good design then to start with a language that was built around that, then fixed up later.
Based on the author's description of the situation, the easiest and most natural choice is to stick Lua on it. It's a modern language, the AIs know it, there's abundant documentation for it every which way, it's already a de facto standard in the gaming space so the users can be learning skills they can take elsewhere in the space later. If anything the biggest disadvantage is the amount of documentation a user can find that is Lua, but bound to some completely different environment that might confuse the newbie, or written by some other novice giving terrible advice.
But my real point here is that I would tend to discourage starting with BASIC, and having kind of already started, I'd advise dropping it ASAP. It's not a very good building point in 2026 and there are a lot of good ones to choose from.
cestith 5 hours ago [-]
This would be great (and wildly cool) as a backend with pluggable language frontends. EndBASIC. EndObjectivePascal. EndLisp. EndOCAML. EndForth. EndMicroPython.
jmmv 2 hours ago [-]
Huh, that's an angle I hadn't thought about. It'd be cool indeed!
VB didn't fall out of fashion. Microsoft unceremoniously killed it and replaced it with VB.NET - a language nobody asked for. VB.NET has the verbosity of C# but with none of the benefits.
These days there's little incentive to learn VB because it's been dead for quarter of a century. And there's little point reviving it because anyone who wants a GUI will likely be working with web frameworks.
I did like VB, a lot. It was such a shame to see the abomination MS released with VB.NET. And that makes me all the more grateful that most languages these days are open. For example Perl 6 (now Raku) ended up taking a journey that fragmented the ecosystem, so dedicated and passionate Perl developers took on the mantel to continue the life of Perl 5
Also VB supported OOP. It’s just classes were stored in separate files. You didn’t have a singular file for all language constructs like you do in any normal “grown up” language. Classes went in a different file with a different extension to UI events.
As for Win32 APIs in VB, I thought those worked really well. In fact the C interop in VB was far better than in many modern languages of today.
I won’t deny VB was an oddball language with some rough edges and quirks though. But I also think it was those oddball designs that made it amazing good at GUI development and prototyping. In fact still I don’t think there has been a better language for that since.
Also COM OOP is exactly what UWP and WinUI are all about.
WinRT started as the reboot, what if .NET was actually what it was originally planned for, and not a Java clone based on J++.
https://arstechnica.com/features/2012/10/windows-8-and-winrt...
However Microsoft completly botched the delivery.
The VM is completely independent from the frontend. It also provides primitive functions interacting with the system, e.g. printing to console and drawing lines/circles, etc to different devices. It also implements an abstract VFS, which seems to be of a different concept comparing with the VFS in the kernel, because it is in user land. It is the frontend to tokenize and parse the language and call upon the VM to do something useful.
I think this is pretty common among compiler designs, except that most compilers don't implement drawing functions or user land file systems, while EndBASIC's does that -- if my assumption is correct. In essence it looks like a user land operating system.
Wrote a basic interpreter in C/Wasm last year. Finished it, but in the end never posted it anywhere. While I started my dev journey with Basic as a child, I was quickly reminded why I moved to C as soon as I learned about it. Basic is just not particular useful and has a lot of funny behavior or missing parts for any serious project. I still enjoy C, sometimes ASM, but not basic anymore.
I think it is an interesting teaching tool. It has a lot of limitations that place it close to the machine level - all variables being global, no real named functions, and so on. It grounds the expectations about what a computer can and can't do - all the fancy things we do are smoke and mirrors layered on top of a very simple machine.
I've recently been playing around with some of the old Logo implementations from the 80s and I've been really charmed by just how powerful and elegant that language can be once you've wrapped your head around it. It makes BASIC look barbaric by comparison.
But smaller than both.
Looking back on it, I don't think there was anything special about BASIC, from a modern point of view. Historically, yes, very significant language; that's not what I'm saying. What I'm saying is that BASIC's justified reputation for being an "easy" language is very much the product of what the competition was.
On the small side of the computer space, the competition was assembly. Yeah, BASIC is easier than assembly. But that's not really saying much. On the large computer side you have some more competition with C and a handful of other viable languages, but they're all just terrible. You can't get a sense of what 1970s or 1980s C looked like by looking at a modern code base. C style has come a long way. The competition was even worse than it is today. (I'm also talking the "average" code base, not things like the annotated UNIX that does look pretty nice, but is also among the best of the best of the era.) Yeah, BASIC was easier than that, and again, that's not saying much.
It also sacrificed a looooot of capability for that easiness. We've built many languages since then that are easier than C without the massive sacrifice of capability. Some sacrifice, yes, but nowhere near as much. Having more computing resources available has not hurt, that's for sure.
By modern standards it makes a wide variety of terrible and/or baffling decisions. Even in its final form of Visual Basic .Net it was not a great language; if you target the earlier iterations which is where it earned its reputation it has even more baffling decisions. For instance, the memory model the language was built around was basically completely static allocation of everything. It's better to start with a good design then to start with a language that was built around that, then fixed up later.
Based on the author's description of the situation, the easiest and most natural choice is to stick Lua on it. It's a modern language, the AIs know it, there's abundant documentation for it every which way, it's already a de facto standard in the gaming space so the users can be learning skills they can take elsewhere in the space later. If anything the biggest disadvantage is the amount of documentation a user can find that is Lua, but bound to some completely different environment that might confuse the newbie, or written by some other novice giving terrible advice.
But my real point here is that I would tend to discourage starting with BASIC, and having kind of already started, I'd advise dropping it ASAP. It's not a very good building point in 2026 and there are a lot of good ones to choose from.