11 ms·
IMO the real loss in IDE tech is the speed that visual basic 6 gave you to make desktop guis. Web and mobile development (which I have done all 3) are signific
by novok 3y ago
IMO the real loss in IDE tech is the speed that visual basic 6 gave you to make desktop guis.
Web and mobile development (which I have done all 3) are significantly slower than what you could do with VB6. It's really strange why we haven't gotten back to it.
- OOPMan 3y agoI dunno, I worked with Qt5 and Qt6 recently and creating a UI felt pretty fast and smooth to me (Much more so than the last time I did frontend web work anyway) That said, I've never used VB6 so maybe I'm missing something...
- hk1337 3y agoWould this be similar to the .NET Webforms? That could be done in C# or VB.
- wombarly 3y agoThe equivalent would be WinForms
- haddr 3y agoOr even better one: Delphi (if you were into pascal)
- dkersten 3y agoI’ve often heard people mention that Delphi was a superior RAD GUI experience than Visual Basic, but as someone who’s never used it, what is it that made it so great compared to VB or other GUI builder type tools (eg Qt Designer)?
- gardnr 3y agoThe pascal language requires things to be declared in a certain order. It's a bit awkward some of the time bit it enables the compiler to work in a single pass. This meant that running an application was extremely fast by any standards and this really made it stand out compared to other development tools out there. VB created applications that had to ship with a shared runtime library. Windows wasn't great at versioning these libraries so developers often shipped their own VB runtime with their executable. The executable was small and the runtime was comparatively huge which had a negative impact on user perception when downloading the installers. Before moving on to Microsoft in 1996, Anders Heilsberg was the Chief Engineer at Borland that oversaw the development and release of Delphi 1.0. For years, VB felt like an application that could make deployable versions of itself. Delphi felt like a programming environment that compiled code into applications. After Heilsberg moved to MS, a lot of improvements were made in VB that utlimately made Delphi less attractive, especially during Borland's strategic waffling known as "The Inprise Years": https://en.wikipedia.org/wiki/Borland#Inprise_Corporation_Era https://en.wikipedia.org/wiki/Borland#Inprise_Corporation_Er... If you want to get a feel for what it was like then check out the FOSS clone "Lazarus".
- bloblaw 3y ago> After Heilsberg moved to MS, a lot of improvements were made in VB that utlimately made Delphi less attractive Well, not actually. With Anders' move to Microsoft, VB6 (aka, VB "classic") was discontinued. Microsoft supported Visual Basic syntax on the .NET runtime, but the vast majority of VB programmers considered this to be a different language because developing for the .NET Framework (remember this is ~2001) was a huge departure from VB Classic. Many VB developers petitioned Microsoft to open-source VB6 or continue releasing improvements on it. Microsoft did not and chose to continue with their .NET + C# strategy.
- analog31 3y agoVB6 was my last VB. It came at just the time when getting a computer onto a network to download and install a giant distribution was touch and go. The building where I worked didn't have networking in the labs, the "labs" were whatever space we could find, and the "lab computers" were old cast-offs retired from office use. It meant that supporting VB.NET with a brand spankin new networked computer wasn't a safe assumption. At the same time, I was playing with Linux at home, and wanted tooling that could run on either platform. I learned Python at home, and then made the switch at work. One of my last VB6 apps, thousands of lines, has been running in the plant without issue for 15 years. On one occasion I had to bump up the declared sizes of some fixed length arrays. As for GUIs, I never found anything close to VB, but also decided to just write a thin wrapper around Tkinter and let my layout be generated automatically by default. I haven't missed laying out my GUIs, which were always a hodgepodge anyway.
- cstejerean 3y agoThere's a bit of a gap there though between 1996 and Visual Basic classic being discontinued. VB.NET came out in 2002 but VB6 was supported until 2008. VB5 in 1997 and VB6 in 1998 really closed the gap with Delphi from what I remember.
- jules22 3y agoVB5/6 had native code compilers. Performance wise, the gap was reduced. But it still was only object based and not full OOP, VCL was much better in all respects, so were the GUI builders. The component ecosystem was much better, despite having a much smaller user base. I prefer not to use Object Pascal today, but back then, it was superior to using VC++ or VB.
- bloblaw 3y agoHaving worked with both Delphi and Visual Basic, I've found that Delphi had the edge, especially for professional apps. Its use of Object Pascal meant you got compiled, efficient code right out of the box, and it didn't need an extra runtime like VB. The VCL component library in Delphi is still unmatched in native code – very comprehensive built-in (and commercial) components, and customizable. Plus, Delphi's database connectivity was unparalleled and can be setup in the designer where you could see data queried and returned live in your grid component! Delphi also supported advanced language capabilities (when compared to VB), like inline assembly and pointers, which were essential for low-level optimization or system hacking. The robust error handling in Delphi was another plus compared to VB's older 'On Error' style.
- ygra 3y agoInterestingly enough, the VB6 runtime has been part of Windows for quite some time, to the point that my old VB6 projects still run fine, while my experiments with VB.NET in .NET Framework 1 and 2 currently don't, since the ringtone isn't preinstalled. (granted, moving those to modern .NET is probably fairly easy)
- r00fus 3y agoI wrote a neural net ML app in the 90s using Delphi. VB was easier to start but Delphi was nearly as fast to build, code was compiled (fast!), Object Pascal supported OOP and the UI features like visual form inheritance I have yet to see implemented anywhere else.
- pkphilip 3y agoFew things that made Delphi great: for one thing you could develop all sorts of apps in Delphi - from system management apps, to database heavy apps, to editors, to games etc. 1. The component architecture was just great - I have yet to see any language/platform with a more sophisticated component structure even now. 2. There were all sorts of free and commercial components that you could download and install into the IDE and have it running in your application in next to no time. ActiveX etc didn't even come close to the level of integration and speed that the Delphi component architecture provided. 3. Components could be loaded into the UI during the design time itself and you could see it functioning directly within the IDE when you place it on your form. Example: You could connect to a database, run a query, put that into a table with all sorts of sorting and navigation functions and you could see this working even without compiling the 3pplication. 4. It was trivial to develop components for Delphi - even though it was so sophisticated. You could develop one in about 15-30 minutes. 5. The compilation speed was just insane. It just blew everything else out of the water and so you could do fast compile+run cycles.
- capr 3y agoI agree with everything except 4. It was easy to develop trivial components, but anything more complex and you'd have to do some serious work and the IDE would crash on you on mistakes and there was no way to debug your component live. I can't imagine the pain those DevExpress developers went through to make that VCL data grid of theirs.
- mike_hearn 3y ago1. The language was better for big apps (statically typed, more powerful, lots of features like proper exception handling). It supported proper multi-threading and better Win32 interop, which in practice you often needed for advanced effects in both Delphi and VB. 2. The documentation was excellent and always reachable from anywhere in the IDE. It was all local of course so if you wanted to know about something - a control, an API, a part of the UI, whatever - you just pointed at it and pressed f1. Help would appear immediately with low latency. It also came with a big pile of yellow and blue covered books that taught you everything you needed to know. 3. The UI was well optimized with things like tabbed editors before tabbing became popular. It was made up floating but dockable windows, sometimes this was annoying but other times it let you keep things on screen. 4. Very good support for database connectivity. 5. The ecosystem was more coherent. VB wasn't usable for many advanced tasks so VB devs relied heavily on components written in C++ (OCX controls). Delphi was more powerful so components were often written in Delphi itself, with all the attendant advantages. 6. "Components" were more powerful than ordinary libraries of the type you get today - you could install a component into the IDE and it'd appear in a components picker at the top. You could then immediately drag and drop them onto a "form" (window) and begin configuring it with an interactive property and event UI that was always present on the left. This worked even for components that were not UI components, for example, you could drag/drop a timer from the component library onto a form, see all the properties and configure them visually, and then double click on the event to be taken to an editor window with the event handler already written out for you. 7. There were lots of little quality of life things, like it came with some stock icons for buttons. Last time I used Qt Designer was the KDE2 days, it's almost certainly better than Delphi by now. Versus the way we do things today, some stuff was better and some is worse. Delphi was primarily a wrapper around Win32 so apps written in it weren't portable. Back then it didn't matter of course, Windows had a monopoly. That meant it inherited Windows' limitations - UIs weren't responsive, styling barely existed, typography was limited, and the deployment story was nonexistent. That's why you keep seeing references to how great it was that Delphi made statically linked EXEs; same reason people like Go today. Operating systems suck hard at deployment, one of the things that eventually pushed people towards the web. In the grand tradition of platform devs ignoring deployment entirely, Borland never fixed it even as the web ate their lunch along with Microsofts. On the other hand, the components model was pretty nice. Being able to configure libraries using a simple auto-generated GUI made them often much easier to use.
- pjmlp 3y agoVisual Basic 6 was quite limited, it was a programming language designed for doing applications. Delphi, with its Object Pascal roots, was(is) a systems programming language that also happens to have a nice RAD tooling for GUI applications. Put in another way, it didn't own anything to C++ in capabilities, and had VB like tooling. VB had to wait for version 6 to support AOT compilation and being able to implement its own COM based controls without depending on C++, and even then it only supported a subset of COM features. Meanwhile the GUI framework being used by C++ Builder is actually written in Delphi.
- deleted 3y ago[deleted]
- eternityforest 3y agoI would really expect there to be some FOSS Python or JS insta-app-maker that's as easy as VB was, but for some reason nobody wants to work on such things.
- deleted 3y ago[deleted]
- sho_hn 3y agoThere is Gambas: https://en.m.wikipedia.org/wiki/Gambas https://en.m.wikipedia.org/wiki/Gambas It's more that few people want to make and distribute small desktop apps anymore.
- anigbrowl 3y agoThat's 20 years old. People like native apps, it's just that GUI programming is generally such a pain that many people avoid it.
- eternityforest 3y agoI don't think it's the GUI programming, at least not for me. It's the cross platformness, and the fact that everything needs some kind of sync feature these days, plus just the sheer size of modern GUI apps.
- askvictor 3y agoHave a look at https://anvil.works https://anvil.works -it's a drag and drop web app creator using python for front and backend. It's as close to Delphi for the modern age as I've come across.
- jules22 3y agoI used it. The user experience is not remotely close to Delphi, but it has WYSIWYG. The closest Python had to Delphi was Boa Constructor, but it stalled quickly, decades ago.
- alberth 3y agoVB6 was the only “low code / no code” tool that actually delivered on its promise. Bill Gates demoing it from 32-years ago. https://youtu.be/Fh_UDQnboRw?feature=shared https://youtu.be/Fh_UDQnboRw?feature=shared
- askvictor 3y agoDelphi was even better. In fact, having used both, I hated vb6.
- jules22 3y agoSame. I learnt VB because VC++ with MFC was too complex for what I needed it for then. Hated VB after seeing Delphi.
- jen20 3y agoI spent a long time doing VB6 and Windows.Forms, the idea that it was meaningfully better than NeXT or Delphi is just wrong.
- csomar 3y agoMicrosoft Access was way ahead, in my opinion. Especially that it came with a ready database, reports, etc.. and with VB6 you could practically do anything you want with the operating system. It's interesting we have thrown it all for something much more inferior.
- pasc1878 3y agoVB6 could do more than access. I used both in the day and I found Access basic was limited and once you had some tools in VB6 to deal with databases and tables then it was easier than access. However this is so long ago I have forgotten the details. Access was probably simpler for a simple database entry and query. However Access"s database was a disaster constantly getting corrupted etc. However I would note I was in companies that had access to full databases like Sybase and Oracle and as we had site licenses they were effectively free for each project. We often took a users Access project and made it maintainable in VB6.
- stavros 3y agoVB6 was fantastic. The language was terrible, but the IDE was the best way to make GUIs that ever existed. The Windows 98 era was excellent for UX as well, with every element on the screen having an accelerator key, consistent menu guidelines, consistent visuals, keyboard shortcuts, etc. It was just brilliant.
- timcobb 3y agowas the language even that bad?
- novok 3y agoIt was a running joke about how bad it was. It was a bit before my time although, but even when I saw people use it as a kid and playing with it myself, it was pretty obvious how fast it was in making things.
- svachalek 3y agoIIRC, there were no user defined types. You had to write the whole app using primitives.
- recursive 3y agoThere was definitely a `Type` keyword that was similar to a struct.
- ankurdhama 3y agoYou can create classes in VB 6 from IDE where you would add a class module and define code in that module. There was no "class" keyword AFAIK.
- lou1306 3y agoWell, a language that allows something like "On Error Resume Next" is not that great by any definition of the word... Having said that, I must also say that I started coding on VB6 and if I had to show some elemetary programming to a ~10-yo, I'd give them something like QB64 in a heartbeat. There's something good in grappling with a "bad" language, educationally speaking.
- unleaded 3y agoWindows Forms is pretty much the successor to VB6 and I think is still supported. Still nothing like it on Linux though, even though people say Linux is way better than Windows for software development :/
- jpc0 3y agoThe subset of GUI software is much much smaller than the greater whole. I do agree though that any GUI programming on Linux is a pain compared to Linux / Mac. However the proliferation of web based apps, even those running in electron shows how valuable a truely cross platform GUI framework that is easy to use would be. Google is trying with flutter and dart but last time I used it I felt it was still being iterated on far too quickly, maybe a bit ( maybe even now ) it will be more friendly to use.
- doubloon 3y agoVBA is still used all the time. As long as you have Excel or Outlook you can use it.
- FpUser 3y agoI think by overall value it pales in comparison to Delphi. At leas this is my experience.
- kragen 3y agowhat aspect of the development speed do you feel is faster? i feel like i can write things like <select name=title><option>Mr.<option>Ms.</select><input name=name><input type=submit> faster in html than i could in vb6. maybe i'm wrong about that? you can try it in your url bar: data:text/html,<select name=title><option>Mr.<option>Ms.</select><input name=name><input type=submit> of course that doesn't give you database integration, but if you just want crud, you can get crud pretty quick out of django's admin here's a couple of things i've hacked up recently in dhtml which i think wouldn't have been easier in vb6 http://canonical.org/~kragen/sw/dev3/ifs http://canonical.org/~kragen/sw/dev3/ifs a 2-d iterated function system editor http://canonical.org/~kragen/sw/dev3/clock http://canonical.org/~kragen/sw/dev3/clock a watchlighting clock
- novok 3y agoNow try to make a layout with that form example that you could free form put anywhere in 2d space and have it flex properly as the window size changes beyond the defaults that html gives you and make the generic B2B SAAS dashboard like Segment, RevenueCat, Mixpanel, Datadog, Sentry, etc. I bet you could make a VB6 / Pascal equivalent much faster than you would be able to with a mobile or web app, especially if they were updated with a decent graph widget set. Also your two examples are drawing canvas examples, thats a pretty different target that delphi / vb6 have with their GUI toolkits.
- kragen 3y agoi'm struggling under the misconception that having things flex properly as the window sizes is the default in html and basically impossible in vb6. but i'm very open to having my misconceptions corrected. is there a public video that demonstrates what it looks like when an expert uses vb6, so i can see what things that are hard in html are easy in vb6? i have no idea what segment, revenuecat, mixpanel, datadog, sentry, etc., are
- PH95VuimJjqBqy 3y agoThe point everyone is making is that you could have modernized the VB6/Lazarus approach to meet modern needs and it would have been much more productive than what we have currently with html+css. And indeed, many of the complaints people have about VB6 not supporting multiple resolutions, etc, are fixed in Lazarus.
- pxmpxm 3y agoDidn't Microsoft more or less just copy everything from Borland Delphi? They had drag and drop GUI stuff in the early 90s.
- sedatk 3y agoNo, Delphi came out years after Visual Basic. There was an earlier Turbo Pascal for Windows, but it didn't have visual design features as far as I remember.
- choppaface 3y agoFlash and Actionscript did this for the web but then Apple killed Flash. Maybe in the era of LLM-assisted webdev tools (like teleporthq.io or MS Sketch2Code etc) the LLM will help sidestep API moats and help bring back such low-code IDEs. Or it could backfire and bring about API moats with non-human-accessible APIs (obfuscated binary only).
- scarface_74 3y agoApple did not kill Flash. Flash killed Flash. Adobe claimed that they could get Flash running on the first iPhone if Apple let them. When Flash finally did come to mobile via Android in 2010, it required 1GB of RAM and a 1Ghz CPU and it still ran badly. The first iPhone had a 400Mhz CPU and 128MB of RAM. It could barely run Safari. Were you around when the only way that Safari could keep up with your scrolling was by having a checkerboard pattern while waiting on the screen to be redrawn?
- pkphilip 3y agoYes, Delphi too. So also tools like Powerbuilder for developing database-heavy apps. There is nothing even remotely close to those tools now.
- mhh__ 3y agoNever really got why Microsoft didn't keep going with that kind of thing. Why don't we have .net properly inside excel instead of VBA? Money? Internal elitism?
- akho 3y agoOffice Developer Tools exist. They're trying to steer people away from end-user programming towards using more well-defined, tested, features. I find it patronizing, but, having seen some VBA, understand the reasoning.
- tomatocracy 3y agoVBA can't really be removed due to the need to support legacy files (especially Excel). For more sophisticated stuff they expect you to use Office Developer Tools or similar now.
- TeMPOraL 3y agoSekhurity. Can't have user-programmable tools, because they could be used to ship (gasp!) malware, or let users (GASP!) work around policies of their employers' IT staff.
- qingcharles 3y agoYou're totally wrong. The IDEs I was making in VB6 in the 90s I'm making about twice as quick in Visual Studio 2022 in C# with WinForms. In fact, quicker because I'm getting GPT to write any gnarly code I need -- like I just asked it if it was possible to add a tooltip to a ListBox and it churned out exactly the code I need, something I would have spent a bunch of time figuring out on my own.
- ant6n 3y agoIn Delphi u didn’t need any code to add a tooltip to a component - just add it as a property in the inspector. U can do it in code if you want, but it’s easy to do since u see the available properties in the inspector.
- jcelerier 3y agoThat's how it works today in Qt Creator too
- ygra 3y agoI guess that was about tooltips for the listbox items, because just a tooltip for a component would be the same with Windows Forms by just setting a property in the properties panel (granted, it's basically an ancient form of attached property that uses a separate tooltip component, but the UI streamlines this.
- qingcharles 3y agoIt's the same in WinForms, my example was bad as I was trying to do something "unsupported" by the base objects :)
- wruza 3y agoI never used VS/C#, but can you drop a TDBGrid connected to a TDataset and then just resize autoloaded columns to your taste? Discussing tooltips on a listbox in RADs is like discussing colors of pencils in a hi-tech workshop. >>Web and mobile development (which I have done all 3) are significantly slower The above will probably take half a day in web development (assuming an experienced developer), so no, they aren't "totally wrong" at all.
- djadmin 3y agoBuilding apps with VB6 was so productive, wish it was that easy to build mac apps these days.
- badsectoracula 3y agoI haven't used it recently on macOS but Lazarus[0] has mac support. I used it some years ago on my iMac. If you don't mind proprietary languages, there is Xojo[1] which seems to be designed mainly around Mac (it can do Win32 and Linux apps though). [0] https://www.lazarus-ide.org/ https://www.lazarus-ide.org/ [1] https://www.xojo.com/ https://www.xojo.com/
- AtlasBarfed 3y agoThere was also PowerBuilder and other "4GL" tools. As an old fart, GUI toolkits and building tools are one of those categories of absolutely essential software that gets scrapped and rebuilt (not in a good way) for every platform. Kind of like IDEs for new languages, to the point of the article. First comes the language and basic CLI tools, and then about ten years later you might have a mature IDE with full language-specific syntax coloring, autocomplete, visual debugging, variable watches, etc. And these 4GL tools were doing this with BASIC variants (not compiled) atop maybe 200-300 Mhz processors and 16-64MB (not GB, MB) of RAM. It blows my mind that modern OSes have slowdown and stuttering when the amount of CPU, considering multicore, more pipelining, branch prediction, etc, is likely 100x stronger than the the CPUs back then. The 4GL languages/tools were all closed source and that did not age well. PowerBuilder folded (probably killed by Visual Basic), and then Visual Basic was killed in one of Microsofts platform purges. They also were tightly coupled with databases in a UI --> DB architecture. As server architectures exploded in complexity beyond that, the 4GL tools couldn't adapt, partly because they were leveraging so much power of SQL under the hood, and the various server and RPC/invocations never offered the same power and flexibility. But I can hear you .. SQL over the wire? Like send SQL to a backend service so it can be intercepted and injected and all that? Yup, probably part of the problem. Thick clients and direct internal LAN communication is an implicit requirement.
- nsonha 3y agoI doubt it
- pjmlp 3y agoIf one wants, VB.NET with Windows Forms still does offer a similar experience.
- jules22 3y agoVB6 was primitive compared to what Delphi gave us. It had live design time data binding, visual form inheritance etc. VB and VC++ were primitive compared to that. VCL vs MFC? No contest. The API was powerful, fast, great to extend by inheritance, best in class layout management. There were about 8000 third party components at web sites like Delphi Super Page. Half of those were free, rest were affordably priced for commercial use. Much of the 90s experience lives on in FPC/Lazarus, but it did not get much better after that, and few use it. I wish they aligned themselves with a more popular language like Rust or Go for a more cohesive experience, while keeping Object Pascal (built with IDE experience in mind). I still prefer the GUI building experience in Delphi 6/7 than anything that was produced since then. C#/Winforms is fine, it was designed by the same person - Anders Hejlsberg, but I wanted something native. It's unbelievable that something modern like Flutter still fails to capture the design convenience of Delphi, from decades ago. Yes, the design markup is great, but I don't even want to look at it most of the time. The later Swing/SWT editors never came close. Even Qt, which was inspired by it, never provided the component market experience of Delphi, and it was much more bloated in runtimes. I fell in love with GUI design with Delphi, but otherwise hated it since.
- badsectoracula 3y ago> Much of the 90s experience lives on in FPC/Lazarus, but it did not get much better after that, and few use it. I wish they aligned themselves with a more popular language like Rust or Go for a more cohesive experience A very core aspect of LCL and how Lazarus works (and VCL/Delphi for that matter) is language features like metaclasses, RTTI, properties, etc which allow the framework to register classes, instantiate them at runtime and inspect the class definitions so that serialization/deserialization and IDE features like the object inspector will work. AFAIK neither Go nor Rust have this. The only language off the top of my head that has it is C# (which isn't surprising considering both Delphi's dialect of Object Pascal and C# were designed by the same person). Of course there can be language extensions like C++ Builder did for C++ but they'd need to maintain their own compiler (or fork). Personally i get the impression that Visual Basic and Delphi's language features were added in tandem with the underlying framework (if not deciding first how the framework and IDE features will look like and then deciding on the language features to support those) whereas modern UI stuff are made with whatever the target language has in place.