Is XYplorer really written in VB6?

  • For no specific reason other than life random offers I've gone through a few of those "dead and bad" reputational language in my career (VB6, Delphi, PHP), mostly as a case of "there is a lot of money being a decent programmer who can use these correctly".

    And there are three things I learned about it

    1. There is a lot more money in it than you would think. The good part of "there is a lot of newbie using it" is that there is a lot of newbie using it and tons of software in it out there, and once you prove you know what you're doing you drown in high paid work, and with a bit of job selection it's not the bad horrible maintenance kind but decent fun too.

    2. There is no need trying to argue with people about it online or whatever. You're not going to convince anyone they're better language than they think. PHP 8 is a top notch language and people are still dumping on it using php 4 things.

    3. Ultimately there are people who spend their time talking about what language is right and people who get things done, build something great and it doesn't matter if it's cpp or Javascript or whatever. So at the end of day I've made a fair bit of money improving or building stuff used by lots of people to generate tons of revenue, and everyone involved is happy about it.

  • I think VB is totally fine. It's a pragmatic solution to a real problem, and the ugliest things about it today are all a product of hindsight.

    On the other hand, this rubs me the wrong way:

    > So, wouldn’t it be logical to conclude: If such an application can be written in VB6 then VB6 cannot be that bad after all?

    Yes, it absolutely could be bad. Our industry consists, in no small part, of turd polishing. Plenty of good software is written in bad (or ill-fitted) languages, and vice versa.

  • I've been using XYplorer for 10 years now and it's fantastic. There are just so many features and quality of life improvements over the Windows explorer.

    It's written by a single person, and they're very responsive. I've recently reported a bug with the search (the first that I've noticed in all those years), and it's been fixed within a day. I'm only worried about the bus factor a little.

    I have a GitHub repo with some of my settings/scripts/notes for XYplorer if someone's interested: https://github.com/darekkay/config-files/tree/master/xyplore...

  • VB3 was my first real intro to programming. Well, I started with C++ but abandoned it as an impatient child as describing a window in code wasn't fun.

    I wish we had a new drag and drop WYSIWYG to get people interested. Put Python or Go or even Basic behind it. QT maybe? Heck make it Electron.

    I'm not sure I would be where I am today without VB having existed, and it's a shame kids today don't have the same tools available.

  • I used XYPlorer for about 5-6 years until I made the switch to using Linux on all my machines last year. The scripting, speed, dual panes, customization, portability between machines (i used Syncthing to sync my configs between 3 machines) on XyPlorer are phenomenal and I've sadly not been able to find a Linux native file manager that's at the same level. Dolphin comes close but even with qdbus commands it sadly not as customizable as XYPlorer. I think it's the one thing I miss the most about Windows.

  • >Yep, it’s written in VB6. Who cares?

    I'd say security is a problem if one uses a 30 year old piece of software but apparently Microsoft still releases security updates: https://www.microsoft.com/en-us/download/details.aspx?id=507...

    >A security issue has been identified that could compromise your Windows-based system running Microsoft Visual Basic 6.0 Service Pack 6

    >The Visual Basic 6.0 IDE is no longer supported as of April 8, 2008, however, the Visual Basic team is committed to “It Just Works” compatibility for Visual Basic 6.0 applications

    >Date Published: >3/23/2021

  • I recently discovered Remobjects and their development tools. Amongst other things, they create Mercury, with they describe as a modern Visual Basic that can compile for:

    - .Net

    - JVM

    - Android (JDK and NDK)

    - iOS, macOS, tvOS, and watchOS

    - Windows

    - Linux

    - WebAssembly

    https://www.remobjects.com/elements/mercury/

  • Can't mention VB6 without one of the biggest archives of source-available software for it: https://github.com/Planet-Source-Code

    On the topic of "wait what that's VB6", here's an entire 3D modeling and rendering suite in pure VB6: https://github.com/Planet-Source-Code/kaci-lounes-a-3d-digit...

  • The 64 bit version of XYplorer is written in the twinBASIC programming language (actually an import of the VB6 source code and forms).

  • Works on Windows XP, Vista, 7, 8, 8.1, 10, 11

    That's better than you can say for a lot of software these days

  • Both VB6 and FreePascal/Delphi are highly capable tools even in today's context, they just need more marketing.

  • I debated writing an app in ColdFusion (well OpenBluedragon or Railo or something) about a year ago, partly out of curiosity to how well it holds up, but mostly out of sentimentality for the language. I had a bit of trouble getting started, and eventually the project morphed less into web and more into data-processing so I ended up using Java, but I still occasionally get the urge to write using a “dead” language.

  • I don't think being written in VB6 is actually a good reason not to use XYPlorer, which seems like a capable tool, but this page doesn't seem really reassuring? What would reassure me is knowing that there is a maintained version of VB6 for modern systems. Luckily, there apparently is such an implementation, twinBasic, and they are already using it for 64-bit releases.

  • > No multi-threading

    That isn’t quite correct, because you can take the address of a VB6 procedure and pass it to win32 CreateThread. See the related chapter in Hardcore Visual Basic for example. And of course you can use win32 mutexes and such. Thanks to the win32 interoperability, there aren’t a lot of limits of what you can do in VB6.

  • Back in 1999 for me most important was to have a great gui design, and VB was cool for this. Then later I would focus on native binary, performance and size of the build hence I switched to Delphi and then to C++. But tbh nowadays I can see that this is this famous triangle: either good and fast but expensive, either fast and cheap but not good, or good and cheap but not fast. So instead of writing in C++ i coded in 2 days a tray helper in pyside. I have no longer size complexes, as other apps tend to be written in electron nowadays, which is super size XXL

    The point is: prejudice is bad. Use whatever floats your boat

  • VB was the he first viable way to easily tap the “business programmer” who was writing code in Clipper for building competent-looking GUI applications. Along with Windows for Workgroups, it was a game changer for Windows in small businesses who could now afford bespoke Windows applications.

    Other options all had their quirks that made their apps look out of place on Windows. It was easy to say an app was built with Delphi or FoxPro. VB apps just looked like Microsoft apps and felt perfectly at home.

    I remember how easy it was to even get the 3D look popularised by Office in VB apps.

  • > No multi-threading. A pity. But for a file manager not that important.

    It's honestly blazingly fast in comparison to Windows Explorer on Windows 11.

  • I think it was Joel Spolsky who said that the sweet spot with VB was throwing seasoned C++ programmers at it, and that became a huge productivity boost to the teams. I think this goes to say that the bad name of VB6 is due to its lower entry barrier, which made it easy for beginner devs to deliver terrible software.

  • I know someone that still has a VB6 job. It's apparently repetitive and they haven't had a new client for many years, but I guess it'll continue until their clients don't need the software.

  • I wonder how the code looks, it must be a maze of "on error goto" lines to not crash at the slightest error.

  • nice to see this on hn. the dev has just announced[1] start of codebase migration from vb6 to twinbasic which should negate all of the cons described in the article.

    xyplorer has been providing partial compatibility with 64-bit windows shells by way of some "sidecar" executables, which act like hosts for 64-bit shell extensions, thumbnailers, and whatnot.

    iirc some of these sidecar tools were originally written in autohotkey; now that's another interesting language.

    [1]: https://www.xyplorer.com/xyfc/viewtopic.php?t=28273

  • I know that one of the best bug bounty hunter scripted his work using VB (unlike rest of the world who uses Python/Golang or Rust), if it works and you know it why not? Actually looking for perfect tools is procrastination.

  • While VB.NET 1.0 had indeed lots of compatibility issues with VB 6, most of them were fixed in later versions, so I wonder why not at least VB on .NET Framework (Core brings quite a few compatibility issues)

    I do know VB since VB 3.0 days, did quite a couple of VB 6 to VB.NET, and VB.NET to C# portings, so it isn't like I don't know the subject.

  • The program doesn't look like a typical VB6 application, I guess the author draws all UI elements himself?

  • I always love a story of impressive software written in “underdog” languages and not hype Go, Rust, Zig etc.

  • In the late 90s, I was a member of Microsoft's MVP program for VB6 and later IIS/ASP. Having used every version of VB (including DOS) I was one of the many who was furious when they petulantly refused to commit to updating VB6 on a parallel track. At one point there was a significant number of us with a petition, and they basically told us to pound sand...

    So, I did. This was literally the push I needed to switch to open source tooling, and it put me in the right time and place to be a Rails early adopter.

    I downloaded XYplorer mostly out of curiousity, and it's actually so fast that I am slightly shocked to say that I might be switching to it.

  • Seems cool, I'm using free commander and need 2 vertical panels, because of the ease of coping files.

    I guess I skipped this app before because on the screenshot it looks like it just has one panel. But after trying it out, it has "dual pane" mode, so I will give this a shoot.

  • Your article hits the nail on the head. I loved programming for VB6, VBA and VBScript.

    PHP has the same issue, it is awesome and powerful but gets a bad rep because the versions before 2004 had issues and the low barriers to get started means beginners love PHP.

  • It is a great software, now I know why there is no MacOS builds :)

  • Recently I wished for "VB for Web". Something that'd make it easy for a tech-competent, but a non-programmer, person to prototype a functional web application.

  • Microsoft has open sourced so much, I wish they would work on an effort to fully open source VB6 at least the bits they fully own and control. I have a feeling the community might rally to fill in the gaps, even if its over a few years.

    I mean, look at EverQuest Online, insanely old MMO client, still has people building private servers, and even clients.

  • https://photodemon.org/ is a photo editing tool written in VB6

  • You can use GAMBAS as a replacement.

  • I love XYPlorer, it's my favorite program and I use it every day.

  • It does the job, so "Who Cares?"

  • [dead]

  • They should have written Dogecoin in VB, then it would have been even sillier.

  • Sorry VB apologists, it's a weird language with lots of legacy weirdness. If you chuckle at silly things in JS, you'll cry when you learn VB.

  • Early in my career, I worked in support for a company which made developer tooling.

    Male programmers would call in and do a bit of intro so you knew they were not dumb, just busy.

    VB6 programmers would say things like "I am a very senior VB developer". They were the only "very senior" programmers who did not seem to understand things about OS stuff. Like exported functions and their different calling conventions, why you need to "register" COM .dlls, environment blocks, handles, etc.