It allows for native applications for a variety of platforms, is open and free and isn't constrained to a single OS like WinForms are. Things might improve with the new .NET versions somewhat and Java is also passable (with either Swing or JavaFX), but at least Java doesn't really feel native and needs JDK, as does .NET.
Is Electron one of the only modern options (that isn't native though, only cross platform), or am i missing out on a whole class of lovely tools out there?
Lazarus is rather cool but even after you learn Pascal (which is rather alien to modern programming) the built-in not-so-smart code editor feels somewhat painful to use after VisualStudio and IntelliJ. These 2 entry barriers make it feel overly vintage and demotivate from using it.
As for Electron - the idea of learning the web front-end stack and designing UIs from scratch (rather than composing them from common controls), just to produce insanely heavyweight executables compatible with a limited set of platforms (e.g. Lazarus is much more cross-platform, it can even run on Haiku) doesn't sound inspirational at all.
> built-in not-so-smart code editor feels somewhat painful to use after VisualStudio and IntelliJ
What is missing from Lazarus' editor? I never used IntelliJ but from my experience with Visual Studio (up to 2019 IIRC) i've found Lazarus' editor to actually be more featureful than VS in pretty much everything i tried: syntax completion (ctrl+space), code completion (automatically writing code for missing declarations, syncing interface and implementation, implementing abstract methods, overriding parent class functions, etc), code navigation, etc.
Perhaps it actually is good, I probably just didn't dedicate enough time to discover all its features. Or maybe all the cool stuff was added right after I tried it (it's been some years already). I mostly mean context-aware completion suggestions, refactoring and code navigation. I already can't remember what exactly was missing (I didn't find) when I tried.
> I never used IntelliJ but from my experience with Visual Studio
Lazarus had what i describe for at least a decade. However one thing that might happen is that you didn't notice them because some of the functionality is under different shortcut keys.
For example Ctrl+Space will do context aware completion (e.g. will put similar types to the context near the top) but other forms of code completion, like automatic variable declarations, creating definitions in implementation section for for declarations in the interface section, etc are done with Ctrl+Shift+C. It has a bunch of different shortcut keys for different stuff and you need to go through both the main menu (Source menu mainly) and the context menu (Refactor and Source) to find them. Also some of the default settings aren't ideal (IMO), so you may want to check the Codetools category in the options that controls some of Lazarus' behavior there.
> On this note, is there any modern RAD solution like that, that's not essentially in maintenance mode, slowly dying or abandoned altogether?
>
> The closest that i can think of is Lazarus for FreePascal: https://www.lazarus-ide.org/
Well, Lazarus is exactly what you are asking for. Its GUI designer is leaps and bounds ahead pretty much every other GUI designer for desktop applications and the IDE integration with the underlying framework is second to none. The project isn't only under active development but has more developers than it ever had.
The WinForms you mentioned feels like some abandoned beta that barely provides Delphi 1 level functionality in terms of "RAD-ness" and other frameworks abandon the entire RAD idea altogether, regressing back to glorified resource editors like you'd see in 16bit Windows back in 80s.
IntelliJ includes a Swing builder (and is itself written with Swing).
The product that I miss for little SMB projects is Access. It was the best option for building single-user CRUD apps with a really thoughtful bundle of features. (It totally fell over with multi-user, and every user needed a license for the runtime (with some exceptions) and VBA had some major warts, but in terms of DX it was great)
> The product that I miss for little SMB projects is Access. It was the best option for building single-user CRUD apps with a really thoughtful bundle of features.
Try Gupta Team Developer. It's an SQL-centric binding-driven visual RAD tool where you draw the controls visually and basically bind them to SQL queries. It was pleasure and fun to use the last time I tried. To me it felt way better than Access.
I know and that's why I ask. I mean I would like to configure an existing pre-built non-free Swing app (a JetBrains IDE) to use the default Swing PLAF (the PLAF NetBeans used the last time I tried it) instead of the one the original developer has bundled.
Glade for Gtk+ is another one, but it does seem to be unsupported these days. Gtk+ devs are apparently expected to write down their UI design by hand, with no visual or RAD workflow.
IIRC Glade was just a standalone UI designer (not an IDE), wasn't it? I actually tried QtDesigner + PyCharm and liked both but lack of the integration feels itchy. Very usable but not nearly as pleasant as VisualStudio with WinForms.
As I remember it, Glade would output an XML document structure representing the UI which could then be loaded via libgtk. It seemed like a nicer model than code generation, though I don't remember much about how it worked.
> As I remember it, Glade would output an XML document structure representing the UI which could then be loaded
QtDesigner does exactly this for Qt (and you have to run a command to generate the Python code from the XML then). Good enough, better than nothing but still not an actual IDE where you can just click on the button you drawn and jump to the code seamlessly or select a function you already wrote to be an event handler right in a control properties window.
This adds an extra step of actually "building" the UI which prevents you from changing things on the fly.
This may sound unimportant but when you have it the actually integrated way like in the VisualStudio WinForms Designer, building an app actually feels like painting with Bob Ross - satisfying and productive. And doing the UI and the code in different apps feels like having separate kitchens (rooms) for cutting the food and for roasting it.
In fact I imagine my ideal app dev tool as cross-platform VisualStudio WinForms with WPF-like bindings and programmed in F#. Oh boy that could be a pleasure I would pay some month salaries of mine to get.
>still not an actual IDE where you can just click on the button you drawn and jump to the code seamlessly or select a function you already wrote to be an event handler right in a control properties window
Delphi and C++ Builder, Qt, .NET, and XAML C++ (alongside WinUI) could still be an option if powers that be at Microsoft finally starting listening to feedback.
The closest that i can think of is Lazarus for FreePascal: https://www.lazarus-ide.org/
It allows for native applications for a variety of platforms, is open and free and isn't constrained to a single OS like WinForms are. Things might improve with the new .NET versions somewhat and Java is also passable (with either Swing or JavaFX), but at least Java doesn't really feel native and needs JDK, as does .NET.
Is Electron one of the only modern options (that isn't native though, only cross platform), or am i missing out on a whole class of lovely tools out there?