9 ms·
The History and Legacy of Visual Basic
- saidinesh5 2y agoHonestly, while growing up.. There's something really amazing about the intuitiveness of tools like Macromedia Flash, Visual Basic, Audacity/even FL Studio that we've had so many people being able to pick up these tools without having to resort to so much documentation/tutorials. I don't think I could've done that with any of the HTML5 / Web tools that were touted as an alternative at that time... Or probably even today. I mean sure there's MIT scratch that does half as many things as visual basic. But i feel like we need a little more "mature" tools that fill these gaps. I could be wrong and there's much better replacements these days..
- WillAdams 2y agoFor me it was HyperCard/Runtime Revolution/Livecode. Unfortunately, that latter, after stumping for funds to go opensource has gone closed source and is now charging enough that I can't justify it for hobbyist use, and the openxtalk folks don't seem to have an easy Windows download yet (I'd love to be wrong). I'd really like for there to be an opensource successor to VisualBasic which was cross-platform and worked well enough to be popular enough to achieve a critical mass of usage/support.
- occasionalcoder 2y agohttps://www.lazarus-ide.org/ https://www.lazarus-ide.org/
- WillAdams 2y agoThanks! That seems to be the consensus --- hopefully it will become more popular, and I'll give it a try, and hopefully will add to that.
- int_19h 2y agoCheck out https://avaloniaui.net https://avaloniaui.net as well. It's basically a cross-platform reimplementation of WPF. It's not quite as simple as C#+WinForms or Lazarus+LCL because you don't get drag-and-drop UI designer, and you need to write markup by hand (albeit with live preview). But unlike HTML, it's actually designed for desktop UI apps from the get go, so it's much easier to write for anything non-trivial. And you can still write "quick and dirty" GUI code by directly connecting event handlers to buttons and updating values etc in it, ignoring data bindings and other more advanced facilities.
- showerst 2y agoWhat a great article. My first exposure to real programming was VB and it’s hard to overstate how magical it was to just drag a button onto a form, and double click on it to write a few lines of code and wire it up. TBH it’s still something that I miss in the modern world, likely killed forever by the huge diversity of display devices. It’s funny how lousy VB (and PHP a few years later) were as programming languages, even for the time. But they got stuff done, which is a good lesson.
- vunderba 2y agoAgree - while the concept of event-driven programming was not without its quirks, it was very easy to grasp for a newcomer. I do think the WinForms editor in Visual Studio C# was a pretty decent spiritual successor that came close to capturing the magic of a drag-and-drop GUI builder. Aesthetically lacking but highly functional.
- raddan 2y agoI also used both of these at a formative time in my programming career, and it really felt magical. I built half a dozen little apps, some using Access (another product whose loss I mourn), to solve problems at the small company I worked for that “professional” developers quoted us many times my salary to develop.
- jeswin 2y ago> I do think the WinForms editor in Visual Studio C# was a pretty decent spiritual successor that came close to capturing the magic of a drag-and-drop GUI builder. Aesthetically lacking but highly functional. It required the .Net Framework to be installed, which in the early 2000s (with far lower internet penetration and speeds) was a big enough problem. It wasn't particularly great either - Microsoft's attempts to port their own desktop products to .Net mostly failed. It was basically Java for the Windows Desktop, and never quite took off in the way VB apps did.
- vintagedave 2y agoWinForms itself was largely a clone of Delphi. C# through version 2 was essentially Delphi with C syntax.
- Aloha 2y agoBefore (2023) - https://news.ycombinator.com/item?id=35192913 https://news.ycombinator.com/item?id=35192913
- 90s_dev 2y ago> Cooper decided to promptly throw away the 25,000 lines of messy prototype C code that comprised Tripod and start over from scratch, feeling like it was so irredeemably full of time-pressured hacks, it'd simply be easier to rewrite it with a cleaner design. Usually this is either a sign of a terrible programmer or a very competent and experienced one, and it's hard to know which without seeing their other work. But I've done this before, and to good effect. Writing code is not hard. Figuring things out is hard. But once the things are figured out and well understood, rewriting them in a cleaner design is especially easy. Granted, it still takes time, that sometimes that time can be on a scale of months. But the more experienced you are, the more you can estimate that time more accurately.
- 0xbadcafebee 2y agoIt's always a bad idea. Eight decades of software has shown it to be true, multiple books written on it. The inherent problem with it is the idea that writing a replacement is somehow going to be easy or fast. But if it were easy or fast, somebody would have done it already! Then come the additional problems of a rewrite like second system effect, inherent complexity, human error. It's impossible to predict how long it could take to finish making it, so fast-or-easy goes out the window. Even though it's a bad idea, in very rare cases it can be the least-bad idea. But like you said, that takes an expert to figure out, and there's not a lot of experts floating around.
- 90s_dev 2y agoSeveral times in the past few months, while working on my project, I spent a week writing something exploratory within it, and after all the lessons were fully learned and absorbed, erased that whole part and rewrote it in just a day. I could have kept the week long buggy and badly designed version of it and saved a day of work, but it would have drastically slowed down both development and maintenance of the overall project.
- jimnotgym 2y agoIsn't that one of the tenets of Extreme Programming, write a sketch, throw it away, write it properly?
- don-bright 2y agoWhat people forget is that VBA is still built in to every copy of Desktop Excel (press alt f11) and is used by entire industries that are disconnected from the open source tech online discourse. In a lot of locked down business environments its the only automation an employee has access to. If macros suddenly got Thanos snapped out of existence tomorrow the entire economy would grind to a halt. People keep saying VB is dead but it probably processed some of your information today somewhere in some cubicle.
- Sn0wCoder 2y agoNot going to lie I was exited to see this work lol. Thanks for the tip of the day. I love learning and not sure what I was expecting to happen when I opened up excel and hit alt + f11 but it was awesome to see it open. Already created my first user form and now the rest of the weekend its going to be difficult not to go down this rabbit hole. VB once paid my bills....
- romanhn 2y agoThere are still companies running their web backends on classic ASP with VBScript. Not to mention VB6-based desktop apps. Thankfully fewer and fewer each year, but they exist.
- ghssds 2y ago> Thankfully Why? If it works...
- romanhn 2y agoEnd of life software running on top of end of life software. Hard to hire for this stack, especially anyone who cares about tech. Security and maintenance nightmare. Interoperability is a pain. Questionable documentation. It all works until it doesn't, and then you're in the world of pain.
- jackvalentine 2y ago
- pkoird 2y agoGrowing up in a third world country with no formal CS classes, I will never forget the wonder and awe I felt when I coded a simple calculator after self-teaching myself VB6 from a book I stumbled upon. The simplicity of drag and drop and the fluidity with which it simply worked has remained unmatched. I tried going back into App development time and again but these new container based paradigm just never clicked for me.
- FlingPoo 2y agoI wrote a Missile Command game in VB3, that was a very long time ago. I think I sold just over 400 copies, mostly from Compuserve. Link: (the web emulator is very slow) https://classicreload.com/play/nisus-missile-master.html https://classicreload.com/play/nisus-missile-master.html
- 0xbadcafebee 2y agoI personally consider the abandonment (and lack of replacement) of Visual Basic to be an indictment of the entire tech industry. The industry does not want people to be able to write software easily, because it would put software companies out of a job. I'm glad that AI has finally arrived so it can kill programming. Once the programmers figure this out they may prevent it from being too easy to use AI to create software. If they're not really careful, it might even make web browsers obsolete.
- mft_ 2y agoI hear you, but I don’t think “the industry” is anything like as rational or strategic or organised as your theory suggests. What I see as a much more powerful prevailing undercurrent, in everything from Linux not making it on the desktop (next year!) to dependency management in Python to awful documentation in so many projects, is that smart programmers cater to themselves, and there are too few incentives to cater for the proles who aren’t quite as capable or deeply embedded in computer science. In short, it’s Hanlon’s razor: you’re seeing conspiracy while I just see incompetence.
- anthk 2y agoNo, is not incompetence. Contrary to MS, FLOSS Unixen were designed as a client/server role, and with these Unixen with easy licenses, you can decouple your core and your UI and manage your software anywhere, be it from terminal, a TUI client, HTML, a QT client, TCL/TK, your smartphone... Try that with MS Windows Server licenses. Simply, the network won. And, for the 'integrated' guys... MSOffice and VBA are silos were the data often got mangled, losing billions in bioinformatics, for instanced. Having the markup, the data, the input, output and reports in the same file, that's the recipe for a disaster. And it did happen. As I stated, Unix established a clear pipeline, transforming data sequentially and having each step of the process either recordable or trivially decoupleable. Smart people would just begin with plain text files and format them once they are finished. Ditto with spreadsheets. CVS/TSV first, data transforms and function should come later, ideally separating the input file from the output. Reading to print/end user documents should always be under a PDF/DJVU format, never to be edited, but universally viewed in the same way no matter the OS. Period. PDF's/DJVU's should be the target format, either from Excel, or Word or even PPT's. Oh, these format don't support inline videos nor macros or whatever potentially risky function to crap out your, you know, valuable outputed data? That's even better. Data should have been precalculated and presented long ago.
- RebeccaTheDev 2y agoI miss VB6 so much. For rapidly prototyping an idea, I have yet to find anything that was as good as VB6. Drag a button, write code. Want to change things about the button? Use properties, that live update the GUI without recompiling. It was so simple that a reasonably intelligent person could grasp it in an afternoon, but in the hands of a capable developer could do some very impressive things. It was also a fun game to hunt for VBX/OCX controls that you could use in things that were downloaded or came on random disks or CDs. I really feel like VB6 was the peak of that development model and we've been moving away from it since. And I get some of the reasons why (just look at the mess that comes from trying to do anything with Xcode storyboards and version control.) But for just rapidly trying out an idea, I have yet to find anything anywhere that was as good as VB6 was.
- account-5 2y agoI feel the same about MS Access databases, for databases obviously. Provided you kept within its limitations, and actually used relational models, it was really quick at setting up a database program. I never used VB6 but the workflow sounds similar.
- transfire 2y agoIt was almost exactly the same expect in VB you had use some esoteric code to access databases — and they kept changing what was the “proper” way to do it. (I think by the time I quit VB it was ADO?)
- jemmyw 2y agoI don't recall it being particularly esoteric. There were libraries to call various databases. In my first job I converted a vb6 application from Foxpro to SQL server. I was just getting into Ruby on Rails at the time and wrote a COM library the the data layer that was somewhat like activerecord, and ended up using it from ruby scripts. Fun times. Just looked it up and the software still seems to be being sold 20 years later.
- int_19h 2y ago
- pfraze 2y agoI’ve just started playing with retool to act as a data visualization frontend to big query. If you’re nostalgic for VB, it’s worth giving them a shot. I’m only a couple days in but I’m finding it very promising
- Stratoscope 2y agoHi! I was the lead developer for Ruby (no relation to the programming language), which became the "visual" side of Visual Basic. It is nice to see this article again. Perhaps my favorite part is this true story that I shared with Ryan at Retool. If you ever wonder why we "fire" an event, this is why: # # # I was looking for a name for one gizmo sending a message to another. I knew that SQL had "triggers," and Windows had SendMessage, but I didn't like those names. I got frustrated one night and started firing rubber bands at my screen to help me think. It was a habit I had back then to shake up my thinking. Probably more practical on a tough glass CRT than on a modern flat screen! After firing a few rubber bands, I was still stuck. So I fired up a doobie to see if that would help. As I flicked my lighter and looked at the fire, it all came together. Fire a rubber band. Fire up a doobie. Fire an event! # # # My other claim to fame may have been the VBX. It was likely one of the worst APIs in history, but also one of the most successful. Go figure. As they say, AMA! And as it happens, I am looking for work. If anyone doesn't mind working with an older programmer who is still enthusiastic and productive and creative, you know where to find me.
- znpy 2y ago> I fired up a doobie to see if that would help For those, like me, that are not native speakers of english and not familiar with the slang: a "doobie" here is a joint. Basically weed (marijuana). @Stratoscope correct me if i'm wrong
- Stratoscope 2y agoThank you for the clarification. Yes, you are correct. And no, I didn't set one of the Doobie Brothers on fire!
- warpspin 2y agoI wonder what the programming language was like which you used, before BASIC was put into the product?
- Stratoscope 2y ago
- ChicagoDave 2y agoI bought VB 1.0 from an 800 number in Dvorak’s back page PC Week article. I still have the floppies and manuals. I made a lot of consulting cash being an expert in VB 6. When .NET came out, I switched to C# and learned object-oriented programming. (Ironically by reading Bruce Eckel’s “Thinking in Java”).
- WA 2y agoVB got me into programming as a teen in the 90s. I even managed to create several small games without having much of a clue. Good times.
- EGreg 2y agoBoth VB and Hypercard were amazing, for Windows and Mac, respectively Anyone thinking of doing it on the Web?
- anthk 2y agoOb VB, performance wise, giving how 'fast' some C64 written in VB ran, I think it was on par of TCL/Tk, if not worse for some cases and better in a few obvious cases (Direct Draw/Direct X), but Unix people wrote the core in C and they put a Tk UI on top giving great speeds. And, on people praising VBA integration under MS Office, that gave us security disasters with macros and millions of dollars lost because of Excel parsing genomics as dates. It's better to decouple data and algorythms as separate files. Keep your raw data in a file, transform it and set the output in a separate process and file. You know, a proper pipeline. Something the Unix folks understood since the very beginning 50 years ago. But "performance" fanboys don't care, until the shit hits the fan as it happened in Science with bioinformatics. Tons of studies, papers and research were just void because of shitty software. Meanwhile, some Unix users with Slackware with discrete tools for every process (and not just a self-updating XLS file for everything) did it fine as they followed a basic reproducible chain. https://slackalaxy.com/2019/03/15/slackware-and-slackbuilds-org-cited-in-a-scientific-publication/ https://slackalaxy.com/2019/03/15/slackware-and-slackbuilds-... Harder? Yes, OFC. But, can you bet that your initial data will be the same on every process? For sure.
- pjmlp 2y agoThankfully no one does curl | sh in UNIX....
- jimmiemars 2y ago[dead]
- heelix 2y agoBack in the day, we were building COM components in C++ with the STL. One of the discoveries is you could build out the same COM component in VB and maybe take only a 5% hit to performance. Was one of those 'we are not telling anyone we can do this' moments. Beyond the UI portion, it had some really powerful capabilities.
- guestbest 2y agoIt really was one of the best language and ide environments that was completely pushed aside by security considerations from the much more widely used general purpose internet web browser.
- glonq 2y agoI was a proficient C/C++ programmer for DOS and embedded, but found programming apps for Windows to be very overwhelming and tedious. So for a few years there VB was an excellent way for me to build little Windows tools and apps, until I eventually put in the effort to get good at MFC. I dropped that as soon as C# came out.
- tedyoung 1y agoI was lucky to get in on the _Thunder_ VB 1.0 beta and, as an "expert" QuickBASIC developer at the time, was just blown away by how easy it was to create a Windows application (which previously was _very_ difficult). I remember submitting a stock charting application that Michael Risse and Nevet Basker used to love showing during the VB 1.0 launch demos (and road shows), because they could plot the chart of Microsoft (up and up) vs. IBM (not so up). For me, VB 3.0 was peak Visual Basic, and I was on to doing Java stuff by the time VB 6.0 was released. Fun times.
- Breza 1y agoI have a tangential question related to one part of the article. I worked in a .NET shop where a surprising amount of code was VB.net (the rest was C#). Was this a common design pattern for .NET code written around 2010? The article makes it sound like nobody really used VB.net, and certainly not when there were C# devs around.