Lazarus IDE – write once, compile anywhere
getlazarus.org
getlazarus.org
OP's link leads to a totally different download system
That said, my other candidates were learning Tcl to write a Tk app (it's gotta be easier than deploying Python/Tk, right?) or biting the bullet and trying to write a single-page webapp that can talk to a local SQLite database, so maybe GTK 2 isn't the worst thing in the world.
It can't build a macOS desktop version. This was found out a week ago in a "shipping to production" thus forcing a certain team to say no macOS version until v2.. Which is now flutter 3.x now. Flutter better? nah.. just it has a macOS desktop option now.
I used this when I had a mac and it worked well.
I wouldn't touch maui for now.
(I have been using Godot Engine to do some toy apps and it sort of works, but…)
"Plain" Pascal is about as efficient as C, uses slightly less memory, is safer because of its lower dependency on pointers, and is easy to work with, especially with strings.
Then Object Pascal has classes, units, interfaces, generics and type safety. Is it still not enough? https://castle-engine.io/modern_pascal
An alternative would be to build a Go program with a wish/tk frontend, which is also cross platform, native and simple to write. It's actually straightforward to do with go-pipes for the binding with wish, and provides a nice decoupling between the program and its UI. Also, it's fairly small and efficient unlike Qt, or worse, web technologies.
It is a niche choice but it is not outdated.
Syntax-wise, it was weird the we had to do a lot of "PFoo" pointer-to-foo style typedefs. Syntax has a few strange "addressing" models builtin, including out vars etc. Allocation using "SetLength" is weird, a function that takes a dynamic array can realloc it but the changes would not (or only when reallocation was required?) reflect in the caller. I resorted to plain pointers and manual memory management, because everything else was too confusing for me.
To wrap up, it has a lot of fluff built in that doesn't scale because of non-orthogonality of features, and some OOP that is hard to use IMHO because it is too implicit. As a C programmer I am biased but I find that the usable parts are the C-like parts. The syntax is considerably more clunky compared to C, with all the keywords that tire the eyes and fingers after writing a couple hundreds lines of code.
On the plus side, I'm not an ecosystem guy but I'm sure the ecosystem has a lot to offer functionality-wise, including extensive coverage of the Win32 API. And the compiler is really fast, I have good memories of it and the (Embarcadero) IDE. A big reason why it's fast is that the syntax and module system are better designed than C as far as allowing efficient implementation.
I have been enjoying it to make bespoke gui apps for more than a decade.
Unless that runtime is what you're referring to as a JIT. But since it outputs machine code that is a compiled program, not a JIT. I obviously can't speak to the size as I've not written anything yet, I'm just practing.
Quite happy to be corrected if I'm misreading things though.