5 ms·
Small Visual Basic
- mackross 4y agoThis is amazing. VB6 and later mIRC were pivotal to my learning as a kid. Well done author on capturing the essence of what made VB6 a great and productive learning tool.
- toyg 4y agoI re-evaluated VB6 with age. We "internet kids" liked to shit all over those dated-looking widgets, but the productivity boost it allowed Grown Up People to write apps to Get Real Shit Done, remains fundamentally unmatched today. 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.
- kjellsbells 4y ago+1. People seem to have forgotten the impact of VB apps. I would go so far as to say VB was world changing. Suddenly everyone could create professional-looking apps in whatever domain their business needed. 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.
- mdaniel 4y agocontrol-f "license" :-( 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?
- pjmlp 4y agoIt is definitely a Microsoft project, originally. "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 https://en.wikipedia.org/wiki/Microsoft_Small_Basic So there are most likely some copyright issues to discuss about.
- actionfromafar 4y agoMIT license, so shouldn't be too much problems.
- jbottoms 4y agoWhy call it "dynamic" if it is compiled?
- to11mtm 4y agoBecause the typing is still dynamic, I'd wager. In .NET you can have `dynamic` objects with arbitrary properties/methods/etc (although you are of course going to run the risk of runtime errors rather than compiler errors.) 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.expandoobject?view=net-7.0#creating-an-instance https://learn.microsoft.com/en-us/dotnet/api/system.dynamic....
- _0xdd 4y agoAnybody got some BAS files so we can hack AOL? /s Clearly my age is showing...
- marpstar 4y agoGood times, though! Got kicked off AOL at age 11 for forwarding a copy of VB4 I got from one of the mail server chat rooms.
- ccbean 4y agoI realize this was in jest but see Re-AOL (prev. discussion: https://news.ycombinator.com/item?id=31630216 https://news.ycombinator.com/item?id=31630216) now renamed to P3OL (discord: https://discord.com/invite/p3ol https://discord.com/invite/p3ol).
- distantsounds 4y agoI'm sure I have a copy of dos32 and genozide around here somewhere...
- _0xdd 4y agoHeh, you would appreciate this... [1] [1] https://github.com/darcfx/darcfx-submissions/blob/master/vb/aol/25-30/modules/genozid/GENOZID.BAS https://github.com/darcfx/darcfx-submissions/blob/master/vb/...
- djbusby 4y agoMy first money for programming was building in VB5/6. And then Alan wrote the Inmates are Running the Asylum which I thought was a good book about building for humans https://www.goodreads.com/book/show/44098.The_Inmates_Are_Running_the_Asylum https://www.goodreads.com/book/show/44098.The_Inmates_Are_Ru...
- jimnotgym 4y agoI really like this. Since all the kids are learning Python, I really wish there was an easy way to use Windorms like this
- 29athrowaway 4y agoGambas (Gambas Almost Means BASic) is where it's at https://en.wikipedia.org/wiki/Gambas https://en.wikipedia.org/wiki/Gambas
- czx4f4bd 4y agoI've only played with it and not done anything too serious, but Gambas is honestly amazing for something that has seemingly little adoption. It's so similar to VB6, but with tons of enhancements that keep it from feeling too antiquated or annoying to work with.
- 29athrowaway 4y agoDevelopment on VB.NET was never as fast as it was on VB6.
- pjmlp 4y agoOnly for those that never bothered with the later improvements to bring back Me and related features. 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.
- vouaobrasil 4y agoNice project. Visual basic like this is so useful for beginners because almost everyone who likes programming wants to create a GUI for their program, but window toolkits are a pain to use and not very intuitive. That is also why I like HTML and plain javascript. It's much easier to design an interface in HTML than write code for one in GTK for example.
- ben_w 4y agoI have a similar (negative) feeling about SwiftUI, but I'm worried that might just be me getting old.
- hakfoo 4y agoI figure this is sort of a "hedonistic traadmill" for software. 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"
- katzgrau 4y agoVery true. As a teen, before I could program, I would dream up applications that I thought were cool (like an alarm clock application that plays a .wav or .mp3 for the sound!!1) and yep, it involved a gui. 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.
- deleted 4y ago[deleted]
- orionblastar 4y agoI made my money in classic VB and VBA programming. Also VBSCRIPT with Active Server Pages. Nice to see Small Visual BASIC
- decremental 4y agoI started programming in like 1997 with VB5.5(?) before upgrading to VB6. I don't know if it was just because I was young and excited about programming, or the experience of working with the VB IDE, but that was my favorite time as a programmer. Always coming up with new little projects. I had a folder with something like 40 unfinished projects, half filled with stuff from Planet Source Code.
- OkGoDoIt 4y agoI too had the exact same experience on the same versions. And I wonder quite often if programming used to be more fun simply because I was younger and more open-minded, or if it really has gotten worse due to modern tooling and languages. I don’t enjoy it anymore.
- anfractuosity 4y agoThere used to be a cool program called RapidQ that had a GUI designer and syntax similar to VB. I think you could even create 3D graphics with it, if I recall correctly.
- albertzeyer 4y agoSo what IDE, or development setup, what language with what framework would you give into the hands of a child, to let it play around? Even what OS? All computers in our appartement are Linux or MacOS. 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?
- Moru 4y agoWe had great fun with https://www.glbasic.com https://www.glbasic.com in our family. Simple basic for game creation mainly but I did use it for processing data at work for a while :-)
- analog31 4y agoDepends on the kid and their interest, but I wouldn't overlook either CircuitPython or Arduino. There's a certain instant gratification from making a program that causes something physical to happen. And it doesn't come with the expectation of being able to make something slick and professional right away.
- chinabot 4y agoDelphi was a little higher learning curve but not much and worth it for the fast dependency free exe at the end, I think nothing can beat the ease of Basic for beginners
- herghost 4y agoI used to do a lot of work in VB6 back in the day (I'm no longer coding/developing) but it was nice to read about the "joy and excitement" of VB6. That really resonated with me. 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.
- sytelus 4y agoIs there any BASIC versions that integrates with VSCode?
- sigzero 4y agoXojo uses a "modern" BASIC langauge, is visual like VB was/is, and works on macOS, Windows, and Linux. If you want to stick with a BASIC variant that is.
- keithnz 4y agoMy eldest son when he was at school used Small Basic, which was actually a really good environment for learning, but for some silly reason (badly justified in my opinion) they didn't provide functions (you could do the equivalent of a gosub, so you had to use global variables). This made so many things much harder for kids! Glad to see this allows functions!
- anigbrowl 4y agoExcellent project, I hope it takes off. 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.
- askvictor 4y agoAnvil (http://anvil.works http://anvil.works) does this, albeit as a web-app, but entirely python.
- anigbrowl 4y agoThis is certainly an intriguing option, even though it's for webdev rather than native/desktop apps.
- brunovcosta 4y agoWe're building that! https://www.abstracloud.com/ https://www.abstracloud.com/ 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
- kant2002 4y agoNot sure if this is project related, but I discover port (https://github.com/ptrelford/FunSharp https://github.com/ptrelford/FunSharp) of Small Basic style on F# and that look awesome for displaying simple concepts. I think all programming languages can have simple setups which would be easy for kids. 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%D0%BE%D0%B2%D0%BD%D0%B0-%D1%84%D1%88%D0%B0%D1%80%D0%BF https://github.com/kant2002/FunSharp/tree/%D0%B3%D0%BE%D0%BB...