[HN Gopher] The History and Legacy of Visual Basic
       ___________________________________________________________________
        
       The History and Legacy of Visual Basic
        
       Author : ibobev
       Score  : 110 points
       Date   : 2025-05-10 23:24 UTC (23 hours ago)
        
 (HTM) web link (retool.com)
 (TXT) w3m dump (retool.com)
        
       | saidinesh5 wrote:
       | Honestly, while growing up.. There's something really amazing
       | about the intuitiveness of tools like Macromedia Flash, Visual
       | Basic, Audacity/even FL Studio that we've had so many people
       | being able to pick up these tools without having to resort to so
       | much documentation/tutorials.
       | 
       | I don't think I could've done that with any of the HTML5 / Web
       | tools that were touted as an alternative at that time... Or
       | probably even today. I mean sure there's MIT scratch that does
       | half as many things as visual basic. But i feel like we need a
       | little more "mature" tools that fill these gaps. I could be wrong
       | and there's much better replacements these days..
        
         | WillAdams wrote:
         | For me it was HyperCard/Runtime Revolution/Livecode.
         | 
         | Unfortunately, that latter, after stumping for funds to go
         | opensource has gone closed source and is now charging enough
         | that I can't justify it for hobbyist use, and the openxtalk
         | folks don't seem to have an easy Windows download yet (I'd love
         | to be wrong).
         | 
         | I'd really like for there to be an opensource successor to
         | VisualBasic which was cross-platform and worked well enough to
         | be popular enough to achieve a critical mass of usage/support.
        
           | occasionalcoder wrote:
           | https://www.lazarus-ide.org/
        
             | WillAdams wrote:
             | Thanks!
             | 
             | That seems to be the consensus --- hopefully it will become
             | more popular, and I'll give it a try, and hopefully will
             | add to that.
        
       | showerst wrote:
       | What a great article. My first exposure to real programming was
       | VB and it's hard to overstate how magical it was to just drag a
       | button onto a form, and double click on it to write a few lines
       | of code and wire it up. TBH it's still something that I miss in
       | the modern world, likely killed forever by the huge diversity of
       | display devices.
       | 
       | It's funny how lousy VB (and PHP a few years later) were as
       | programming languages, even for the time. But they got stuff
       | done, which is a good lesson.
        
         | vunderba wrote:
         | Agree - while the concept of event-driven programming was not
         | without its quirks, it was very easy to grasp for a newcomer.
         | 
         | I do think the WinForms editor in Visual Studio C# was a pretty
         | decent spiritual successor that came close to capturing the
         | magic of a drag-and-drop GUI builder. Aesthetically lacking but
         | highly functional.
        
           | raddan wrote:
           | I also used both of these at a formative time in my
           | programming career, and it really felt magical. I built half
           | a dozen little apps, some using Access (another product whose
           | loss I mourn), to solve problems at the small company I
           | worked for that "professional" developers quoted us many
           | times my salary to develop.
        
           | jeswin wrote:
           | > I do think the WinForms editor in Visual Studio C# was a
           | pretty decent spiritual successor that came close to
           | capturing the magic of a drag-and-drop GUI builder.
           | Aesthetically lacking but highly functional.
           | 
           | It required the .Net Framework to be installed, which in the
           | early 2000s (with far lower internet penetration and speeds)
           | was a big enough problem. It wasn't particularly great either
           | - Microsoft's attempts to port their own desktop products to
           | .Net mostly failed. It was basically Java for the Windows
           | Desktop, and never quite took off in the way VB apps did.
        
             | vintagedave wrote:
             | WinForms itself was largely a clone of Delphi. C# through
             | version 2 was essentially Delphi with C syntax.
        
               | int_19h wrote:
               | It would be more accurately described as a blend of
               | Delphi and Java, the latter via J++. The overall object
               | model is from Java, tweaked to merge the primitive types
               | with their boxed wrappers (i.e. `int` vs `Integer`). C#
               | strings and arrays were also almost a carbon copy of Java
               | rather than anything Delphi-like, although it did add
               | multidimensional arrays. From J++ it got delegates and
               | events. From Delphi it got things like properties and
               | explicit `virtual` on methods, but notably not e.g.
               | overridable class (static) methods or named constructors.
               | Also, Delphi had manual memory management, not GC.
        
               | neonsunset wrote:
               | > C# strings and arrays were also almost a carbon copy of
               | Java
               | 
               | You'd be surprised but .NET and Java strings have a lot
               | of differences. In Java, String is a class which wraps
               | byte[], in .NET - string is a "FieldSeq" object with
               | characters stored inline. One indirection less but with
               | no special fields and cached state like in Java.
               | 
               | Arrays have significant differences too, where Java
               | arrays do not implement any actual collection interfaces
               | and need to be asList'ed, so it's common to consider in
               | Java to rely on arrays an anti-pattern, which is the
               | opposite to C#.
        
             | int_19h wrote:
             | Today isn't the early 2000s, though. For example, every
             | version of Windows shipped in the past ~20 years (starting
             | with Vista) comes with .NET. And it is in fact very common
             | for desktop apps on Windows today.
        
         | mattl wrote:
         | There's an amazing era in the mid 90s where Steve Jobs is
         | promoting NeXT stuff that interacts with Visual Basic.
         | 
         | D'OLE, etc.
        
           | bitwize wrote:
           | D'OLE sounds like something Homer Simpson would say in
           | frustration, and the implementation was probably a cause for
           | such frustration in actual use, cool demos notwithstanding.
        
             | mattl wrote:
             | > D'OLE
             | 
             | > D'OLE makes it possible for Windows developers to build
             | robust, scalable, distributed applications today
             | 
             | > Building on NeXT's leadership in object-oriented software
             | development, D'OLE brings the OPENSTEP object model(PDO)
             | from UNIX to the Windows platform and integrates it with
             | Microsoft's Object Linking and Embedding(OLE) object model.
             | Through this integration with OLE, it is now possible to
             | use popular Windows development tools, such as Visual Basic
             | and PowerBuilder(which are currently limited to small
             | workgroup deployments) in conjunction with OPENSTEP
             | objects. This allows application developers to create
             | distributed client/server applications that are scalable to
             | the enterprise. Developers can use their tool of choice to
             | create custom applications that employ a multi-tier
             | distributed object architecture.
             | 
             | > D'OLE also makes it possible, using only OLE objects, to
             | create a truly distributed computing environment on the
             | Windows platform. For instance, you can modify an Excel
             | spreadsheet running on one Windows NT client machine from a
             | Visual Basic application running on another Windows NT
             | client machine.
             | 
             | > Interoperability with OLE is accomplished via support for
             | OLE Automation, which provides transparent integration
             | between OPENSTEP and OLE objects. OLE objects simply
             | connect to, and message, OPENSTEP objects just as if they
             | were OLE objects, and vica versa. With this integration,
             | popular Windows GUI design tools can take advantage of
             | NeXT's advanced object technology without modification.
             | 
             | > D'OLE also supports the Enterprise Objects Framework. The
             | Enterprise Objects Framework supplies data access services
             | that allow objects to persist in industry-standard
             | relational databases. These persistent objects provide
             | database independence and can be reused by multiple OLE and
             | OPENSTEP applications. The pairing of the Enterprise
             | Objects Framework with D'OLE also enables a distributed
             | computing environment that provides an infinitely flexible
             | choice of application deployment strategies.
        
         | analog31 wrote:
         | I think that the earliest methods of programming windowed
         | computers were just way over the heads of mere mortals,
         | including myself. For those of us where were comfortable with
         | earlier computers, GUI required simultaneously grasping OOP, a
         | mountain of opaque documentation, and a complex IDE and build
         | process. All at once.
         | 
         | No surprise that the first GUI programs I wrote were in LabVIEW
         | and Hypercard, followed soon thereafter by VB.
         | 
         | While I'm not a commercial developer, I still avoid any "stack"
         | where the tutorial for "Hello World" doesn't fit comfortably in
         | one page.
        
           | 01HNNWZ0MV43FF wrote:
           | GUIs are still harder than they need to be. Async patterns
           | that don't compose, operating systems where CLI and GUI
           | programs are separate concepts entirely, massively complex
           | GPU-based stacks needed to fill 800 MP/s...
           | 
           | I no longer blame people for punting to Electron. As bad as
           | HTML is, it's still only 100 MB to save yourself from the
           | worst parts of GUIs.
        
             | int_19h wrote:
             | On Windows, GUIs are still as easy as they were in VB6 days
             | if you pick the right tools.
             | 
             | It only becomes a headache if you need cross-platform
             | support. Although even there options like Avalonia are far
             | superior to Electron.
        
           | int_19h wrote:
           | Earliest _practical_ GUIs were (Smalltalk aside) generally
           | not OOP but rather procedural - an explicit message dispatch
           | loop, message handlers that were basically huge switch
           | statements etc. Here 's the listing for a basic Win32 app
           | (Win16 looked very similar):
           | 
           | https://learn.microsoft.com/en-
           | us/windows/win32/learnwin32/y...
           | 
           | And here's Xlib:
           | 
           | https://github.com/smysloff/xlib-
           | examples/blob/master/src/ev...
           | 
           | OOP was bolted on later to make this all more manageable.
           | Indeed, VB itself, which is object-oriented (even if it lacks
           | some common features such as inheritance) is a prime example
           | of that.
        
       | Aloha wrote:
       | Before (2023) - https://news.ycombinator.com/item?id=35192913
        
       | 90s_dev wrote:
       | > Cooper decided to promptly throw away the 25,000 lines of messy
       | prototype C code that comprised Tripod and start over from
       | scratch, feeling like it was so irredeemably full of time-
       | pressured hacks, it'd simply be easier to rewrite it with a
       | cleaner design.
       | 
       | Usually this is either a sign of a terrible programmer or a very
       | competent and experienced one, and it's hard to know which
       | without seeing their other work. But I've done this before, and
       | to good effect. Writing code is not hard. Figuring things out is
       | hard. But once the things are figured out and well understood,
       | rewriting them in a cleaner design is especially easy. Granted,
       | it still takes _time_ , that sometimes that time can be on a
       | scale of months. But the more experienced you are, the more you
       | can estimate that time more accurately.
        
         | 0xbadcafebee wrote:
         | It's always a bad idea. Eight decades of software has shown it
         | to be true, multiple books written on it. The inherent problem
         | with it is the idea that writing a replacement is somehow going
         | to be easy or fast. But if it were easy or fast, somebody would
         | have done it already! Then come the additional problems of a
         | rewrite like second system effect, inherent complexity, human
         | error. It's impossible to predict how long it could take to
         | finish making it, so fast-or-easy goes out the window.
         | 
         | Even though it's a bad idea, in very rare cases it can be the
         | least-bad idea. But like you said, that takes an expert to
         | figure out, and there's not a lot of experts floating around.
        
           | 90s_dev wrote:
           | Several times in the past few months, while working on my
           | project, I spent a week writing something exploratory within
           | it, and after all the lessons were fully learned and
           | absorbed, erased that whole part and rewrote it in just a
           | day. I could have kept the week long buggy and badly designed
           | version of it and saved a day of work, but it would have
           | drastically slowed down both development and maintenance of
           | the overall project.
        
             | jimnotgym wrote:
             | Isn't that one of the tenets of Extreme Programming, write
             | a sketch, throw it away, write it properly?
        
               | 90s_dev wrote:
               | I don't know, I'm not a real programmer, I still don't
               | understand what SOLID is. I just write code and try to
               | fix it when it doesn't work.
        
             | manicminer wrote:
             | The Mikado Method
        
             | 0xbadcafebee wrote:
             | That is very different from having an existing complex
             | system and attempting a complete rewrite from scratch.
             | 
             | If you have a car, and you disassemble the car and
             | reassemble the car 10 times in a row, each time trying it
             | out, then when you finally disassemble-and-reassemble an
             | 11th time, without the defects you've seen the last 10
             | times, that will be pretty easy and fast.
             | 
             | If you disassemble and reassemble a car 10 times, but only
             | once a month, it's not going to be as easy.
             | 
             | If you disassemble and reassemble it only once a year,
             | it'll be even harder.
             | 
             | If you have never disassembled and reassembled it, and you
             | want to not only disassemble it, but redesign all its
             | parts, and then reassemble it, in one go, that will be
             | incredibly time-consuming and error-prone.
             | 
             | That is the prototypical "entire software rewrite" which is
             | just a bad idea, full-stop. It's not that it's impossible
             | to work; you can _eventually_ get the car to work again. It
             | 's just way more expensive, time-consuming, and error-
             | prone, than people realize when they start it. The whole
             | argument for it is that it'll somehow be quicker and
             | cheaper, and that has never been the case. It is attractive
             | because it _feels_ less complex than a process of
             | incremental improvement of an existing legacy system. But
             | the reality is that it 's often _more_ complex, due to all
             | the problems involved in a first-time tear-down, re-design,
             | and re-build.
             | 
             | I am not the only person who has noticed this...
             | - https://en.wikipedia.org/wiki/The_Mythical_Man-Month
             | - https://www.onstartups.com/tabid/3339/bid/2596/Why-You-
             | Should-Almost-Never-Rewrite-Your-Software.aspx       -
             | https://testdouble.com/insights/managing-legacy-code-
             | rewrite-vs-renovate       -
             | https://www.joelonsoftware.com/2000/04/06/things-you-
             | should-never-do-part-i/       - https://www.reddit.com/r/Ex
             | periencedDevs/comments/sr8zyf/why_exactly_does_most_softwar
             | e_rewrite_fail/       - https://daedtech.com/the-myth-of-
             | the-software-rewrite/       -
             | https://levelup.gitconnected.com/why-rewriting-
             | applications-from-scratch-is-almost-always-a-bad-
             | idea-5402d1715006
        
           | mpweiher wrote:
           | > It's always a bad idea.
           | 
           | A significant chunk of my software career has been complete
           | rewrites of existing systems. Every one was a huge success.
           | 
           | You should always beware of claims of universality ;-)
        
             | Bjartr wrote:
             | What would you say is most important for a rewrite to be
             | successful?
        
       | don-bright wrote:
       | What people forget is that VBA is still built in to every copy of
       | Desktop Excel (press alt f11) and is used by entire industries
       | that are disconnected from the open source tech online discourse.
       | In a lot of locked down business environments its the only
       | automation an employee has access to. If macros suddenly got
       | Thanos snapped out of existence tomorrow the entire economy would
       | grind to a halt. People keep saying VB is dead but it probably
       | processed some of your information today somewhere in some
       | cubicle.
        
         | Sn0wCoder wrote:
         | Not going to lie I was exited to see this work lol. Thanks for
         | the tip of the day. I love learning and not sure what I was
         | expecting to happen when I opened up excel and hit alt + f11
         | but it was awesome to see it open. Already created my first
         | user form and now the rest of the weekend its going to be
         | difficult not to go down this rabbit hole. VB once paid my
         | bills....
        
         | romanhn wrote:
         | There are still companies running their web backends on classic
         | ASP with VBScript. Not to mention VB6-based desktop apps.
         | Thankfully fewer and fewer each year, but they exist.
        
           | ghssds wrote:
           | > Thankfully
           | 
           | Why? If it works...
        
             | romanhn wrote:
             | End of life software running on top of end of life
             | software. Hard to hire for this stack, especially anyone
             | who cares about tech. Security and maintenance nightmare.
             | Interoperability is a pain. Questionable documentation. It
             | all works until it doesn't, and then you're in the world of
             | pain.
        
               | jackvalentine wrote:
               | A client of mine used Visual Foxpro for... way past its
               | used by date, for a crucial database in a crucial aspect
               | of a crucial industry. When it inevitably failed
               | spectacularly they struggled to get anyone who knew what
               | was up to intervene. Same client kept poor backups.
               | 
               | Recently persuaded said client looking for a new solution
               | to support a new line of business to go with the .NET,
               | actively developed system over the 'free' VB6 desktop
               | application that a charity developed a billion years ago
               | and wanders around the industry inflicting pain.
        
               | potoooooooo wrote:
               | Not all of these issues apply to VBA, which the top level
               | comment brought up,even if they apply to VB6 and the
               | other ones you mentioned. VBA isn't EOL, and Excel
               | certainly isn't.
               | 
               | Lots of people are continually building sophisticated
               | tools in MS Office even though it's not helpful for the
               | resume because it's the path of least resistance for
               | solving problems for the sorts of people who just learned
               | VLOOKUP in 2021 and don't want to learn about XLOOKUP
               | now.
               | 
               | Security, maintenance, interop, documentation... There
               | are arguments to be made. It's not cut and dry that VBA
               | is the worst option for any of those. The patterns for
               | handling them are different than a web app repo or
               | something, but it's not like they don't get thought of
               | and handled on a daily basis.
        
             | anthk wrote:
             | Active X it's a security disaster.
        
               | int_19h wrote:
               | Only in the context of embeddable web components, and
               | only because running non-sandboxed native code in the
               | browser is a security disaster in general, not because of
               | anything specific to ActiveX.
               | 
               | Outside of that context, ActiveX is simply a well-defined
               | object-oriented API and ABI for cross-language use.
        
           | znpy wrote:
           | > Thankfully fewer and fewer each year, but they exist.
           | 
           | Are we sure we should be thankful?
           | 
           | Looking back on VB6, now that i'm in my mid-30ies, i think it
           | had some great points. Basically, a simple app was fast and
           | easy to build and did not require to ship (!) and run (!!!)
           | an entire google chrome instance to render a few buttons,
           | some textboxes and a bit of logic.
        
             | romanhn wrote:
             | I have no issues with VB itself, but the technology is long
             | obsolete and any organization that still has it somewhere
             | in their business is taking on risk that should have been
             | mitigated years ago. Realistically, these apps are not
             | simple apps with a few buttons. I happen to know that the
             | complex, business-critical VB6 app used by the company I
             | interned for 25 years ago is still out there, still
             | supported by the original team! That's a ticking time bomb,
             | as far as I'm concerned.
             | 
             | BTW, the VB6 experience is still somewhat attainable with
             | .NET WinForms (can even use VB.NET if you so desire).
             | Showed my kids how to build simple apps a couple years back
             | and the overall process of dropping controls on a canvas
             | and wiring up events was pretty much the same.
        
               | int_19h wrote:
               | VB.NET is an underappreciated language for teaching in
               | general, IMO. I especially like their choice of keywords
               | being very descriptive rather than traditional. For
               | example, `Overridable` rather than `virtual`,
               | `MustOverride` (for methods) / `MustInherit` (for
               | classes) rather than `abstract`, `Shared` rather than
               | `static` etc.
        
         | 90s_dev wrote:
         | > Excel, press Alt-F11
         | 
         | :O
        
         | kjellsbells wrote:
         | Every time I try and automate Excel it pushes me towards
         | TypeScript, which I accept is probably the future for Excel
         | automation...except that when you really need to do middling to
         | advanced Excel, Microsoft's Typescript engine throws up its
         | hands in despair and I am forced to pull out VBA.
         | 
         | I really wish the VBA IDE got some love, but I guess that will
         | never happen.
        
       | pkoird wrote:
       | Growing up in a third world country with no formal CS classes, I
       | will never forget the wonder and awe I felt when I coded a simple
       | calculator after self-teaching myself VB6 from a book I stumbled
       | upon. The simplicity of drag and drop and the fluidity with which
       | it simply worked has remained unmatched. I tried going back into
       | App development time and again but these new container based
       | paradigm just never clicked for me.
        
       | FlingPoo wrote:
       | I wrote a Missile Command game in VB3, that was a very long time
       | ago. I think I sold just over 400 copies, mostly from Compuserve.
       | 
       | Link: (the web emulator is very slow)
       | 
       | https://classicreload.com/play/nisus-missile-master.html
        
       | 0xbadcafebee wrote:
       | I personally consider the abandonment (and lack of replacement)
       | of Visual Basic to be an indictment of the entire tech industry.
       | The industry does not want people to be able to write software
       | easily, because it would put software companies out of a job. I'm
       | glad that AI has finally arrived so it can kill programming. Once
       | the programmers figure this out they may prevent it from being
       | too easy to use AI to create software. If they're not really
       | careful, it might even make web browsers obsolete.
        
         | mft_ wrote:
         | I hear you, but I don't think "the industry" is anything like
         | as rational or strategic or organised as your theory suggests.
         | 
         | What I see as a much more powerful prevailing undercurrent, in
         | everything from Linux not making it on the desktop (next year!)
         | to dependency management in Python to awful documentation in
         | _so many_ projects, is that smart programmers cater to
         | themselves, and there are too few incentives to cater for the
         | proles who aren't quite as capable or deeply embedded in
         | computer science.
         | 
         | In short, it's Hanlon's razor: you're seeing conspiracy while I
         | just see incompetence.
        
       | RebeccaTheDev wrote:
       | I miss VB6 so much.
       | 
       | For rapidly prototyping an idea, I have yet to find anything that
       | was as good as VB6. Drag a button, write code. Want to change
       | things about the button? Use properties, that live update the GUI
       | without recompiling. It was so simple that a reasonably
       | intelligent person could grasp it in an afternoon, but in the
       | hands of a capable developer could do some very impressive
       | things.
       | 
       | It was also a fun game to hunt for VBX/OCX controls that you
       | could use in things that were downloaded or came on random disks
       | or CDs.
       | 
       | I really feel like VB6 was the peak of that development model and
       | we've been moving away from it since. And I get some of the
       | reasons why (just look at the mess that comes from trying to do
       | anything with Xcode storyboards and version control.) But for
       | just rapidly trying out an idea, I have yet to find anything
       | anywhere that was as good as VB6 was.
        
         | account-5 wrote:
         | I feel the same about MS Access databases, for databases
         | obviously. Provided you kept within its limitations, and
         | actually used relational models, it was really quick at setting
         | up a database program. I never used VB6 but the workflow sounds
         | similar.
        
           | transfire wrote:
           | It was almost exactly the same expect in VB you had use some
           | esoteric code to access databases -- and they kept changing
           | what was the "proper" way to do it. (I think by the time I
           | quit VB it was ADO?)
        
             | jemmyw wrote:
             | I don't recall it being particularly esoteric. There were
             | libraries to call various databases. In my first job I
             | converted a vb6 application from Foxpro to SQL server. I
             | was just getting into Ruby on Rails at the time and wrote a
             | COM library the the data layer that was somewhat like
             | activerecord, and ended up using it from ruby scripts. Fun
             | times. Just looked it up and the software still seems to be
             | being sold 20 years later.
        
             | int_19h wrote:
             | It was indeed ADO (ActiveX Data Objects) - Connection,
             | Command, Recordset etc - and this is also the API used by
             | Access.
             | 
             | Microsoft wouldn't be Microsoft without having confusing
             | naming for its APIs, so the one before ADO was called DAO
             | (Data Access Objects).
             | 
             | There was also some very confusing layering in play. ADO
             | didn't work with the database directly - it was a layer on
             | top of either ODBC or OLE DB, depending on the database.
        
           | akoster wrote:
           | I agree! I still sometimes use LibreOffice Base for quick
           | prototyping [0] or Microsoft Access if I am on Windows. It
           | uses HSQLDB by default but you can connect to several
           | external JDBC, ODBC and ADO compatible databases, though I
           | often use DBeaver for that purpose. [1]
           | 
           | [0] https://en.wikipedia.org/wiki/LibreOffice_Base
           | 
           | [1] https://dbeaver.io/
        
         | 800xl wrote:
         | Have you checked out Xojo? It is a VB6-like language with a
         | similar development UI. There are desktop and web versions.
         | 
         | https://documentation.xojo.com/getting_started/tutorials/des...
        
           | gus_massa wrote:
           | How do they compare to Gambas
           | https://gambaswiki.org/website/en/main.html ?
        
         | grumblepeet wrote:
         | I totally agree with this. When I worked at a University
         | (mumbles) years ago I wrote a build system for rebuilding the
         | OS and apps on student lab PC's and I used VB6 as the front
         | end. It seemed in those days we could do anything, and nobody
         | told us we couldnt do it.
         | 
         | I also made a simple two button menu app for use on repurposed
         | 386's that we were using as thin client pc's. Years later I
         | went back to see they had been replaced with tiny HP thin
         | client devices but my menu was still being used!
        
         | mpweiher wrote:
         | I feel much the same about NeXT's Interface Builder.
         | 
         | It wasn't perfect, but it seems that we threw out $100 of
         | capability to "fix" 10 cents worth of flaws.
         | 
         | Instead of fixing the flaws.
         | 
         | https://www.diyaudio.com/community/threads/murphy-law-applie...
        
           | benoau wrote:
           | I liked Flash for these reasons too, the way Macromedia fused
           | design, animation and programming was amazing.
        
         | billfruit wrote:
         | Doesn't Lazarus serve a similar purpose?
        
           | mikewarot wrote:
           | It could, if the documentation were usable. 8(
        
             | akoster wrote:
             | Thankfully their forums are quite active with folks sharing
             | lots of sample code [0]. I was able to get some assistance
             | with getting their SQLite library to work. Also the wiki
             | has quite a few tutorials - when I get some more time I
             | hope to check out this pas2js Electron tutorial. That would
             | be something quite useful to go from a WYSIWYG RAD IDE
             | design to a working JavaScript web app running in a
             | browser.
             | 
             | [0] https://forum.lazarus.freepascal.org/index.php [1]
             | https://wiki.freepascal.org/lazarus_pas2js_integration
        
         | anthk wrote:
         | Lazarus and Turbol Pascal it's close.
         | 
         | Also, TCL/Tk with Tcllib and TkLib plus maybe Tkimage and
         | SQLite3, which was born from TCL code. With that you can create
         | a fast RAD tool in hours.
        
           | bitwize wrote:
           | Tcl/Tk mentioned. Let's goooooo!
           | 
           | I have never, for the life of me, found a quicker way to go
           | from zero to GUI than Tcl/Tk. Even VB requires a lot of rat
           | wrestling to set up a UI. Some people think that's how it
           | should be done, but compared to just _telling_ the machine
           | what you want and letting it take care of layout, to me it 's
           | still cumbersome. Plus, Tk has had hierarchical, relative
           | positioning and sizing, no need for doing layout in terms of
           | absolute pixels or "dialog units", from the jump.
        
             | anthk wrote:
             | Also Tk is in every language, as it's dumb easy to duct
             | tape it into C. TkInter, Perl-Tk... I'm pretty sure if some
             | Forth user created a Tk UI for PForth/GForth, it would be
             | almost as easy as in TCL, but with the syntax reversed.
             | That's it, you would find 'pack' in the end of a sentence
             | full of words.
        
         | int_19h wrote:
         | .NET with Windows Forms - either C# or VB.NET, depending on
         | your taste - is very similar in experience, and is still a
         | fully supported stack today even in the most recent .NET
         | versions (so you get e.g. high-DPI support, dark mode etc) with
         | new features added regularly: https://learn.microsoft.com/en-
         | us/dotnet/desktop/winforms/wh...
        
           | akoster wrote:
           | Thanks for sharing! I'm glad Microsoft is still providing
           | active development for WinForms and on recent .NET Core
           | versions and not just .NET Framework, although the later
           | seems to still be supported indefinitely (for now?). [0]
           | 
           | [0] https://learn.microsoft.com/en-
           | us/lifecycle/products/microso...
        
       | pfraze wrote:
       | I've just started playing with retool to act as a data
       | visualization frontend to big query. If you're nostalgic for VB,
       | it's worth giving them a shot. I'm only a couple days in but I'm
       | finding it very promising
        
       | Stratoscope wrote:
       | Hi! I was the lead developer for Ruby (no relation to the
       | programming language), which became the "visual" side of Visual
       | Basic.
       | 
       | It is nice to see this article again.
       | 
       | Perhaps my favorite part is this true story that I shared with
       | Ryan at Retool.
       | 
       | If you ever wonder why we "fire" an event, this is why:
       | 
       | # # #
       | 
       | I was looking for a name for one gizmo sending a message to
       | another. I knew that SQL had "triggers," and Windows had
       | SendMessage, but I didn't like those names.
       | 
       | I got frustrated one night and started firing rubber bands at my
       | screen to help me think. It was a habit I had back then to shake
       | up my thinking. Probably more practical on a tough glass CRT than
       | on a modern flat screen! After firing a few rubber bands, I was
       | still stuck. So I fired up a doobie to see if that would help. As
       | I flicked my lighter and looked at the fire, it all came
       | together. Fire a rubber band. Fire up a doobie. Fire an event!
       | 
       | # # #
       | 
       | My other claim to fame may have been the VBX. It was likely one
       | of the worst APIs in history, but also one of the most
       | successful.
       | 
       | Go figure.
       | 
       | As they say, AMA!
       | 
       | And as it happens, I am looking for work. If anyone doesn't mind
       | working with an older programmer who is still enthusiastic and
       | productive and creative, you know where to find me.
        
         | znpy wrote:
         | > I fired up a doobie to see if that would help
         | 
         | For those, like me, that are not native speakers of english and
         | not familiar with the slang: a "doobie" here is a joint.
         | Basically weed (marijuana).
         | 
         | @Stratoscope correct me if i'm wrong
        
           | Stratoscope wrote:
           | Thank you for the clarification. Yes, you are correct.
           | 
           | And no, I didn't set one of the Doobie Brothers on fire!
        
         | warpspin wrote:
         | I wonder what the programming language was like which you used,
         | before BASIC was put into the product?
        
           | Stratoscope wrote:
           | It was an extremely primitive language in the style of DOS
           | batch files.
           | 
           | But that was really kind of a placeholder.
           | 
           | We didn't hardwire the language into the Ruby code, we made
           | an API to allow other languages to be plugged in. And that's
           | how it was easy for Microsoft to plug Basic in.
           | 
           | In fact, I completely forgot the original purpose of Ruby. It
           | wasn't intended as a complete programming environment, it was
           | going to be a new "shell" (desktop) for Windows 3.0. Windows
           | users would create their own custom desktops using Ruby and
           | our primitive batch language.
           | 
           | Somewhat related, there used to be stories about how Visual
           | Basic was originally not going to allow third parties to
           | create custom "controls" (or "gizmos" as we originally called
           | them). But Bill Gates insisted on making it extensible.
           | 
           | That may be true in a narrow sense, but it misses the bigger
           | picture.
           | 
           | Of course we had to create a gizmo API from the very
           | beginning, for the original set of gizmos we had in Ruby.
           | Buttons, lists, text boxes, and so on.
           | 
           | My understanding is that the Visual Basic team didn't want to
           | publish this API in the original VB release, perhaps to get
           | the release out sooner. But Bill insisted that it be
           | included.
        
         | msephton wrote:
         | Would love to read more about your Ruby. Have your written
         | about it anywhere? Even old HN comments would be welcome.
        
           | Stratoscope wrote:
           | I wish I had written more about it! I would love to revisit
           | those days too.
           | 
           | There are a few old HN comments that I wrote and you can find
           | here:
           | 
           | https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu.
           | ..
           | 
           | You will have to scroll past a lot of comments about the Ruby
           | programming language.
        
         | memset wrote:
         | Wow!
         | 
         | I learned programming via QBasic (in 21 days!), then VB3, then
         | VB6. My father still writes toy programs in VB6. Things like
         | binding Access DBs to controls was magical to me.
         | 
         | What would it take to have a VB today? I feel like the web,
         | APIs, auth, screen sizes, they've all become so complicated.
         | And while Retool aims to make it as easy to develop, it's just
         | not the same.
         | 
         | What would it look like to really feel "the same" as the good
         | old days?
        
           | Stratoscope wrote:
           | Thank you! It always warms my heart to hear how people have
           | used our team's work over the years.
           | 
           | As to what it would take to have a VB today, VB.NET still
           | exists:
           | 
           | https://en.wikipedia.org/wiki/Visual_Basic_(.NET)
           | 
           | Maybe that would do the trick?
           | 
           | Of course at that point you could also use C# instead of the
           | VB.NET syntax (which is rather different from "classic" VB).
        
           | 90s_dev wrote:
           | I am so close to announcing my project that I hope both you
           | and the OP will appreciate, precisely _because_ it aims to
           | resurrect 90s development, to see if we can do better than we
           | have in the past 25 years, standing on nothing but the
           | benefit of hindsight.
        
         | 90s_dev wrote:
         | If my upcoming project takes off and makes any money, I would
         | hire you in a heartbeat!
        
         | antman wrote:
         | I would love just a new VB if you have the time....
        
       | ChicagoDave wrote:
       | I bought VB 1.0 from an 800 number in Dvorak's back page PC Week
       | article. I still have the floppies and manuals.
       | 
       | I made a lot of consulting cash being an expert in VB 6.
       | 
       | When .NET came out, I switched to C# and learned object-oriented
       | programming. (Ironically by reading Bruce Eckel's "Thinking in
       | Java").
        
       | WA wrote:
       | VB got me into programming as a teen in the 90s. I even managed
       | to create several small games without having much of a clue. Good
       | times.
        
       | EGreg wrote:
       | Both VB and Hypercard were amazing, for Windows and Mac,
       | respectively
       | 
       | Anyone thinking of doing it on the Web?
        
       | anthk wrote:
       | Ob VB, performance wise, giving how 'fast' some C64 written in VB
       | ran, I think it was on par of TCL/Tk, if not worse for some cases
       | and better in a few obvious cases (Direct Draw/Direct X), but
       | Unix people wrote the core in C and they put a Tk UI on top
       | giving great speeds.
       | 
       | And, on people praising VBA integration under MS Office, that
       | gave us security disasters with macros and millions of dollars
       | lost because of Excel parsing genomics as dates.
       | 
       | It's better to decouple data and algorythms as _separate_ files.
       | Keep your raw data in a file, transform it and set the output in
       | a separate process and file. You know, a proper pipeline.
       | Something the Unix folks understood since the very beginning 50
       | years ago.
       | 
       | But "performance" fanboys don't care, until the shit hits the fan
       | as it happened in Science with bioinformatics. Tons of studies,
       | papers and research were just void because of shitty software.
       | 
       | Meanwhile, some Unix users with Slackware with discrete tools for
       | every process (and not just a self-updating XLS file for
       | everything) did it fine as they followed a basic reproducible
       | chain.
       | 
       | https://slackalaxy.com/2019/03/15/slackware-and-slackbuilds-...
       | 
       | Harder? Yes, OFC. But, can you bet that your initial data will be
       | the same on _every_ process? For sure.
        
       ___________________________________________________________________
       (page generated 2025-05-11 23:01 UTC)