[HN Gopher] Something Pretty Right: The History and Legacy of Vi...
       ___________________________________________________________________
        
       Something Pretty Right: The History and Legacy of Visual Basic
        
       Author : panic
       Score  : 387 points
       Date   : 2023-03-17 03:59 UTC (19 hours ago)
        
 (HTM) web link (retool.com)
 (TXT) w3m dump (retool.com)
        
       | samsaga2 wrote:
       | Microsoft killed Visual Basic on purpose. They wanted to force
       | everyone to move to c# because they were afraid of Java and
       | wanted to compete against their market.
        
         | lproven wrote:
         | This is the most important comment so far.
         | 
         | MS tried to embrace, extend and extinguish Java. It got blocked
         | in court.
         | 
         | So, instead, it pushed .NET instead. "If it ain't dot-net, it
         | ain't worth sh*t."
         | 
         | So everything that wasn't dot-net was killed.
         | 
         | Real VB loved by millions? Dead. QBasic, QuickBasic, Quick C?
         | Dead. FoxPro, a good dBase clone, the database of choice for
         | millions of businesses worldwide in the '70s, '80s and '90s?
         | Dead. FrontPage, democratising the web for millions? Dead. HTML
         | is dead, use ASP.net.
        
       | chapliboy wrote:
       | Don't listen to fighter-pilots stuck in busses.
       | 
       | That's such an easy thing to do as a product. All the comments
       | you see are all clamouring for some set of features that will
       | just complicate everything. Yet a majority of the users have
       | absolutely no issues continuing on with what they already have.
       | You need to be able to figure out how many quiet happy customers
       | you have if you want to make any big breaking changes...
        
       | [deleted]
        
       | Nursie wrote:
       | Ah VB :)
       | 
       | It wasn't the best language, no. But it was so damn easy to slap
       | something together just to get things done. Draw me a window this
       | size, put one of these there, one of these here, hook this method
       | up to this button/slider/whatever... go!
       | 
       | Was it great for large-scale, complex stuff? Not so much, IMHO.
       | But was it great for slapping together a quick, useful util or
       | demo? Absolutely.
        
       | richsu-ca wrote:
       | Loved the article. Thank you.
       | 
       | I went from VB6 to C#, and lived through the drama surrounding
       | the end of VB6. Everyone one had something to say, but here are
       | some words from Bruce McKinney
       | https://classicvb.net/hardweb/mckinney.htm
        
         | orthoxerox wrote:
         | Bruce's Hardcore VB was the first book that I was
         | underqualified to read as a teenager teaching himself to
         | program.
        
       | gigel82 wrote:
       | Visual Basic 4 is when I fell in love with programming. I
       | remember staying up late (school nights no less) just playing
       | around and designing GUIs.
       | 
       | I had done some programming before with Pascal, C and even
       | QBasic, but nothing was quite as fascinating as dragging and
       | dropping fully functional controls and having them light up with
       | functionality in minutes.
       | 
       | Up until a few years ago, I was still reaching out to WinForms /
       | C# to build quick prototypes - maybe it was part nostalgia, but I
       | didn't find anything comparable when it comes to quickly standing
       | up a GUI prototype (for a LOB type of application, or a small
       | utility / tool kind of thing).
        
         | lotsoweiners wrote:
         | "Up until a few years ago, I was still reaching out to WinForms
         | / C# to build quick prototypes"
         | 
         | What replaced them for you? I still use Windows forms a lot for
         | prototypes and utilities and was curious if there is something
         | else I should be looking at.
        
           | HideousKojima wrote:
           | I've been using the Godot game engine and C# to make various
           | utilities. Not quite as dummy simple as WinForms but it's
           | super easy and fun to use.
        
           | gigel82 wrote:
           | I no longer need to write LOB / GUI apps, and I switched to
           | node.js scripts for utilities.
        
           | Kwpolska wrote:
           | I find WinForms weird and difficult to make consistent-
           | looking UIs in. But WPF is quite nice.
        
       | Eumenes wrote:
       | i'd watch a movie in this blog format
        
       | Stratoscope wrote:
       | Ryan and David and team, I am so happy to see this posted!
       | 
       | I'm quoted a few places in it. Yes, the story about the origin of
       | the phrase "fire an event" is true and correct. I could even tell
       | you exactly where I was sitting and which way I was facing when
       | that event fired.
       | 
       | Some things stick in your mind, doobies or not.
       | 
       | Also mentioned is the VBX. In some ways, this may have been the
       | worst API I ever designed. It was so bad that Microsoft
       | eventually replaced it with COM! But it was the most successful.
       | 
       | If anyone has any questions, fire a comment!
        
         | mysterydip wrote:
         | VB was my swiss army knife for many years, making utilities for
         | solving organization's pain points, some of which were used
         | unchanged for over a decade. I even made some games in it back
         | in the day!
        
         | RyLuke wrote:
         | Thanks, Michael! Finding your comments on HN about the design
         | details of the original "Ruby" version of VB and VBX was part
         | of my inspiration for writing this article in the first place.
         | Your recollection of "firing an event" is my favorite kind of
         | classic Silicon Valley story.
        
           | Stratoscope wrote:
           | Ryan, thank you for writing the article. I remember you
           | described it to me as a "labor of love". Indeed it is that.
           | It also reminds me of how much work goes into journalism like
           | this.
           | 
           | Ruby/VB was a labor of love for us. One of my favorite
           | episodes of _Silicon Valley_ was the TechCrunch Disrupt where
           | every founder said  "we want to make the world a better
           | place." It's funny, but true! That is exactly what we wanted
           | to do.
           | 
           | Anyone who likes the "fire an event" story may also enjoy
           | _What the Dormouse Said_ by John Markoff:
           | 
           | https://www.amazon.com/dp/B000OCXFYM/
        
         | powerlogic31 wrote:
         | Just here to appreciate all your hard work. Sometimes I forget
         | how crazy accomplished people are commenting here HN.
         | 
         | I'm just here pumping web api's for my corporate overlords. I
         | feel so bored.
        
         | kevingadd wrote:
         | Thanks for all your hard work! Without VB my career definitely
         | wouldn't have happened.
        
           | Stratoscope wrote:
           | Kevin, I can't tell you how much that means to me. (Well, I
           | guess I just did.)
           | 
           | I checked your HN profile, and my gosh, if I had even a small
           | part in getting you started in this crazy business, that
           | makes it all worth it.
        
         | jefflub wrote:
         | I always loved VB. Super useful for banging together a quick
         | "enter a value in a text box and click a button to do something
         | in the database" utility.
         | 
         | And VBX was a pain, but had some advantages over the COM-based
         | controls. My first job at MSFT in 1994 was to build
         | demonstration apps for interactive TV. When I started there was
         | already a base application in VB3. I needed to add
         | transparently layered images and text with rotation and
         | animated transitions, and a windowless VBX made it easy to
         | build that transparency. IIRC, you could not make windowless
         | OCX controls. I'm not even sure how you'd do independently
         | positioned transparent controls in VB4+.
        
         | WillAdams wrote:
         | Were you aware of how MS killed off the competing MacBASIC?
         | 
         | Did you ever see the sourcecode for it?
         | 
         | How would you tell the VisualBASIC side of this story:
         | 
         | https://www.folklore.org/StoryView.py?story=MacBasic.txt&cha...
        
           | Stratoscope wrote:
           | I hadn't seen that story before, thanks for pointing to it.
           | Lots of great stories on folklore.org! I recommend it to
           | anyone interested in the early days of Macintosh.
           | 
           | I don't think there is a Visual Basic side to the story. Our
           | work was many years after those sorry events.
           | 
           | In fact I never saw the source code for any of the Apple or
           | Microsoft Basics, not even the "Basic" side of Visual Basic.
           | Our team built the "Visual" side of it, code named Ruby. (No
           | relation to the programming language.)
           | 
           | Originally Ruby wasn't going to be combined with Basic at
           | all. It was going to be a user-customizable shell for Windows
           | 3.0. Instead of Program Manager and File Manager, you could
           | create your own desktop with things you wanted on it.
           | 
           | Ruby had a very primitive scripting language, but the
           | language API was designed to allow other interpreters to be
           | plugged into it.
           | 
           | Microsoft later decided to scrap the "shell" idea and create
           | Visual Basic instead.
        
             | WillAdams wrote:
             | Thanks!
             | 
             | Did HP coming out with NewWave and its scripting language
             | influence this at all?
        
         | Stratoscope wrote:
         | Just a note of thanks to everyone who has replied. I thanked
         | one or two of you individually, but I don't want to clutter up
         | the thread too much.
         | 
         | Your kind words mean a lot to me, but more importantly, thank
         | you all for the great things you built using VB.
         | 
         | And if you liked VB, you should definitely check out Retool!
        
         | fernandotakai wrote:
         | it's thanks to you and and the whole team that i have a career!
         | i started learning vb late (early 2004), but soon enough i had
         | a small job writing custom software for small business with a
         | couple of friends -- that lead me into actually finding my
         | passion.
         | 
         | honestly, i kind if miss vb6's simplicity: you could create a
         | "proof of concept" in the matter of hours, without having to
         | bother with compiling tools, libraries or anything like that.
         | everything just worked.
        
         | tarasglek wrote:
         | Hey, I got started programming in VB3! Thank you for your
         | involvement in forming my expectations of programming.
         | 
         | I feel like my path was so much better because I started from
         | laying out a UI and then learning code as a way to make it do
         | stuff instead of the "lets learn complicated goop with no clear
         | purpose first".
         | 
         | To this day I'm amazed by how ok devs are with not being able
         | to get instant satisfaction from achieving things that should
         | be simple.
        
           | svachalek wrote:
           | Today's equivalent would be an IDE that you hit "new project"
           | and type a few lines and draw a few boxes and you've got
           | something up and running in the cloud. There's nothing like
           | it as far as I know; there's an entire generation or more who
           | have never seen programming work like that, and don't even
           | envision it, it seems. Bold ambitions these days usually
           | amount to a clone of a popular thing, with some kind of tweak
           | that's interesting but not nearly interesting enough to get
           | people to move.
        
             | analognoise wrote:
             | FreePascal/Lazarus is like that, it's actively maintained
             | and totally free.
             | 
             | They're even adding iOS, Android and web targets. Give it a
             | try!
        
             | jeffdn wrote:
             | ReTool is sorta this -- I imagine that's why they published
             | this article!
        
       | juliangamble wrote:
       | There's a generation of programmers that fell into software
       | development through Visual Basic. Maybe you could say the same
       | about the Apple II/Commodore/ Sinclair/ BBC Micro generation of
       | computers that booted up to a BASIC prompt.
        
         | Zardoz84 wrote:
         | On my case was : ZX Spectrum +3 -> TurboBASIC/QBasic ->
         | VisualBasic 3 to 6 -> PHP + early JavaScript -> C, C++,
         | JavaScript, Java
        
       | WillAdams wrote:
       | It leaves out one important point --- Microsoft killed off a
       | similar development on a competing platform:
       | 
       | https://www.folklore.org/StoryView.py?story=MacBasic.txt&cha...
       | 
       | TLDR: Bill Gates got the source code for "MacBasic" from Apple
       | for $1 in exchange for continuing the license for Microsoft BASIC
       | on the Apple ][.
        
       | ShadowBanThis01 wrote:
       | VB was the one thing that most closely approached the promise of
       | object orientation: "bolt-together," "off-the-shelf" components
       | that you could build software with.
       | 
       | In VB you could slap together a CRUD app in days, with VBXs
       | (later renamed OCXs). I worked for a company where a bunch of
       | programmers turned up their nose at VB and insisted on using C++,
       | and then they got canned when the VB prototype functioned
       | perfectly sufficiently for a production app.
        
         | omnibrain wrote:
         | > VB was the one thing that most closely approached the promise
         | of object orientation: "bolt-together," "off-the-shelf"
         | components that you could build software with.
         | 
         | I think Delphi perfected it with the data aware components. If
         | you had a DB you could throw together a CRUD application with
         | several screens with tablegrids and edit fields without any
         | code at all. Even Master:Detail relations are taken care of.
         | (Of course it's not pretty and it's going to miss validation,
         | etc...)
        
           | petepete wrote:
           | Delphi's data aware components were power tools. It didn't
           | take much longer than building something in Access, but dead
           | easy to plug it into a RDBMS; extremely fast to work with;
           | stable, simple to deploy.
           | 
           | As I remember, making validation errors pretty was a bit of a
           | chore, but on most of our backend stuff we just showed the
           | SQL error and it usually made sense.
        
         | grumpyprole wrote:
         | When I first played with VB in the early nineties, it was also
         | about the time Microsoft Foundation Classes was released. I
         | compared the two approaches for building UIs and it pretty much
         | soured my opinion of C++ for life.
        
       | narag wrote:
       | I don't think Microsoft failed to see that most VB programmers
       | wanted to keep VB as it was.
       | 
       | Microsoft killed VB with a clear purpose: controlling more
       | tightly as much as Windows development as possible, copying the
       | Java model with .NET.
       | 
       | If that seems like too conspiranoic theory, let's say that their
       | new Devs head, Anders Hejlsberg, wanted a more uniform
       | development experience around .NET and its star, C#.
       | 
       | I'd bet for the former.
        
         | bazoom42 wrote:
         | I dont see how .net was more tightly controlled than VB? VB was
         | a closed source proprietary language tightly integrated with
         | the IDE. They had absolute control.
        
         | mike_hearn wrote:
         | It wasn't deliberately killed. The problem was that VB6 had
         | weird semantics and behavior by the standards of other
         | languages, but .NET was designed primarily around Java's
         | semantics. Rather than pollute their nice next-gen platform
         | (that they wanted to standardize through ECMA even!) with lots
         | of VB6 compatibility goop, Microsoft chose to change VB with a
         | new version that was closer to a normal .NET language. For
         | example, in VB6 parameters are always passed by reference, but
         | in C#, Java and VB.net they're passed by value.
         | 
         | They also didn't seem to care much about being fully
         | compatible, for example VB6 had some fairly basic features that
         | WinForms didn't have.
        
           | narag wrote:
           | OK, you bet for the latter. But:
           | 
           |  _They also didn 't seem to care much about being fully
           | compatible..._
           | 
           | That sounds deliberate.
           | 
           | Edit, to clarify: I doubt they didn't anticipate the
           | frustration and the hit on the mindshare. From Ballmer's
           | show, shouting "developers", to spit in the face...
           | 
           | I didn't use VB6, but I do remember the complaints.
        
       | DeathArrow wrote:
       | Ideally we should have a modern programming language and
       | environment that
       | 
       | a) is very easy to use for new comers and people that aren't
       | professionals to build small functionalities and link different
       | functionalities together
       | 
       | b) has visual components (so this disqualifies Python)
       | 
       | c) it is flexible and can be used by seasoned professionals to
       | build complex things
       | 
       | The complexity of the programming should be gradual, i.e. if you
       | are a beginner, if you are learning, if you don't plan to be a
       | full time programmer but you need to build something very simple,
       | it should be possible.
       | 
       | When I studied programming in highschool, the tool of choice was
       | at first Turbo Pascal. Using Turbo Vision it was easy for US to
       | construct simple text-based UIs and using BGI allowed us to
       | dabble with graphics and draw simple things in a simple and
       | straight forward way.
       | 
       | Now, if I have to explain to a potential beginner that in order
       | to build a simple to do app he should learn: HTML, CSS,
       | Typescript, React, install VS Code, install VS Code extensions,
       | linters, NPM, sass, less and tens of packages, just to be able to
       | start, he might feel a bit discouraged and want to become a cab
       | driver instead.
       | 
       | But if I, in a totally unmodern, uncool, unwelcomed by community
       | way I tell him to open Notepad and show him a few bits such as
       | <button onclick="myFunction()">Ok</button> and alert("Ok") he
       | might discover a taste for programming, and start to learn his
       | way up to building something.
        
         | lproven wrote:
         | I think you're right.
         | 
         | And there were things in this general direction... Smalltalk
         | and Logo spring to mind.
         | 
         | But there is a _lot_ of culture in computing, and a big problem
         | that isn 't recognised let along acknowledged is that today,
         | there are basically only 2 surviving branches on one tree, when
         | 30-40 years ago there was a whole forest.
         | 
         | The branches are Windows (which now means NT) and Unix (which
         | now means Linux and macOS). They both grow out of the same
         | stump: DEC's minicomputers, specifically DEC's 16-bit line.
         | 
         | DEC also had 12-bit, 18-bit, 20-bit, 24-bit and 36-bit lines,
         | all profoundly deeply unlike anything that ever ran C.
         | 
         | And of course there were lots of other minicomputer and
         | mainframe brands that were far _far_ more different than that:
         | Burroughs, UNIVAC, NCR, Control Data Corporation (CDC), RCA,
         | General Electric, and Honeywell. Once known as  "IBM and the
         | seven dwarves".
         | 
         | All we have left descends from one branch: DEC 16-bit machines.
         | 
         | The rest is mostly gone. Some are still around, emulated and in
         | maintenance mode, because they run the world's banking systems
         | and air-traffic control and things. Kinda important.
         | 
         | There are whole families of languages and OSes that never used
         | a single line of C or involved any Unix code at all at any
         | point. Whole types of OS and GUI and editor and filesystem and
         | so on more different from Unix than Unix is different from
         | Windows NT.
         | 
         | Whereas today, the traditional Mac is totally gone, replaced by
         | Unix. And Windows is getting more Unix-like all the time and
         | now includes a choice of Unix _and_ two different Linux
         | runtimes.
         | 
         | Suggest that, hey, let's run Smalltalk on the bare metal and
         | teach kids on that, so that they don't even have to ever know
         | what "a file" is or means, and people will say "that's crazy
         | talk!"
         | 
         | Remember the Blues Brothers? "We got _both_ kinds of music!
         | Country AND Western! "
         | 
         | Well, we got _both_ kinds of software today! Unix AND Windows!
         | 
         | They are the same damned thing, and gods help you if you are
         | some heretic that says hey, you know, there are other things
         | out there...
        
           | DeathArrow wrote:
           | >But there is a lot of culture in computing, and a big
           | problem that isn't recognised let along acknowledged is that
           | today, there are basically only 2 surviving branches on one
           | tree, when 30-40 years ago there was a whole forest.
           | 
           | I guess 30-40 years ago computing was much newer, there was a
           | lot more enthusiasm and people were willing to try many new
           | things and do things in many different way. At a conceptual
           | level, Go isn't very different from Java which isn't very
           | different from Python. LISP is quite different from Smalltalk
           | and Smalltalk is quite different from ML and ML is quite
           | different from Prolog.
           | 
           | As for small, home operating systems, BeOS was quite
           | different from both Mac and Windows. :)
           | 
           | > Suggest that, hey, let's run Smalltalk on the bare metal
           | and teach kids on that, so that they don't even have to ever
           | know what "a file" is or means, and people will say "that's
           | crazy talk!"
           | 
           | A file is just an abstraction, and so are Unix pipes. I don't
           | see while there can't be other valid concepts to hold data
           | than files.
        
       | FlingPoo wrote:
       | I got started with Visual Basic 2.0 I wrote a shareware game in
       | VB3 in the early 1990's called "Nisus Missile Master", a Missile
       | Command clone. If I remember correctly, I sold just over 400
       | copies.
       | 
       | My game made it into "Shareware Magazine" (print). I was also
       | interviewed by the author of "Programming Games For Beginners" by
       | Chris Howard, a chapter about Missile Master, and shareware
       | sales.
       | 
       | You can find and play it here, but the emulator is very slow.
       | 
       | https://archive.org/details/win3_NisusMis
        
       | tragomaskhalos wrote:
       | There was more to VB than just guis though - one could use it to
       | build COM components far more easily than with C++ - the fact
       | that a string was just String rather than the miasma of competing
       | flavours that abounded in Visual C++ was worth the price of
       | admittance alone.
       | 
       | Delphi was arguably best in breed here, but always suffered from
       | lacking the Microsoft badge.
        
       | DeathArrow wrote:
       | Couple of thoughts:
       | 
       | 1. Microsoft did a good thing at that time with Visual Basic.
       | Building visual interfaces with RAD tools is the most efficient
       | way, as defining visual elements with code is harder. VB was
       | great at its time, Borland Delphi and C++ Builder were good, QT
       | Builder was good, Windows Forms was good. Of course, why use good
       | models when you can inflict pain and let people define UIs by
       | using plain code?
       | 
       | WPF used XAML and the new MAUI uses XAML, and while it is a
       | better experience to define the visuals with XAML, a RAD tool
       | like VB or C++ builder is much better. We should have RAD tools
       | for desktop apps and mobile apps.
       | 
       | In my software career I've not only built apps and websites and
       | web applications and backends, but I worked as a game programmer,
       | too. And people preferred game engines like Unreal and Unity
       | because they were rapid tools with which is was much easier to
       | build game levels and UIs than doing that by code.
       | 
       | 2. I didn't use VB, because by the time I've encountered VB, I
       | already knew C and C++ and felt they were more powerful and fast.
       | I enjoyed using Borland C++ builder very much, and I wondered why
       | MS didn't provide such a tool and enforced Win32 over
       | programmers. I thought Microsoft hated programmers. And being
       | that failed to provide one API for desktop programming, switching
       | from Win32 to MFC to Windows Forms, to WPF, to MAUI - I still
       | sometime think MS doesn't do the best job with providing tools
       | for programmers. Now that MAUI is the thing, I hope it will stay
       | and won't be replaced in two years by another thing.
       | 
       | 3. If people think using Haskell or Rust is hard, they should buy
       | Petzold's Book and try to program Windows with the info provided
       | in that book. To do very simple things like apps with menus and
       | child Windows, you really had to spend hours, correct compile
       | errors, have the program crash, debug it, make it not crash,
       | observe that things don't work as they should, change the code,
       | solve errors, observe that the program crashes, solve those bugs,
       | make it not crash, observe that things don't work as they should.
       | And all that without having learn.microsoft.com, stackoverflow,
       | YouTube to learn from.
        
         | Kwpolska wrote:
         | WPF's and Android's approach are the best of both worlds. You
         | get both a visual designer that can get you far, and human-
         | editable XML, which is useful for more complicated layouts or
         | for copy-pasting similar widgets around.
        
           | DeathArrow wrote:
           | WPF is dead, now we have MAUI for both desktop and mobile
           | development. Let's hope MS doesn't find a new shiny thing.
        
             | Kwpolska wrote:
             | WPF is definitely not dead. It may not be the latest shiny
             | thing, but it works, it is maintained (judging by
             | https://github.com/dotnet/wpf or
             | https://devblogs.microsoft.com/dotnet/wpf-on-dotnet-7/),
             | and it is fully and officially supported on the modern .NET
             | platform.
        
           | mike_hearn wrote:
           | Yes, note that JavaFX has the same approach but also has a
           | visual designer (Scene Builder). It can be used from any JVM
           | language which is a lot these days. Like, you could write a
           | JavaFX app in JavaScript or Python if you wanted to.
        
         | wsc981 wrote:
         | I've started looking into MAUI over the last week and it
         | honestly seems like a big improvement over Forms, in various
         | ways.
         | 
         | Though it's probably risky to use in production.
        
           | DeathArrow wrote:
           | Yes it is nice, but I hope that once people and companies
           | will make an investment in it, they won't deprecate it in
           | favour of a new thing.
        
       | tomcam wrote:
       | Was a huge fan of the product. Joined the VB team as a PM in 1996
       | and worked for a few years while my health declined. The whole
       | division was beautifully run. The people were, to a person,
       | amazing human beings. I honestly think I stumbled into the best
       | team Microsoft had before or since. The Microsoft campus was
       | verdant and tranquil. Everything you sort of imagine Apple would
       | be to work at was true on that team, and has never actually been
       | the case at Apple. At the same time our first child was born. For
       | me, it was a time of pure magic. All that and I got to work on
       | VB.
        
         | ShadowBanThis01 wrote:
         | I don't know who approved the inclusion of VB in Word, but that
         | person is a hero.
         | 
         | WordBasic was a career-maker for me. I worked at a Big-6
         | consulting firm and used Word to parse and rewrite thousands of
         | SQL modules (that resided on a VAX, no less) with a Word macro
         | when the DB structure changed. It ran for 11 hours and saved
         | man-weeks.
         | 
         | That was after I had used WordBasic to add tons of features to
         | Word for our doc team, which we take for granted today: cross-
         | file searches, cross-file page numbering, style enforcement...
         | just incredible.
         | 
         | It's sad to see the mess that Word has become, however. And
         | Windows too.
        
       | StopHammoTime wrote:
       | When I was younger, I HATED VB6. Even today, I still loathe some
       | of the weird apps that I had to support running in Excel with
       | VBA. I truly never thought about the power of VB until I read
       | this article - those apps I loathed so much probably wouldn't
       | have existed if it weren't for VB. I ran into so many tools that
       | provided immediate value and go things done, even if it was dodgy
       | or weird.
       | 
       | Even though I'm a Platform Engineer these days, I hate the
       | tooling that we have to do deal with today. Instead of having
       | people build solutions, we all need to understand hundreds (if
       | not thousands) of cloud/vendor-specific APIs. The actual solution
       | itself is almost a by-product of the job of getting in run in the
       | cloud.
       | 
       | Maybe don't bring back VB, but a world where we can deliver
       | solutions quickly and effectively without spending hours
       | debugging dependency issues between releases.
        
         | Syzygies wrote:
         | "Alas, the final product horrified Cooper--who loathed BASIC"
         | 
         | This so reminded me of that wolf-to-dog "What could go wrong"
         | meme.
         | 
         | https://imgur.com/uVJPlZF
        
       | mobilio wrote:
       | They're missed only VB Dos version.
       | 
       | https://twitter.com/dosnostalgic/status/803339511845552128?l...
        
         | gattilorenz wrote:
         | They didn't: "Visual Basic's initial release in 1991 was
         | followed by five major versions ( _not including an ill-fated
         | version for DOS_ ). By the time Visual Basic 6.0 was released
         | in 1998, its dominance was absolute"
         | 
         | TBH, VB for DOS was indeed not very successful, and while fun
         | as a concept (I've recently coded a Wordle-clone with it it),
         | all things considered it's not very practical nor sensible.
        
       | tomger wrote:
       | Who else here followed the path of QBASIC > Visual Basic >
       | ASP.NET > general web development as a kid?
        
         | cpill wrote:
         | I did the first two and then when to php for ten years. the
         | wild west of the internet!
        
       | matwood wrote:
       | When I was college my first programming job was writing CRUD UIs
       | in VB (I think it was 4 or 5) for a local contract dev shop. I
       | was only a sophomore at the time, and the money I made helped me
       | pay for college.
       | 
       | I know people ripped on VB the language, but I still haven't used
       | anything to date that was as good and easy at creating Windows
       | CRUD UIs.
        
       | rob74 wrote:
       | Hilarious quote (notwithstanding the fact that bus drivers
       | usually have to work shifts, also on weekends):
       | 
       | > _Almost all Visual Basic 6 programmers were content with what
       | Visual Basic 6 did. They were happy to be bus drivers: to leave
       | the office at 5 p.m. (or 4:30 p.m. on a really nice day) instead
       | of working until midnight; to play with their families on
       | weekends instead of trudging back to the office. They didn 't
       | lament the lack of operator overloading or polymorphism in Visual
       | Basic 6, so they didn't say much.
       | 
       | The voices that Microsoft heard, however, came from the 3 percent
       | of Visual Basic 6 bus drivers who actively wished to become
       | fighter pilots. These guys took the time to attend conferences,
       | to post questions on CompuServe forums, to respond to articles.
       | Not content to merely fantasize about shooting a Sidewinder
       | missile up the tailpipe of the car that had just cut them off in
       | traffic, they demanded that Microsoft install afterburners on
       | their buses, along with missiles, countermeasures and a head-up
       | display. And Microsoft did._
       | 
       | ...and it applies not only to Visual Basic, but also to many open
       | source programming languages today. There are the users who are
       | happy with the way things are, who are content to do their job
       | and don't say much. And there are those clamoring for that one
       | more feature that they just _have_ to have, and those are the
       | ones that eventually get heard, adding more complexity and cruft
       | for everyone else.
        
         | interfixus wrote:
         | For what it's worth, I _am_ a bus driver these days; a real
         | one, no metaphor involved. And I sufficently disliked and
         | mistrusted Visual Basic that already in the mid nineties I
         | instigated a complete ban on any vb**run.dll on all computers
         | under my jurisdiction. Mainly a heuristic: VB applications
         | tended overwhelmingly to not being worth the inevitable
         | trouble.
         | 
         | I have proudly carried this curmudgery into the present
         | century, these days applied to Java runtimes and Mono libs.
        
           | Pamar wrote:
           | Mind if I ask what you allow on your systems, today? Or the
           | last time you worked in IT?
           | 
           | (Not clear if you moved away from it or not)
        
             | interfixus wrote:
             | Moved away by own choice. Never looked back.
        
               | Pamar wrote:
               | Ok, fine.
               | 
               | But again, what did you "allow" on the systems you
               | managed back in the day?
        
             | pjc50 wrote:
             | I think the implication was that his radical puritanism
             | left him unemployable except as a literal bus driver.
        
               | interfixus wrote:
               | Very droll, but incorrect.
               | 
               | Also, I believe the word you're looking for is _purism_.
               | I 'll certainly go along with that.
               | 
               | Also also, out of curiosity, where did you dredge up the
               | "he"?
        
               | [deleted]
        
               | bigbillheck wrote:
               | > where did you dredge up the "he"?
               | 
               | https://news.ycombinator.com/item?id=28725669
        
               | shanebellone wrote:
               | For what it's worth, the male form is generally used when
               | gender is unknown. I suspect those linguistic defaults
               | will start changing soon.
        
               | simonh wrote:
               | It's being replaced by they. Which I'm fine with btw.
        
           | 2-718-281-828 wrote:
           | Public transportation? I'm curious probably because I do
           | consider switching careers. Bus driving - in my fantasy -
           | provides some of the features I sort of desire (clear
           | schedule, clear expectations) while lacking those I annoy
           | (further educating outside of work, tendency to take problems
           | home with you). What's your situation?
        
             | nevertoolate wrote:
             | I recommend watching the film Paterson, with Adam Driver (a
             | bus driver in the film)
        
               | HeyLaughingBoy wrote:
               | As do I, for reasons that have nothing to do with this
               | thread. It's just a great film.
        
               | 2-718-281-828 wrote:
               | I actually watched it already and in the theater at that.
               | the last movie where adam driver doesn't come across a
               | subtle prick.
        
           | DeathArrow wrote:
           | For your own good, let's hope the bus dispatcher of the lines
           | you work for doesn't apply the same line of thinking.
        
             | interfixus wrote:
             | I wish they did. We work with terrible software.
        
         | draw_down wrote:
         | [dead]
        
         | jjkaczor wrote:
         | Well - basically, if you wanted to become a fighter pilot and
         | had VB1-6 experience and wanted the "RAD" forms tools, but also
         | wanted true OOP, there was always... Delphi
         | 
         | You could do pretty much anything with Delphi that you could do
         | with C/C++ on Windows.
        
           | orthoxerox wrote:
           | It's not a coincidence that Microsoft poached Anders
           | Hejlsberg, the creator of Delphi, to work on C# and .NET.
        
           | simonh wrote:
           | True, but that's also true of .NET
        
             | dspillett wrote:
             | I thing the point being made is that those things were
             | available prior to .net - Delphi existed in a stable state
             | with those facilities long before .net did.
        
             | TedDoesntTalk wrote:
             | It is not true that you could do everything in early .NET
             | that you could do with Win32. Not all Win32 functions were
             | exposed in .NET
        
               | starik36 wrote:
               | You could always PInvoke into any Win32 function. There
               | was/is even a website to help you with a declaration.
               | https://www.pinvoke.net/
        
             | jjkaczor wrote:
             | Correct - but Delphi was available in the VB3-4 timeframe,
             | years ahead of .NET.
             | 
             | When .NET was in beta, I managed to participate through a
             | Microsoft friend - and, saw that the writing-was-on-the-
             | wall... I dropped my tentative exploration of Java (I had
             | even become a Sun partner) and focussed all my efforts on
             | C#, I could see that was the way forward (especially
             | considering it was up for ECMA/ISO certification as well)
             | and basically never touched VB.NET or VB again. (Outside of
             | some VBA within Excel/Word/etc)
        
         | cmiles74 wrote:
         | I'm not down with the "bus driver" metaphor, but the bit about
         | a vocal and active minority steering the direction of the
         | technology for the rest of us certainly rings true. I think a
         | read an article on HN about exactly this, but in the terms of
         | React and Wordpress.
        
           | segmondy wrote:
           | What is wrong with bus drivers?
        
             | cmiles74 wrote:
             | Nothing is wrong with bus drivers! :-) I'm not sure
             | comparing software developers to bus drivers is a metaphor
             | that gets us very far... In fact, why some bus drivers
             | might want to really be flying fighter jets also had me
             | scratching my head.
        
               | namaria wrote:
               | More like bus drivers wanting to become heavy machinery
               | operators...
        
         | lincpa wrote:
         | [dead]
        
         | [deleted]
        
         | marcus_holmes wrote:
         | I see this in the Golang forums a lot.
         | 
         | The people who moved to Go a while back, when it was unpopular,
         | because they loved it, aren't that vocal (apart from the
         | continuous cries of "just use the standard library!").
         | 
         | The people coming to the language from other languages, not
         | because they like Go but because they need to use it for work
         | (because it's now a popular language), are very vocal about how
         | they don't like it because it's not what they're used to
         | (though usually this is phrased differently - usually
         | complaints about Go's "inexpressiveness").
         | 
         | I was one of the people who loved VB6 and struggled with
         | VB.Net, wandering through JS and PHP, until I found Go and fell
         | in love with it immediately. I would hate for history to repeat
         | itself and the Go team to make the same mistake that MS did
         | with VB.
        
         | pif wrote:
         | I'd say that Microsoft heard the voices of the poor souls that
         | had to convert the buggy code from the idiots into usable
         | applications.
        
           | alxlaz wrote:
           | Or: Microsoft heard the voices of the entitled souls who
           | looked at working applications and thought they were bad
           | because they weren't DRY enough or something.
           | 
           | That's how we ended up with CRUD apps that are practically
           | indistinguishable from their Visual Basic 6 predecessors,
           | except they're deployed on k8s clusters instead of a 133 MHz
           | Pentium in the corner.
        
             | gladiatr72 wrote:
             | I haven't done it yet, but I have a kubernetes t-shirt idea
             | that would involve the line: Kubernetes! solving
             | yesterday's problems again, today!
        
             | DeathArrow wrote:
             | "Why can't we have nice things like SOLID, DRY, domain
             | driven design, abstract factories, builders, decorators,
             | bridges, facades, visitors, mediators, observers,
             | strategies, chains of responsibilities, SAGA, CQRS, log
             | aggregation, distributed tracing, exception tracking to
             | consume 90% of our productive time? 10% for actual
             | functionality should be enough."
        
         | unxdfa wrote:
         | Fair but I wanted to be a fighter pilot because the money was
         | better than driving a bus. So I learned c#. The company I
         | worked for, a software dev house, said that they were VB only
         | be they wouldn't bring in c#. They died within 6 months of me
         | and everyone else leaving.
         | 
         | C# and .Net was a gold rush. VB was only valuable where the
         | primary business function was not software delivery.
        
         | codeulike wrote:
         | VB to VB.NET was more to do with .NET arriving with the .NET
         | Framework, and one of the reasons for the .NET Framework was
         | all about keeping up with the (at the time) amazing
         | framework/core library that Java had. It was also about web
         | front ends which of course VB6 could not do.
         | 
         | In the old days people used to custom-build massive CRUD
         | desktop database applications for their company to use
         | internally and I built some of those in VB6. Loads of
         | UserControls nested inside each other, solutions with multiple
         | DLLs, you could do it but it was really clunky. Error handling
         | was rubbish. I had also built things in Java and could see what
         | VB6 was missing. .NET fixed that.
         | 
         | So I guess the _3 percent of Visual Basic 6 bus drivers who
         | actively wished to become fighter pilots_ were probably people
         | who had used Java. Java was free, if you didnt want an IDE.
         | Whereas VB6 was actually quite expensive (can anyone remember
         | the cost of a VB6 Pro license?)
        
           | sharemywin wrote:
           | Standard was like $79
           | 
           | Pro $495
        
           | lincpa wrote:
           | [dead]
        
         | bazoom42 wrote:
         | The problem wasn't they added more advanced features to the
         | language, the problem was they changed the whole development
         | environment in a backwards-incompatible way.
        
         | orthoxerox wrote:
         | VB.NET wasn't that different as a language, it was more of a
         | Python 2/3 situation. Lots of overall improvements, but not
         | backwards compatible. Terrible, but not catastrophic. What MS
         | did was break the whole ecosystem.
         | 
         | VB6 had thousands of third-party libraries distributed as
         | VBX/OCX controls. VB.NET had effectively zero, because it could
         | only use the new WinForms controls. You could upgrade your
         | codebase to VB.NET using a wizard (that would often fail), but
         | if your software relied on OCX, there was no way forward.
        
           | mysterydip wrote:
           | This could be implied with your python comparison, but
           | meanings of things changed as well. For example dim foo as
           | integer(5) in vb6 would give you 6 elements (0-5) of a 16 bit
           | numeric type. In .net it would give you 5 elements (0-4) of a
           | 32 bit numeric type.
           | 
           | For those curious, a really good list of changes is here:
           | http://www.thescarms.com/vbasic/vb6vsvbnet.aspx
        
             | teh_klev wrote:
             | > For example dim foo as integer(5) in vb6 would give you 6
             | elements (0-5)
             | 
             | Then add into the mix the "Option Base" statement, which if
             | it was declared as "Option Base 1" your aforementioned
             | array would only have elements 1-5. Trying to access
             | element 0 would incur a "Subscript out of range" error.
        
             | groestl wrote:
             | Guess the Python ref is even more fitting then, given their
             | controversy around the meaning of bytes / strings ;)
        
         | pungentcomment wrote:
         | I wish I could upvote you more than once. I'm not a bus driver
         | but a truck driver though lol.
        
       | heap_perms wrote:
       | I started with visual basic. It was my first programming
       | language, It will always hold a place in my heart. For beginners,
       | having a UI is very important i think. Visual basic was unique in
       | being able to click to together your UI.
        
       | yc-kraln wrote:
       | I started programming with VB4, and built a lot of cool stuff in
       | VB6. Went on to learn C++, C, Python, and a bunch of other cool
       | languages to build a bunch of cool things.
       | 
       | Nothing really quite feels as approachable for a beginner as VB
       | did, those days.
        
       | lukasb wrote:
       | So? Why HASN'T anyone built Visual Basic for the web?
        
         | est wrote:
         | The web is a mess compared to text/binary data we had to deal
         | with in the 90s and early 00s.
         | 
         | Personal Computers used to be a productivity oriented tool. VB6
         | was designed to handle business data. Today mobile phones are
         | like sentiment manipulation devices or consumerism sinkhole.
         | Could iPhone owners created apps on their iPhones? No. It's a
         | ready-only OS.
        
           | yCombLinks wrote:
           | Yeah, but I can't even write a standard desktop GUI app
           | nearly as easily as 25 years ago. Even a desktop first web
           | app should be simple
        
         | zubairq wrote:
         | Well "Visual Basic for the web" can mean many things. If you
         | mean just an app builder online, then there are hundreds of
         | options, the most popular probably being Retool or Bubble. Or
         | do you mean run locally like Visual Basic and then output to an
         | intranet web browser? Also, do you need basic language, or will
         | Javascript be enough? For me, what is important is the spirit
         | of Visual Basic, easy to use local applications that can be
         | distributed as standalone apps, and an amazing component
         | ecosystem
        
         | piggybox wrote:
         | I don't know. VB is still 10x easier than React. The gap is so
         | obvious.
        
         | omnibrain wrote:
         | There are several approaches to building Delphi for the web I
         | talk about here: https://news.ycombinator.com/item?id=35046667
        
         | bzzzt wrote:
         | Lots of companies offer "low code" or "no code" tooling
         | nowadays. Only no company has market monopoly power anymore to
         | be a focus point like Microsoft was in the 90s.
        
         | mike_hearn wrote:
         | Beyond the other issues like styling, components were a big
         | part of the VB experience and they had several features that
         | the web hasn't been able to match:
         | 
         | 1. They exposed metadata that let them be installed into visual
         | designers and have their properties/events be controlled
         | visually.
         | 
         | 2. They could be compiled native code, which allowed people to
         | integrate licensing and make a commercial marketplace for them.
         | 
         | 3. They could be written in other languages like C++, allowing
         | VB devs to rely on harder-core programmers to solve some gnarly
         | library or algorithmic problem that was then exposed to them
         | semi-visually.
         | 
         | The web has settled on React components for this but they don't
         | satisfy any of those above features.
         | 
         | There's also a deployment issue. VB apps were "deployed" by
         | just sending someone the EXE, or sticking it on a shared
         | network drive, or maybe building an installer for them. There
         | was absolutely no auto-update story whatsoever if you weren't
         | using a Windows SMB mount which is why the web eventually
         | displaced it, _but_ it was really damn easy to get that first
         | version to people, much easier than for a website (until PHP
         | with shared web hosting got popular).
         | 
         | These days EXEs are much harder to make and send around due to
         | safety features. There's code signing to contend with but also
         | the expectation that you don't impose a choice of OS on users,
         | maybe that you support mobile, that the app will update itself
         | in case of bugs and so on. It's slowly coming back though. With
         | Flutter you can make a mobile app using the app stores to do
         | update, and then bring it to the desktop using Hydraulic
         | Conveyor (my product) to do updates and packaging on the
         | desktop with Codemagic or GitHub Actions to produce the
         | binaries for each platform.
        
           | mwcampbell wrote:
           | My recollection is that VB6 deployment got messy when you
           | started stringing together lots of third-party components,
           | since they had to be installed and registered system-wide.
           | Windows XP introduced registration-free COM through SxS
           | manifests, but a lot of us couldn't use that for years after
           | XP came out, because we had to keep supporting 9x and maybe
           | 2000.
        
             | mike_hearn wrote:
             | Yeah, once data files, OCX controls and more got involved
             | you had to build an installer and Microsoft didn't provide
             | any solutions for that until MSI came along. And
             | InstallShield was expensive. So that hurt VB just as people
             | were moving towards the web where you didn't have any
             | dependency issues like that (assuming all the servers were
             | online).
        
         | pavlov wrote:
         | I have some experience here and can share my frustrations... I
         | wrote the original version of a product named React Studio
         | (https://reactstudio.com). It's sort of a "VB for the modern
         | mobile-first web". Unlike VB though, it's runtimeless and
         | exports regular React code (there's no closed blob or mandatory
         | custom packages in the output).
         | 
         | An enormous thing that has changed since the 1990s and those
         | halcyon days of Visual Basic is the central role of design.
         | Back then, overall consistency was a pillar of desktop UI. If
         | your app's buttons looked like Windows buttons and you could
         | use Tab to move through input fields, that was usually good
         | enough. VB provided that kind of usability out of the box. The
         | PC platform was fairly homogenous: you could assume that your
         | user has at least a 800*600 screen, so you'd just make your
         | application window that size and the MVP can ship.
         | 
         | Today's UI designs must deal with an enormous variety of
         | physical form factors and display resolutions. But even if your
         | no-code tool is able to deal with this and provides a
         | consistent UI that scales from phone to desktop, it's not
         | nearly enough. Commercial visual branding has replaced
         | consistency as the central pillar of UIs. Now your buttons must
         | never look like default buttons, and your UI must use a custom
         | font even though the OS standard font would be more readable.
         | This is simply what customers believe they want.
         | 
         | Unfortunately the web is a very poor platform for expressing UI
         | designs in a consistent way, so literally everyone has their
         | own haphazard UI framework. Basic components like pop-up menu
         | buttons are commonly written from scratch. Nobody can agree on
         | how to style a button. Et cetera ad absurdum. Your no-code tool
         | should somehow integrate into this customer-specific private
         | universe. On top of this mess, your primary input is visual
         | designers who draw static pictures of applications in Figma and
         | expect those to be translated into code. Often these designs
         | are entirely lacking in structural thinking. (These designers
         | typically come from a graphic design background, so they are
         | very interested in fonts and padding widths but have never read
         | the Apple Human Interface Guidelines or any other UI
         | fundamentals. Hence they're mostly concerned with making sure
         | any prototype application looks exactly like their Figma
         | document.)
         | 
         | In my experience, the only reasonable way out of this trap is
         | to focus on applications that are not of interest to the
         | designers, i.e. internal business tools. Retool seems to be
         | very successful here. I also use Retool in my day job and
         | appreciate its no-nonsense design.
        
           | mike_hearn wrote:
           | You can also plot a middle path. JavaFX Scene Builder for
           | example supports CSS, style sheets and custom themes, but
           | also supports visual design and layout. However people with a
           | graphics design background would still need to learn a bit of
           | UI design like how to make responsive layouts, and they
           | wouldn't be able to use Figma anymore. Animation also isn't
           | that well supported. Still it can be done, it's mostly a case
           | of investment.
           | 
           | The Jetpack Compose guys are trying to do it the other way
           | around - generate layout code from Figma files.
        
         | vb6sp6 wrote:
         | [dead]
        
       | 752963e64 wrote:
       | [dead]
        
       | kome wrote:
       | What are some contemporary clones of VB6, still maintained and
       | useful?
        
         | tomcam wrote:
         | There is only 1 such viable product, Xojo.
         | https://www.xojo.com/
         | 
         | I haven't used it since it was called RealBasic ages ago.
        
         | fafalone wrote:
         | I'm a big fan of twinBASIC, more successor than clone.
         | 
         | It's working on full backwards compatibility with VB6 (and
         | very, very close to it, even many complex UserControls work),
         | with a lengthy list of new features (x64-- through compat. with
         | VBA7 x64 syntax, multithreading (via API for now, native syntax
         | soon), generics, overloading, Unicode-everything, defining
         | interfaces/coclasses in language instead of TLBs, easily makes
         | standard DLLs, Implements-Via syntax to extend classes,
         | parameterized class constructors, can specify UDT packing,
         | bitshift operators, inline initialization of vars, forms
         | support modern image formats/transparency/alpha blending,
         | AddressOf works on class members... well, the list goes on for
         | quite some time:
         | https://www.vbforums.com/showthread.php?890181-TwinBasic&p=5...
         | 
         | One thing I'm sure lots of people here will find blasphemous,
         | it lets you make kernel mode drivers, provided you stick to WDM
         | (you could do this as a hack in VB6, but you had to strip the
         | runtime dependency out-- which dramatically limited usefulness,
         | not to mention no WOW64 for kernel mode. tB has no runtime
         | dependency so all you have to do is avoid strings/variants/most
         | but not all arrays, as those call user mode APIs behind the
         | scenes). Proof of concept:
         | https://github.com/fafalone/HelloWorldDriver
         | 
         | Main downsides are that it's also like VB6 in being closed
         | source/commercial (only restriction on the free version is a
         | splash screen on x64 exes though, and won't have access to
         | compiler optimizations or cross-platform compilation when
         | they're implemented; no restriction on commercial use or
         | royalties), but the creator seems amenable to changing that if
         | it's viable, and since we've had 20 years of no community
         | stepping up for something like this, it's just a practical
         | matter that for one person to do it they'd need income as it's
         | a major undertaking, not something you can do as a hobby with
         | full time employment doing something else, at least if it's
         | going to get done in years instead of decades (*cough*
         | Radbasic, which has made near zero progress after being
         | announced around the same time, and is barely a step above
         | Hello World support).
        
         | clouddrover wrote:
         | Delphi: https://www.embarcadero.com/products/delphi
         | 
         | Lazarus: https://www.lazarus-ide.org/
        
           | timw4mail wrote:
           | Lazarus looks so promising...but their documentation is so
           | scattershot.
        
       | specproc wrote:
       | I can remember doing stuff in VB when I must have been 14 or so.
       | Coming to it from QBASIC it felt incredibly powerful and
       | incredibly complicated.
       | 
       | I think I managed to cobble together a simple form that informed
       | the user the computer had a "virus", made it up as an .exe, and
       | stuck it on a timer on the family computer for shits and giggles.
       | 
       | Good times.
        
       | qup wrote:
       | I spent a couple weeks downloading a pirated vb6 with a download
       | manager that could resume. I think it was 1GB, on dial-up.
       | 
       | Once I had it installed I had like 6mb free space.
       | 
       | I made a bunch of AO-progz and an mp3 player. And a bunch of
       | friends in #vb6 on aol, which I keep to this day.
        
         | SoylentYellow wrote:
         | My first experience with programming was creating my own fader
         | for AOL. Great times.
        
           | qup wrote:
           | Did you release it? What was it?
        
         | nickstinemates wrote:
         | :) we probably crossed paths, good times
        
           | chrismarlow9 wrote:
           | Checking in. I learned OSCAR and YMSG before HTTP. I recently
           | tried to find a modern vb6 type setup that wasn't DOM
           | (electron style) based and works cross platform. Best I found
           | was javafx and scene builder.
        
             | sam345 wrote:
             | You might try Lazarus Ide. Very much like VB6 though
             | language is free pascal. Actively developed, good
             | documentation, and lots of libraries. https://www.lazarus-
             | ide.org/
        
         | duncans wrote:
         | It would have been around a few 100MB as most hard drives were
         | less than 1GB back then.
        
           | bombolo wrote:
           | When vb5 was around my hard drive at home was 3GB.
        
           | newusertoday wrote:
           | to put things in perspective this article is bigger than
           | 100mb so bigger than vb distribution!
        
       | wslh wrote:
       | As a system programmer who used VB6 as a glue or ochestrator
       | (early 2000s) of low level components I say the only important
       | flaw I found was on its single threading model.
       | 
       | In the 2000s VB was rusty but amazed me when I remembered that
       | pedantically (shame on me) criticized the VB developers of the
       | 90s against the C/C++ hardcores. It was on high school though.
       | Nerd issues.
        
         | rprospero wrote:
         | I also remember my dismissive high school analysis of VB and
         | wouldn't mind an opportunity to slap my younger self for blind
         | dogmatism. However, I also remember that the fight was a two
         | way street. My high school had classes in both VB and C++ and
         | there were multiple calls from the local business community to
         | cancel the C++ class. There was no reason to teach a dead
         | language when knowledge of VB was enough for a lifetime career.
         | Especially with the emerging web, where companies would need a
         | ready supply of VB script developers and ActiveX control
         | creators for their sites (JavaScript would be deprecated once
         | the last five people using Netscape came to their senses).
        
         | fatnoah wrote:
         | > As a system programmer who used VB6 as a glue or ochestrator
         | (early 2000s) of low level components I say the only important
         | flaw I found was on its single threading model.
         | 
         | As a developer cutting my professional teeth in the late 90's /
         | early 2000's, VB was amazing for building utilities and other
         | bits of software run by individuals on their machines. When we
         | tried to reuse components built for those applications in our
         | web applications, issues with the threading (single threaded
         | apartment) model soon became apparent, so we rewrote those in
         | C++ in order to support the level of concurrency we needed.
        
       | hnthrowaway0315 wrote:
       | I didn't know when I first used it, but UED the first version of
       | Unreal Editor was written in VB with a C or C++ rendering engine
       | embedded.
        
       | jkingsbery wrote:
       | When I started to learn programming in the mid-90s, it was still
       | common to not have home Internet (or, if you did, it was too
       | expensive to spend the whole day online). I learned a lot of
       | programming from the VB helpfiles, a random book on VB from
       | Barnes and Nobles, and recording VB macros in Excel and
       | frankenstein-ing them back together to do different things. In
       | particular, learning from recording macros and seeing the command
       | was a very intuitive way to learn - I didn't have to guess at
       | what the first version of a program would do.
        
       | dsiegel2275 wrote:
       | Wow, brings back lots of memories. In high school I got started
       | writing VB3 for my father's small software development company.
       | I'd end up working full-time there for a handful of years after
       | college, really pushing the boundaries of what one could do with
       | Visual Basic. I don't think there's a single tool or language
       | that I've loved more than it in my entire career.
       | 
       | Twenty-seven years later, still one of my proudest
       | accomplishments is to have had a multi-year project that I worked
       | on featured in "Visual Basic Programmer's Journal".
        
       | bluelightning2k wrote:
       | This article was really, really well written and researched.
       | Cudos!
       | 
       | Even the bridge at the end back to their product was well done
       | (they're usually abrupt).
       | 
       | Excellent piece of journalism and content marketing
        
         | lproven wrote:
         | BTW, it's "kudos".
         | 
         | The OS for the machine Linus Torvalds started on, the Sinclair
         | QL, was called QDOS as a pun.
         | 
         | The original codename for 86DOS, which became MS-DOS and made
         | Microsoft rich, was also QDOS, for the same reason.
         | 
         | Because cue-doss sounds like "kudos".
        
       | fjfaase wrote:
       | VB6 is often underrated as a programming language, but it did
       | have some neat things that are still not present in existing
       | programming languages. (They were dropped in VB.NET.) In a sense
       | VB6 is still ahead of its time.
       | 
       | One is the transparent intergration with COM objects, allowing
       | you to access objects in another process (possibly from a
       | different executable) in exactly the same way as in-process
       | object. All the marshalling is done under the hood. The only
       | problem with this is that the execution of a single statement
       | could be intermixed with another statement in another thread. I
       | once had to deal with a nasty bug that was obscured by this fact,
       | which was actually caused by using a programming mistake where
       | someone had used a global variable for something that should have
       | been a method argument.
       | 
       | The other is the very nice event mechanism where there is no need
       | to (un)register event handlers. They are automatically registered
       | and unregistered. Very powerful mechanism that I started to use
       | more and more the longer I worked with VB6.
        
         | melony wrote:
         | The integrated debugger was also excellent. Outside of Lisp,
         | few languages have decent support for Edit and Continue.
         | 
         | https://blog.codinghorror.com/edit-and-continue/
         | 
         | I think Java and .Net are pretty close. It is utterly shameful
         | that languages like Python and JavaScript consider themselves
         | to be developer friendly when their debuggers still require
         | full reloads whenever the local state gets modified in place.
         | Common Lisp had Edit and Continue (equivalent functionality in
         | their debugger) before the dotcom crisis.
         | 
         | Vercel and Microsoft product managers, if you are reading this,
         | please implement this feature in Next.js, VS Code, and
         | Typescript.
        
         | draw_down wrote:
         | [dead]
        
         | teh_klev wrote:
         | > One is the transparent intergration with COM
         | 
         | I think this is one of the things detractors of VB kinda miss.
         | You could build quite sophisticated software to leverage
         | COM/DCOM without needing to go full C/C++ and IDL.
         | 
         | The place I worked at built software that ran inside Microsoft
         | Transaction Server (latterly COM+) to exploit distributed
         | transactions.
         | 
         | And then there's the really "advanced" stuff you could do in VB
         | as written about by Matthew Curland in his excellent book
         | "Advanced Visual Basic 6: Power Techniques for Everyday
         | Programs"[0]. Armed with a copy of Curland's book and Don Box's
         | "Essential COM" you could be really dangerous :)
         | 
         | [0]: https://www.amazon.co.uk/Advanced-Visual-Basic-
         | Programming-D...
        
         | jlarocco wrote:
         | I've had good luck using Python with COM. It has some rough
         | edges, but it works well enough, and can even tab complete
         | methods and accessors in the REPL.
         | 
         | Here's an old example working with Catia:
         | https://gist.github.com/jl2/2704426
        
       | throwawaaarrgh wrote:
       | You know why Visual Basic was the best programming language ever
       | made? Because it wasn't a programming language.
       | 
       | Nerds just can't wrap their heads around this idea: no normal
       | person wants to be a programmer. But they do want to make little
       | custom things to help them get stuff done in life. Just like
       | nobody wants to be a plumber, but they do want to be able to fix
       | their faucet.
        
         | rejectfinite wrote:
         | That's kind of what scripting languages are.
        
         | pif wrote:
         | Visual Basic shares a fundamental truth with Internet Explorer:
         | popular does not imply good.
        
           | bazoom42 wrote:
           | VB was great though. Maybe the syntax was a bit clunky, but
           | the overall developer experience was far ahead of other
           | languages. Integrated debugger, edit-and-continue, code
           | completion etc.
        
           | kitd wrote:
           | Well, except that VB didn't become popular simply by being
           | shipped by default on millions of Windows desktops. It earned
           | it's popularity by scratching a huge itch (at the time).
        
         | Pamar wrote:
         | Sorta like Excel, then?
        
           | deafpolygon wrote:
           | And Access! That's one amazing piece of software.
        
             | fredsmith219 wrote:
             | Access could easily become a victim of its own success if
             | the dataset got too large. I made some money off of a
             | couple projects where that happened. I had to convert them
             | to sqlserver to both handle the data load and for true
             | multiuser.
        
               | deafpolygon wrote:
               | That is true. People don't understand that there is an
               | upper limit to Access before you run into issues - but
               | it's fairly large.. what was it? 4GB?
               | 
               | Edit: 2gb!
        
               | lproven wrote:
               | It's worse than that.
               | 
               | The thing that imposes these limitations is the somewhat
               | primitive DB engine for Access, which is codenamed MS
               | Jet:
               | 
               | https://en.wikipedia.org/wiki/Access_Database_Engine
               | 
               | But the big that MS & MS fans don't like to mention is
               | that MS Exchange Server uses a version of _the same
               | storage engine_.
               | 
               | It's not mentioned even once in these Wikipedia articles,
               | for instance, but if you look, you will find telltale
               | giveaways such as Exchange store size limitations:
               | 
               | https://en.wikipedia.org/wiki/Microsoft_Exchange_Server
               | 
               | https://en.wikipedia.org/wiki/History_of_Microsoft_Exchan
               | ge_...
               | 
               | However, if you dig a little, you'll find that the
               | underlying storage engine is _also_ codenamed  "Jet":
               | 
               | https://en.wikipedia.org/wiki/Extensible_Storage_Engine
               | 
               | Jet Red vs Jet Blue. Totally different, honest.
               | 
               | These days, it's also used in trivial unimportant Windows
               | subsystems such as -- er -- Active Directory, Windows
               | Update, and the Windows Search indices.
               | 
               | Yes, the fragile, essentially single-user, easily-
               | corrupted Access DB engine is an integral part of Windows
               | Server.
               | 
               | Which is a bit odd considering MS also owns SQL Server
               | (bought in from Sybase), and could in principle use that
               | instead, which does not have these built-in limitations
               | and is rather more robust.
               | 
               | Access was in part built in response to Lotus Approach,
               | which brought Claris Filemaker-like simplicity to Windows
               | end-user databases. MS could not tolerate that, so built
               | its own Approach-killer, which was vastly more complex.
               | It acquired FoxPro, a dBase III/IV clone, for its very
               | fast indexing functionality, which was bolted onto MS
               | Cirrus to make Access, and the rest of FoxPro went
               | largely unmaintained until it could be discontinued.
               | 
               | Exchange Server of course replaced MS Mail, which was
               | _also_ bought in and was previously called Network
               | Courier from Consumers Software. Other MS purchases
               | include Powerpoint, Frontpage, Visual BASIC, and Visio.
               | 
               | There is a general pattern evidence in 1990s MS software
               | which isn't universal but widespread. If it's lean, mean,
               | simple, fast, or elegant, it was bought in. If it's
               | overcomplex, fragile, has bizarre limitations for non-
               | obvious reasons, and needs careful maintenance, it was
               | built in-house, probably in response to a successful
               | competing product.
        
               | jjkaczor wrote:
               | Sigh - don't get me started on Jet engine DB
               | corruption... You wink at it, over a network with more
               | than a single user - and you have a chance of
               | corruption...
        
               | lproven wrote:
               | Exactly!
               | 
               | (I was a certified Exchange admin, in the 1990s, and have
               | cleaned up several big corporate systems that collapsed.)
               | 
               | It is _not_ the tool you want for business-critical
               | shared network data stores.
               | 
               | And yet, the pairing of Exchange and Outlook is _THE_ MS
               | critical tool that 's won them a million corporate
               | accounts.
               | 
               | That's a million corporates, of course. Not seats.
               | Hundreds of millions of seats.
        
               | nereye wrote:
               | The other competitor was Borland Paradox.
               | 
               | IIRC there is an easter egg in Microsoft Access 1.0 where
               | the About box changes to an animation of a pond with two
               | ducks in it that are then hit by lightning from a cloud
               | above. I.e. a cirrus and a 'pair of ducks'...
        
               | philbarr wrote:
               | Aaah - back in the day when we used to link 26 Access
               | databases together, one for the first letter of a
               | customer's surname... :)
        
               | whstl wrote:
               | You can add "built a custom database partitioning system"
               | to your resume. :)
        
               | whstl wrote:
               | Funny: back in the late 90s I ran a quite large (for the
               | time) discussion board and everything was stored in an
               | Access MDB file, similar to how people try to do today
               | with SQLite. I didn't know better, that's how I though
               | things worked.
               | 
               | It worked quite well for several years, until of course I
               | reached a limit (which was much smaller than 4GB), and I
               | had to delete old posts.
        
               | kwhitefoot wrote:
               | When I worked with Access it was normal to separate the
               | database into separate front end and back end. Then when
               | the quantity of data or latency got too large you could
               | easily convert that to SQL Server.
        
             | bena wrote:
             | No. Fuck Access. Access is a useless piece of software that
             | serves no purpose well.
             | 
             | Either your data is small enough to be managed by Excel or
             | your data is complex enough to be better served by a
             | database and frontend.
             | 
             | Dealing with the idiosyncrasies of Access is never worth
             | it.
        
               | deafpolygon wrote:
               | If you have a spreadsheet on a share that you'd like
               | multiple people to have _concurrent_ access to, Excel is
               | not the way to go (until now; nowadays you can just put
               | it on OneDrive and add access). Access was perfect for
               | that kind of configuration for a small office that you
               | could customize a small database without being a DBA.
               | 
               | I use it for a few hobby things and it's fun. Drag and
               | drop a few things in a form, add a couple fields and
               | you're good to go! Sure beats having to write SQL by hand
               | and a few hundred lines of Python to interface with it;
               | and that's before you write the UI for it.
               | 
               | I wish MS would spend a little bit of that R&D budget to
               | improve on it some more, and expand its capability. But
               | that'd cannibalize their other products, likely. It's too
               | niche nowadays.
        
               | cutler wrote:
               | So how do you build a desktop database with a staff user
               | interface for a small business running on a couple of
               | Windows desktops?
        
               | bena wrote:
               | If you're ok with your data being duplicated in multiple
               | files, you're ok with Excel.
               | 
               | If you want your data centralized, with the application
               | being a portal to that data, you use a database with a
               | frontend built in your choice of language.
        
               | anthk wrote:
               | Lazarus + SQLite. Problem solved.
        
               | namaria wrote:
               | "Why don't everyone drive the same car as me? Dress the
               | same as me? Read the same books, watch the same series,
               | talk to the same people? It's clearly working great for
               | me! Buncha rubes!"
        
               | snapcaster wrote:
               | Why won't you accept this isn't a workable solution for
               | the vast majority of people? Comments like this give me a
               | brief moment of wanting every engineer in tech (me
               | included) to be laid off and replaced with excel people
        
               | bena wrote:
               | Why isn't it?
               | 
               | If your situation has reached the point where Excel is no
               | longer a workable solution, you need a full application.
               | I've never seen an Access application that didn't grow to
               | a point where it wasn't a glitchy mess requiring a
               | rewrite as a full stand-alone application. So you might
               | as well skip that step and go straight to the stand-alone
               | application.
               | 
               | It's an unnecessary bridge.
        
               | snapcaster wrote:
               | You understand that the people who are making Excel and
               | Access apps aren't professional software developers
               | right?
        
             | afavour wrote:
             | IMO Access is the real undervalued hero. Most spreadsheets
             | using more than a few VLOOKUPs should really be a simple
             | database instead.
        
           | jdiez17 wrote:
           | Excel is another amazing piece of software, that is almost
           | universally looked down upon by programmers. Why make complex
           | calculations in a GUI if you can just write a Python script
           | with numpy and pandas!?
           | 
           | And yet, so much of the world runs on excel spreadsheets
           | being sent back and forth. Why? Because 1) it has a low skill
           | floor and very high ceiling, 2) everyone uses the same tool
           | (or at least it's backward and forward-compatible), and
           | (critically) 3) it has a "programming model" that actually
           | makes sense to the vast majority of people.
           | 
           | Same with Arduino, by the way. I think Arduino is a
           | masterpiece. It allows people that don't even consider
           | themselves programmers to write code for embedded systems
           | with ease (traditionally a very hard thing to do). They go to
           | the Arduino website, download a program, open an example,
           | click a button and it works.
           | 
           | Also, the libraries are designed to be used by non-experts.
           | That's so rare in the software world (and I don't know why*).
           | 
           | * I have some guesses but they are not nice to the
           | programmers that make and use trendy software libraries.
        
             | kitd wrote:
             | _Excel is another amazing piece of software, that is almost
             | universally looked down upon by programmers._
             | 
             | I read somewhere that there are 10 x more Excel
             | "programmers" in the world than programmers for all other
             | languages put together.
        
               | 7thaccount wrote:
               | To give a little anecdote, my 600 person company probably
               | has 200+ engineers (mostly electrical with some
               | mechanical). I'd say that 1/5 has some programming skill
               | in Python or C# and 1/10 probably is pretty decent and
               | spends 5+ hours a week writing code. I'm fairly confident
               | that all 200/200 are competent Excel users with most all
               | spending 10+ hours a week doing spreadsheets mapping data
               | together and analyzing it. Pandas is great, but if you
               | don't need all the stats and the dataset fits in the
               | spreadsheet, Excel beats it hands down in most uses.
        
               | AnIdiotOnTheNet wrote:
               | I would not be surprised. I have said before that Excel
               | is the most widely used programming environment in
               | history and will continue to be so for the foreseeable
               | future, and it is all precisely because it provides users
               | an on-ramp to programming in a domain where it is sorely
               | needed.
        
               | namaria wrote:
               | Whenever I hear someone hyping up some lowcode/nocode
               | thing or asking about it, I point them to Excel and
               | Access and say "that concept is older then Python, and
               | it's not going anywhere".
        
             | runlaszlorun wrote:
             | As someone with an MBA (I know... forgive me father for I
             | have sinned) I actually had been thinking that simple
             | Python and maybe something like Jupiter might actually be a
             | great alternative for spreadsheets while teaching business.
             | 
             | I not knocking spreadsheets- they've obviously stood the
             | test of time. I feel their weakness is that the formulae
             | are hidden and you'd need to click on individual cells to
             | make sure their isn't a logic error.
        
               | jdiez17 wrote:
               | Don't get me wrong, I think Jupyter Notebooks are great
               | if you are a programmer or want to learn programming.
               | 
               | But there's a massive usability gap between downloading
               | an application and "open the command line, run pip
               | install jupyter, oh pip is not installed, google the
               | error message, copy and paste this command from a random
               | website, try again, etc". It's better now with JupyterLab
               | Desktop, but that's only been around for a few months.
        
           | DeathArrow wrote:
           | You can program Excel using Visual Basic for Applications. At
           | one of my former workplaces, a backend colleague of mine
           | built a functional prototype of a new feature in Excel using
           | VBA in far less time it took whole UI + frontend teams to
           | build the same.
        
             | 7thaccount wrote:
             | It can be pretty nice to add a button to your spreadsheet
             | that fires off a VBA macro that runs some code in the
             | background.
             | 
             | I just wish Microsoft made the whole experience a lot
             | better as writing VBA is a bit confusing.
        
           | throwawaaarrgh wrote:
           | _Exactly_ like Excel! Both tools designed to let regular
           | people achieve superhuman feats of computing without changing
           | careers.
        
         | namaria wrote:
         | I think you're conflating programming with coding. Us nerdy
         | types like coding because it's so flexible and powerful. But
         | setting an alarm is programming, as much as building a
         | spreadsheet etc. Using a computer device for anything more then
         | consuming media involves some degree of programming it.
         | Everyone is a programmer now.
         | 
         | But there is a big difference between being able to build and
         | deliver software starting from nothing but a directory full of
         | code and configuring point and click interfaces. Most people
         | don't need to be coders. They just need to be able to program
         | their computers a little bit.
        
         | pif wrote:
         | The problem arises when a clueless manager sees your tiny
         | custom 50-line program and makes it responsible for anything
         | more complex than a water dispenser, with the author and his
         | boss praising the "simplicity" and "ease of development" of
         | what is going to become the bane of the organization for the
         | following decades.
         | 
         | I do understand that most people don't want to be programmers,
         | and that's fine. At the same time, professional software
         | development needs professional software developers.
         | 
         | Sure, most of us like to be able to fix a faucet, but would you
         | trust a hobbyist plumber to design and maintain the toilets of
         | the Yankee Stadium?
        
           | runlaszlorun wrote:
           | Does this really happen often? I'm not saying it doesn't,
           | I've just heard the claim repeated often while never having
           | seen it myself. Maybe because every project I've been on was
           | far over-complicated rather under.
           | 
           | A small, crappy prototype would also go far in sussing out
           | requirements. But I've generally not seen that included
           | enough in the development process for most big corporate
           | internet projects.
        
         | zubairq wrote:
         | Wish I could +100 this comment!
        
         | mhd wrote:
         | > Nerds just can't wrap their heads around this idea: no normal
         | person wants to be a programmer.
         | 
         | I'm coming to the exact opposite conclusion: A lot of people
         | benefit from programmin _a little_.
         | 
         | Which, at the time when VB came out, was a very popular
         | opinion. Still enough computers around with BASIC as their
         | interface. User-focused databases like dBase. Spreadsheets.
         | 
         | VB was a bit in the uncanny valley between "professional" and
         | user-focused programming, which is the main source for most
         | negative opinions about it.
         | 
         | I still think that more end-user programming is the right
         | choice, but now that our software runs on someone else's
         | computer or is completely walled off due to manufacturer choice
         | or language cruft & learning curves, we've got our own little
         | priesthood. I don't believe that "AI" will change this, but we
         | would certainly deserve it.
        
           | mixdup wrote:
           | >> Nerds just can't wrap their heads around this idea: no
           | normal person wants to be a programmer.
           | 
           | >I'm coming to the exact opposite conclusion: A lot of people
           | benefit from programmin a little.
           | 
           | These are actually the same thing. There's a difference
           | between having a little power to shave off the rough edges of
           | your computing day as say an inventory specialist for a
           | warehouse and being a kernel developer
           | 
           | People benefit from a little bit of programming ability, but
           | they don't want to be _programmers_
           | 
           | Just like people benefit from being able to change their own
           | oil but don't want to be mechanics
        
           | runlaszlorun wrote:
           | Agreed. I'm working on something to try to get back to that.
           | But I've been bumbling through so many diff ideas that who
           | knows if it'll ever see a launch, let alone adoption.
           | 
           | I think it's fair to ask power users to come up a _little_ to
           | become a programmer, but then they get a much better system
           | to their liking.
           | 
           | I feel like there's so much unnecessary complexity these days
           | in different JS frameworks, CSS approaches, build and
           | dependency systems, etc.
        
       | recursivedoubts wrote:
       | The visual basic 6 debugging experience, where I could drag the
       | program counter around willy-nilly and edit code mid-debug,
       | remains the pinnacle of developer experience I have ever seen.
        
       | Kwpolska wrote:
       | The Visual Basic language always seemed weird to me, with two
       | ways to call a method, setting the return value using the equals
       | sign, the = and <> inequality operators, and other confusing
       | syntax bits.
       | 
       | > They didn't lament the lack of operator overloading or
       | polymorphism in Visual Basic 6, so they didn't say much.
       | 
       | Java still lacks operator overloading to this day. Also, VB6 had
       | properties, something that Java lacks to this day (and no, Lombok
       | doesn't count).
        
       | brunovcosta wrote:
       | I'm a super fan of Visual Basic!
       | 
       | I'm building a "visual basic" for Python in the VSCode
       | https://www.abstracloud.com/editor
        
       | pcdoodle wrote:
       | Bus driver moment:
       | 
       | As a young contractor I was told about an on premies lawn mower
       | kept getting stolen. I asked if there was a telephone line down
       | in that part of the buiding. Wrote them a vb6 app that monitored
       | a magnetic door contact sensor on the LPT Printer port with a vb6
       | timer that looked for a state change and would send AT commands
       | to the modem to call the on site manager if the door with the
       | equipment was opened during a non standard time. Took a few
       | minutes to do this in vb6 and clients were super happy.
        
       | dvdhsu wrote:
       | It was surprising to us (here at Retool) that visual programming
       | has never taken off, despite countless attempts over the past few
       | decades. (That's why we started Retool, after all.) But Visual
       | Basic is probably the product that came closest, and that's why
       | we wrote this homage to it. It, along with Filemaker, Hypercard,
       | are products that we loved. And we always wished that they had
       | flourished, since then we wouldn't have had to start Retool, hah!
       | As Linus says (in the article):
       | 
       | > "For example, I personally believe that Visual Basic did more
       | for programming than Object-Oriented Languages did," Torvalds
       | wrote, "yet people laugh at VB and say it's a bad language, and
       | they've been talking about OO languages for decades. And no,
       | Visual Basic wasn't a great language, but I think the easy DB
       | interfaces in VB were fundamentally more important than object
       | orientation is, for example."
        
         | Yhippa wrote:
         | These are the original low-code tools. Easy to pick up and your
         | average citizen developer could figure it out with some trial
         | and error. So much lost productivity due to whatever happened
         | in the next several decades.
        
           | XorNot wrote:
           | The biggest problem is that it's just impossible to use
           | modern coding tools with them. If we could fix that, so much
           | would work better. Even the best efforts at it haven't really
           | worked out, since there are some truly sprawling VBA
           | codebases out there (tried Rubberduck with a big MS Access
           | app for a business - reliably crashed it).
        
         | Turskarama wrote:
         | Visual programming is useful in some niches, but for general
         | purpose you either have to have less power than a text based
         | programming language (and users will beg you to add that power)
         | or it will become exactly as complicated as a text based
         | programming language, but more cumbersome because whatever
         | you're doing is slower than typing.
         | 
         | I feel like the whole idea of visual programming comes from
         | some fundamental idea that the hard part of programming is
         | learning the syntax, which I just don't agree with at all.
        
         | pcdoodle wrote:
         | Xojo is another one worth looking at. Desktop and Web apps can
         | be written pretty quick.
        
         | m_mueller wrote:
         | I wouldn't say it didn't take off, it just has 'landed' again
         | somewhere over the last 10-20 years. VB, Xcode Interface
         | Builder, Hypercard, Filemaker & Lotus Notes all had pretty good
         | runs, we just never got something similarly successful for the
         | web & even smartphones, probably due to compatibility issues
         | with varying screen sizes.
         | 
         | Once the screen can be wildly resized, it just becomes too
         | murky. Maybe have the programmer do it manually for 2-3 sizes
         | and then let some AI model interpolate the sizes in between?
        
           | mike_hearn wrote:
           | The problem isn't responsive design, GUI builders were able
           | to do that just fine. The problem with making it work on the
           | web was that the dominant design paradigm for web apps was
           | (and to some extent still is) templating, in which there's no
           | clean split between UI layout code and UI controller code and
           | no proper notion of encapsulated components. PHP, JSP, ASP
           | and the <script> tag all mix UI layout with code that works
           | with the database or controls the UI itself. Yet all VB-like
           | platforms require this to be split, because the GUI designer
           | has to be able to edit the GUI code without breaking your app
           | logic too badly, and they really need a strong component
           | model.
           | 
           | How they do this does vary, I don't remember how VB did it
           | but Delphi had a binary file format for describing forms,
           | Java Swing used IDEs with code generation inside magic
           | comments that you weren't supposed to touch, JavaFX and WPF
           | have the cleanest approach with an XML dialect for describing
           | the UI and then the event handlers and controller logic are
           | implemented as classes that are bound to the UI using
           | reflection, Android has something similar, macOS uses NIB
           | files and so on. And they all have a notion of a component
           | being something you can install and treat as if it were one
           | of the built-in widgets. On the web there's no equivalent to
           | this. React sort-of brings components but they don't provide
           | sufficient metadata to be used in a visual designer, and it
           | still mixes code and data together in such a way that visual
           | editors would struggle to not corrupt the user's code.
           | 
           | Ultimately the web came to dominate _not_ because it 's a
           | good way to do GUIs. It mostly tossed out what was learned
           | about making GUIs easy to use and develop, because it was
           | never designed to do that in the first place. It came to
           | dominate because it made distribution easy at a time when
           | desktop OS vendors were totally dropping the ball on
           | everything internet related. That's why classical VB-style
           | development app development paradigms dominate on mobile:
           | mobile OS vendors put way more thought into distribution, and
           | that took away the web's primary competitive advantage.
           | 
           | On the desktop distribution can still be quite hard, which is
           | why I put a lot of work into making a tool that makes it
           | drop-dead easy and which gives you the option of web-style
           | forced "immediate mode" updates (we call it "aggressive mode"
           | but that's kind of a dumb name). See my profile for a link.
           | It brings desktop way closer to the web in both UX and DX,
           | which opens up the possibility of VB style development again.
           | Not only for professional devs but also for people who
           | benefit from a lower barrier to entry.
        
           | dgb23 wrote:
           | People still use VB and Filemaker to make applications along
           | with very complex Excel spreadsheets. It's way more common
           | than the general sentiment here implies.
           | 
           | In fact, I get handed stuff made with tools like these
           | somewhat regularly in order to develop a web app. At some
           | point they become unwieldy and limiting.
           | 
           | I think it's wonderful that anyone with some technical
           | curiosity can make useful applications with these.
           | 
           | Of course they have a lot of limitations. But that's fine.
           | They can call a software developer when they actually need
           | one.
        
         | simonbarker87 wrote:
         | In science and engineering I would say LabVIEW has taken off. I
         | doubt there's a university in the world that doesn't have it
         | running in some capacity. Without learning LV I doubt I would
         | have learnt to code.
        
         | illiarian wrote:
         | > visual programming has never taken off, despite countless
         | attempts over the past few decades.
         | 
         | It has, in some niches like Unreal Blueprints.
         | 
         | I think one of the reasons it doesn't become more popular is
         | because most visual programming is just a more cumbersome and
         | slow way of programming. It's stringing the same concepts
         | together in the same way, but slowly and tediously with a
         | mouse.
         | 
         | Non-tech users wouldn't know what to do with it. Power users
         | would rather program directly.
        
           | badsectoracula wrote:
           | > It has, in some niches like Unreal Blueprints. [...] I
           | think one of the reasons it doesn't become more popular is
           | because most visual programming is just a more cumbersome and
           | slow way of programming. It's stringing the same concepts
           | together in the same way, but slowly and tediously with a
           | mouse.
           | 
           | The latter bit basically perfectly describes Unreal
           | Blueprints :-P.
           | 
           | It was hyped when it first came out and for some time (years)
           | it was well received - until people had to deal with the
           | spaghetti mess others made in blueprints.
           | 
           | Visual languages are fine as long as they are limited to high
           | level concepts, but UB not only is not that (there is even a
           | type cast node!) but instead of being there in addition to
           | Unreal Script, it actually replaced it, forcing many people
           | who didn't want to bother with C++ (especially Unreal's
           | flavor of C++) to use blueprints.
           | 
           | Epic supposedly learned from this and UE5 at some point will
           | have a new scripting language, but AFAIK so far it has been
           | vaporware. Meanwhile i (i am into gamedev and have worked
           | with UE) increasingly see people get disillusioned by
           | Blueprints.
        
             | qsort wrote:
             | I'm the last to defend visual programming, it's mostly
             | spaghetti nonsense and you'd be better of with an actual
             | programming language for most complexity levels -- but I
             | think there's a viable niche for stuff that satisfies
             | _both_ of the following:
             | 
             | (a) it's simple and it strings together off-the-shelf
             | components;
             | 
             | (b) it has an intuitive, well-defined computational model
             | 
             | examples: defining compositions of matrix transformations
             | for camera angles, defining data pipelines (read from this
             | source, do these operations, write to that sink), very
             | simple automation Apple Shortcuts-style (whenever I receive
             | a message from this number, make a note on this file, etc.)
             | 
             | As soon as you venture into general-purpose territory,
             | visual programming is just a disaster. Which is a problem
             | because you have _no way_ to convert your mini-idea into
             | something usable, and you always find yourself wishing you
             | had started with a normal script.
             | 
             | I tend to stay very far away, but it does have its moments
             | admittedly.
        
             | WillAdams wrote:
             | The thing is, using modules it should be possible to create
             | even higher-level concepts, so things should become more
             | expressive --- that's how I work in BlockSCAD.
             | 
             | The problem always becomes such expressions become just a
             | list of names of modules and their inputs, so one is back
             | to the wall-of-text problem which a visual tool is supposed
             | to solve --- the fundamental issue is, "What does an
             | algorithm look like"?
             | 
             | and the solution we need is, "What is the most expressive
             | way to create algorithms"?
        
           | Stratoscope wrote:
           | Originally Ruby had a Blueprints-like UI to connect an event
           | fired by one gizmo to a property of another gizmo. You would
           | right-click a gizmo, select an event, drag a line over to the
           | target gizmo and select a property.
           | 
           | In fact when Ryan first contacted me about the article, he
           | was looking for a screenshot of this UI. Alas, I didn't have
           | anything.
           | 
           | When Microsoft turned Ruby into VB, they abandoned this UI
           | and just kept the form designer with Basic as a scripting
           | language.
        
           | hnthrowaway0315 wrote:
           | BP is the only reason I don't want to play with UE. It's too
           | painful IMHO. I wish we had Unrealscript.
        
           | WillAdams wrote:
           | I find dragging-dropping and re-arranging far more expressive
           | for 3D modeling using BlockSCAD than I do the equivalent
           | OpenSCAD code:
           | 
           | https://www.blockscad3d.com/editor/
           | 
           | I'm trying to achieve a similar fluency using OpenSCAD Graph
           | Editor:
           | 
           | https://github.com/derkork/openscad-graph-editor
           | 
           | hopefully a future version will be even more useful than
           | BlockSCAD/Blockly.
        
         | fatneckbeard wrote:
         | VBA, a visual language, runs the entire planet, it's just that
         | nobody knows it or talks about it.
        
       | zubairq wrote:
       | Author of Yazz here (and a big Retool fan), I was a former C++
       | developer and seeing visual basic for the first time in the mid
       | 90s was a breath of fresh air for me. Now that I have time I"m
       | writing an open source passion project of what I wish Visual
       | basic could be in the modern age. So web based, uses Javascript
       | as the scripting language, and editable components. Thanks for a
       | great article Retool! :)
        
       | fatneckbeard wrote:
       | think people are missing, VBA is all over the place right now.
       | its not going away. because that's the only language that comes
       | pre-installed on a Windows machine in the average Office.
       | 
       | Any other programming language, from powershell to python, is
       | almost certainly locked off and blocked off by corporate security
       | policy and 10 layers of bureaucracy and organizational
       | organizational-ness.
       | 
       | This is how the world actually works. Because the half-broken
       | obsolete proprietary vendor systems that run the world's major
       | corporations need to be glued together to have any semblance of
       | efficiency, and that glue a lot of times is VBA.
       | 
       | It's basically the continuation of the PC revolution, the PC
       | within the PC if you will. Pushing out and decentralizing the
       | access to computing to the desktop of every employee.
        
       | jjkaczor wrote:
       | I picked-up a copy of VB1 (student priced, so... $140 CAD, IIRC)
       | - and built a few simple apps (Character creator/manager for
       | original Cyberpunk RPG, dice roller, bowling league management)
       | while I was in school.
       | 
       | Once I left school, I built a couple 'bespoke' commercial
       | applications; 'WinReal' (AFAIK, the first Windows-based real-
       | estate appraisal software - in Canada at least), 'WireStrand
       | Estimator' (would calculate multi-strand wire/cable material
       | requirements accounting for "twist-over-time" and number of
       | individual strands with or without a core strand) - and a retail
       | POS/accounting system used by a small local chain of 'CD' stores.
       | 
       | But - my real transition from 'glue together controls with some
       | simple logic' was when I was working on that retail/POS software
       | and suffered a project corruption and lost all the code...
       | 
       | ... to prevent this from ever happening to me again, I reverse-
       | engineered the .MAK format, and then wrote a simple version
       | control application that would use that to make copies of all the
       | contained files... (I guess I could have just pulled from a
       | directory folder, but - yeah, hindsight is 20/20 - I learned alot
       | and became a better code)...
       | 
       | Around the time of VB3, transitioning to VB4 - my corporate job
       | was having a devil of a time doing that, because they purchased
       | EVERY single VBX control on the market - but had no design
       | standards/governance around which could be used - so, we had an
       | application with about 90 different forms, and there were at
       | least 20-30 different 'textboxes/buttons' from different VBX
       | vendors spread throughout that (based on developer preference for
       | pretty icon in the control panel) - transitioning to VB4/OCX was
       | a nightmare, because not every vendor was also upgrading in a
       | timely fashion.
       | 
       | Myself, I had started outgrowing the constraints with VB3 for
       | personal/hobby/side-hustle projects - and ended-up using Delphi.
       | I could create and sell a standalone, single-file multi-media
       | screensaver - with not VB runtime dependencies. It was faster,
       | more powerful - but never caught-on for my commercial/corporate
       | clients. (In 20 years, I have only found 2 organizations that
       | used Delphi internally)
       | 
       | Ah... memories... Now no one lets me code anymore (well - in
       | compiled fashion - I do alot of DevOps/automation scripting)
        
       | dingi wrote:
       | Oh this brings back the memories of good old VB6. Never
       | encountered such a simple and easy to use UI builder after that,
       | probably because I left MS ecosystem for more open technologies.
       | Just drag and drop. Double click on the component and start
       | coding. How simple was that.
        
       | ChicagoDave wrote:
       | I'm fairly certain that the only way to originally purchase VB
       | 1.0 was an 800 number posted in Dvorak's weekly PC Info magazine
       | column. It was $99 and I borrowed it from my manager. I still
       | have the original manuals and 3.5" disks.
       | 
       | It was almost like Microsoft was sheepishly waving it and saying,
       | "maybe you'll think this is cool," while not directly challenging
       | their C++ audience.
        
       | Zardoz84 wrote:
       | Interesting... there is someone trying to create a modern Visual
       | Basic 6 compiler & IDE : https://www.radbasic.dev/
        
         | lproven wrote:
         | There are several.
         | 
         | https://gambas.sourceforge.net/en/main.html
         | 
         | https://www.b4x.com/b4j.html
         | 
         | https://www.freebyte.com/programming/compilers/envelop/
         | 
         | https://xbasic.sourceforge.net/
         | 
         | That's just a handful. There are or were more.
        
       | fabianholzer wrote:
       | The WYSIWYG GUI builder that VB provided, I have never
       | encountered afterwards again in quite that manner.
       | 
       | Now, in VBs heyday the field of UX design we now have as a
       | profession adjacent to software development was in its infancy
       | and was usually an implicit part of the developers job. What was
       | lost with the demise of the RAD tools was a potentially shared
       | medium of expression. Today designers build Potemkin villages in
       | Figma and the likes, throw them over the fence and as a developer
       | I then need to reverse-engineer them. How much more productive
       | would it be if they didn't throw something over the fence but
       | would actually build the UI in the same tool that the developer
       | uses to write the logic behind it?
       | 
       | And another thing: I don't know if I had gotten into the field
       | without BASIC. I started with QBasic, because it was the only
       | thing readily available and switched over to VB when I got my
       | hands on a students' edition. The thing that distinguished these
       | two from educational environments like Scratch or Logo is that I
       | could build actually useful stuff for myself with it.
        
         | hahamrfunnyguy wrote:
         | I think the WYSIWYG WPF and Silverlight tools were pretty close
         | to VB6 level of usability. The tools are great for building a
         | quick UI, but I think they fall short for more complex
         | applications.
         | 
         | This is why designers have their own preferences when it comes
         | to designing the UX, to give them the flexibility to create the
         | UI as they see fit. When different teams are working on a
         | shared goal, there can always an element of "throw it over the
         | fence".
         | 
         | As a developer, I always saw part of my job as getting plugged
         | in with the other teams as much as possible. Providing
         | continuous advisement and feedback on UX patterns as projects
         | progress really helps things move smoothly.
        
           | AnIdiotOnTheNet wrote:
           | I would argue that "more complex applications", when it comes
           | to UI, are an anti-pattern. Use standard widgets, and don't
           | be creative.
           | 
           | Of course "standard widgets" don't really exist anymore
           | because of where UI design has gone, but they did provide a
           | consistency that users could rely on. That is gone now.
           | Buttons don't even look like buttons anymore.
        
             | EdiX wrote:
             | The GUI builder of VB6 fell apart the moment you wanted to
             | do a resizable window. Here "more complex applications" =
             | "window that you can resize or maximize".
        
         | Joeri wrote:
         | _The WYSIWYG GUI builder that VB provided, I have never
         | encountered afterwards again in quite that manner._
         | 
         | At the time I think delphi did that concept in a better way,
         | and I definitely switched from VB to Delphi as soon as I
         | learned about it. Delphi still exists to this day.
         | 
         | There are also many low code platforms which have a VB-like UI
         | builder, like mendix, or outsystems or microsoft's power
         | platform, but they tend to be a bit too enterprisey where VB
         | was really the people's champion.
         | 
         | I think canvas apps in power platform give much of the "feel"
         | of dragging and dropping visual basic forms and let you build
         | actually useful stuff, while targeting web and mobile. The
         | downside of power platform is that as soon as you try to do
         | anything serious with it you need the premium stuff and end up
         | paying a lot. That makes it less suited to take up the niche
         | that VB and Access had, because that niche mostly can't afford
         | power platform. Contrast that with scratch which is free to use
         | and has a large community of "regular people" sharing cool
         | stuff. Intuitively it seems that Microsoft should make power
         | platform entirely free and use it as a lure for azure paid
         | services, but then it is easy for me to spend their money.
         | 
         | By the way, I still don't understand how power apps on iOS are
         | according to apple's guidelines, because you can use it to ship
         | mobile apps to iOS users while entirely bypassing apple.
        
           | sharemywin wrote:
           | I remember in Access(for like $100 one time) and how you
           | could use a wizard to build like a contact manager with all
           | the tables and forms. I always thought that was really cool.
           | Now I guess you can spend like $30/user per month or
           | something like that.
        
       | djhworld wrote:
       | Visual Basic was so good.
       | 
       | Growing up all I knew was Windows, so being able to create fairly
       | reasonable looking GUI apps at the time seemed like magic. I
       | remember building a "web browser" in VB, I put that in quotes
       | because it was really just an IE webview/control wrapped in my
       | own custom UI with features like not recording browser history.
       | 
       | I remember making a "virus" and sending it to a mate, and when he
       | opened it, you could send messages to him and open the CD drive
       | on his computer.
       | 
       | I remember making a lottery number generator program and sending
       | it to my Dad.
       | 
       | I even remember doing work experience in a computer repairs shop,
       | the guy that ran it used to sell PCs with not so legit software
       | on it and he got me a copy of Visual Basic 6.0, which was amazing
       | at the time.
       | 
       | Definitely attribute my interest in programming, computers and
       | everything to VB, no matter how much its look down upon!
        
         | pcdoodle wrote:
         | Remember being able to pause execution, check variables by
         | hovering, changing the dang code and resuming like nothing
         | happended?
         | 
         | "Do you ever wish a = 2 and not 3? introducing, pause button,
         | let's you add anything at anytime and we don't ask no
         | questions!"
        
         | heap_perms wrote:
         | I did those things as well as a teenager. I wrote a tcpi/ip
         | chat program and we used it in school to chat with each other.
         | It all seemed like magic to me. I did the thing with opening
         | the CD drive continuously in a loop, and sending this to
         | friends. It was hilarious.
         | 
         | Altough I'd never use it today, it still acted as a catalyser
         | for my interest in programming and computers.
        
         | sigmonsays wrote:
         | i recall around the time windows released transparent windows
         | API calls. I promptly wired them up into a VB6 app and could
         | make any window I wanted transparent.
         | 
         | VB6 Rocked.
        
         | orthoxerox wrote:
         | > I remember building a "web browser" in VB, I put that in
         | quotes because it was really just an IE webview/control wrapped
         | in my own custom UI with features like not recording browser
         | history.
         | 
         | Haha, I built one as well. Couldn't have the parents
         | accidentally discover what sites their horny teenager visited
         | when they were at work, even if all I could rely on with
         | 21600bps was written smut.
        
         | lappet wrote:
         | whoa, I made a fake virus too! Mine would freeze the user's
         | screen, and display a progress bar that their hard disk was
         | being deleted. I shared it on download.com and got a few
         | thousand downloads. VB6 was so much fun as a teenager. If you
         | all know anything that is close to it please let me know!
        
       | gumby wrote:
       | Hmm:
       | 
       | > ..DLLs, a new concept of shared libraries with code and data
       | that could be used by more than one program at the same time.
       | 
       | Pretty brand spanking new in 1988, having only been around for
       | about 25 years at that point.
        
       ___________________________________________________________________
       (page generated 2023-03-17 23:02 UTC)