Small Visual Basic
github.com
github.com
I say it often, but there is a big pot of money for someone who makes a nice form designer-Python IDE. Specifying a UI in code is a pain in the ass because you have to mentally model how it will look as well as behave. This isn't ideal to do in a text editor, so it's very common to rough it out with pencil and paper or something and then work from that design.
But dropping widgets from a palette onto a blank form and then moving them around with the mouse until they look about right is easy for most people, and saves them a step of analog drawing and then translating that to code. And a few widgets on a form are often Good Enough to provide an accessible UI.
For backend programmers who get ideas about compiling/collecting data and then organizing it into a neat structure where it can be manipulated in useful ways, front-end frameworks are an irritating overhead that distracts from the main task. I make little command line tools for myself, but my non-technical friends get lost easily on the command line and don't find it a natural environment to work in. If something needs a light GUI I'll usually throw something together in Dash that they can use in a browser, but deep down I kinda hate webapps. I'd like to be able to just give them an app that looks and feels like a native desktop tool even if it has very minimal functionality.
Will such lightweight and easy to use tools lead to a surfeit of poorly-designed applications with sorta sketchy widgets that kinda break OS UI guidelines. Yeah...but it'll also mean a lot more utilities that get used regularly rather than tried once and forgotten about, and get more people into programming that otherwise wouldn't try.
Abstra cloud is a platform for shipping apps using Python without making any HTML
The main abstraction is the "forms" which output "typeform-like apps" from simple code commands
We are launching a "drag n drop" GUI builder soon for dashboards and more complex apps next week
I learned programming basically on my own using QBasic, and then later my dad gave me a simple example app he did at work using Visual Basic 3 (only 20 lines of code or so), and then I got a Visual Basic 3 book, and that's how I learned.
In school, in knew a few other kids learned Delphi instead of VB. I don't know but I assume the learning curve is higher, so many childs maybe would lose interest too soon?
Another friend directly learned C and graphics programming as a child. But he is probably a rare exception.
For Delphi, we have a modern variant as Lazarus.
For VB, I'm not sure. Maybe this sVB, or maybe the mentioned Gambas.
I'm just not sure that the Basic language is really relevant anymore. Object Pascal is maybe slightly better but still very exotic nowadays.
Maybe frameworks like Löve? Not sure about Lua.
Or Python? But what framework? Sth like Pygame? Python maybe is as easy as Basic, but Pygame maybe requires a slightly higher learning curve than Visual Basic? And also, the VB IDE is probably way more beginner friendly than anything for Python?
Or Javascript? Is there a nice beginner friendly framework, to write simple games or so? And again, what IDE?
Show HN: Futurecoder – A free interactive Python course for coding beginners
https://news.ycombinator.com/item?id=34289581
> I'm introducing my 8yo daughter to programming at the moment
At the moment we are following [2], which seems perfect for a child of that age.
[1] https://github.com/QB64Official/qb64 is the repo to follow: after the dramatic split of the dev community happened in 2022, the older one is not used anymore.
https://lunduke.substack.com/p/the-wild-events-that-nearly-t...
It has very polished drag and drop UI editor.
I’ve been developing with it for over 20 years and my 10 year old daughter is now learning programming with it.
You can create and debug apps for free and only need a license to deploy an app as a binary so it’s ideal to learn with.
Heck, it can even build for the raspberry pi.
[1]: https://xojo.com
Its main limit was really the same as Windows: it was fundamentally a single-user application model. It's a shame that Microsoft didn't really manage to make something equivalent for the internet age - mostly because of commercial choices made to support Windows and SqlServer.
The fact that VB apps had all kinds of DLL hell and security issues cant entirely be laid at the feet of the non professional VB devs of the era, but its cast a pall over what was in some sense a golden age of productivity.
I was interested enough to port from Gtk to Avalonia, since that looks much better for Windows and do not degrade anywhere on Linux/Mac OS. Also I run small experiment by try to "internationalize" that library, by porting F# to my language - Ukrainian, just to look if that would be easier to pickup. I think for early education, immidiately after Scratch expressing algorithms in native language maybe beneficia.
In case you are know Ukrainian and interested: https://github.com/kant2002/FunSharp/tree/%D0%B3%D0%BE%D0%BB...
The software most new users work with everyday is going to be GUI and event-driven. If you start with an introductory language (BASIC, Python, whatever) and all you can do is prompt-and-answer, with no native UI conventions, you're not going to feel like you're a first-class citizen-- any wins you have in terms of code structure and algorithm design are always offset by a clunky experience that doesn't feel native. That's going to be a letdown to some new developers.
There's also likely some conceptual language changes: many new developers start because they had an itch to scratch, and if the tooling they see doesn't let them describe what they want, they won't stick around. Today's new devs may well be thinking in terms of a UI.
Another completely from right-field suggestion is TCL/Tk. There was a period (before the era of Python/Tk) when it was the easiest way to get a GUI project up and running on Linux. It occupies an interesting place between "shell automation" and "full scope programming"
My first programming books were for qbasic and basic and I was like, huh, where does the clicking stuff come in?
Then on irc or a forum, someone pointed me to visual basic and I never looked back. Plus, all the hard stuff like media playing and file picking was a built in control that I could use.
Later, in AP comp sci in high school, they were teaching us the swing ui stuff for java, and that was ... painful by comparison. Kids in class has no idea how easy it could be.
What VB.NET really missed out was being as easy as VB 6 to produce native binaries and COM libraries. Which also affected the other .NET offerings anyway.
And nowadays CLR seems to mean C# Language Runtime anyway, so that is a moot point.
[1] https://github.com/darcfx/darcfx-submissions/blob/master/vb/...
Closest I've been since is the simplicity of python, but I always felt it was missing a RAD form maker with good usability considerations.
Since all the kids are learning Python, I really wish there was an easy way to use Windorms like this
Also, it's a tiny bit weird to have `Namespace Microsoft.SmallVisualBasic` since as best I can tell this is not a Microsoft project. Wouldn't `Namespace VBAndCs.SmallVisualBasic` work just as well and be less confusing?
"An enhanced compiler (yet easier for children and beginners) based on Small Basic, with a form designer and a mini Winforms lib. In short, I made small basic visual , so it became Visual small Basic, or in fact Small Visual Basic as it became a tiny dynamic version of VB6!"
=> https://en.wikipedia.org/wiki/Microsoft_Small_Basic
So there are most likely some copyright issues to discuss about.
This is also supported via ExpandoObject, which in most CLR languages has sugar to allow for dynamic declaration of properties/etc. [1]
[1] - https://learn.microsoft.com/en-us/dotnet/api/system.dynamic....