Typescript + Next.js + Electron would be much, much faster for me to develop for than GTK + C, and even than Python + PyQT.
I wish there existed a modern cross-platform open source reactive GUI framework which was less of a resource hog than Electron, that would be great! Qt specifically is not much more economical, though the redistributable is smaller. Java is also rather nice for cross-platform GUIs, and also rather a hog.
Sadly, Electron is not so outstanding wrt resource consumption :-/
Flutter (Desktop) comes pretty close to that. Its really fast to write and your code works on IOS/Android/MacOS/Windows/Linux unless you need Platform specific API's, and even that is possible.
in the case of Electron, probably. it is comparatively difficult to release a cross platform graphical application in any other way.
in the case of other "high level" languages like Python, almost certainly not.
I remember reading something on Dropbox' engineer or developer blog about their conversion from Python 2 to Python 3 and how well it went for their desktop client, which had over one million lines of code and I had to stop and reread that a few times to make sure I read correctly.
How "high level" is Python if this many lines of code are required to create the Dropbox client? maybe Python is the epitome of a high level language, I don't know, but if it is, I don't see how one million lines of Python saves anyone any time over something low level like C or even Assembly, really. the promised tradeoff of execution speed for programmer productivity isn't there, at all, and almost no one sees it.
even if the majority of those lines of code are in libraries, why do those libraries have so many lines of code? what can they possibly be doing to need that many lines of code? it really does boggle my mind.
entire operating systems require fewer lines of code than the Dropbox client, and are written in languages that are supposedly much less expressive per line of code. so where is this supposed developer productivity when it takes over one million lines of code to write the Dropbox client?
I'm not trying to pick on Python, specifically, mind you; this is just an example I was thinking about recently. I'm quite sure that there are other tradeoffs also not delivering what they promised at all in all other languages, and I'm 110% certain no one is noticing those, either.
Do you have some baseline to which we can compare? How many lines "should" it take?
By no means do I wish to awaken the ghost of that infamous HN comment on how easy/why someone else had not done those bells and whistles before.
I ran `git clone` on the repos of both rsync[0] and the official Dropbox SDK for Python[1]. I then ran sloccount on both of them.
---
rsync came in at a total of 51,410 physical source lines of code.
The Dropbox SDK came in at a total of 74,140 physical source lines of code.
---
(This data generated using David A. Wheeler's 'SLOCCount'.)
wxWidgets has been enabling cross-platform native graphics since the 1990s. Though the overall development experience is rather MFC-like, and not to many people's taste.
Unless you've spent lots of time (half a decade or more) at each layer of "full stack", it is really hard to comprehend just how mind-bogglingly fractal systems requirements get the more users you expose them to. Anytime you go b2c, or even b2b with a large enough user base, be prepared to say, "huh, I didn't see that coming" once a week or more frequently.
There are entire problem domains that lay submerged until you reach certain scales. Some code bases reflect the encapsulation of those submarine domains; some don't, most assuredly, but until the software becomes unused, at my clients I never ask the question the way you ask. Instead, I ask them to walk me through the code at successively finer-grained conceptual blocks until I reach the level where I can start attacking the problem I've been brought in to help address.
I do somehow agree with you, but going from Assembly to C was a huge step, from C to Java/C# a huge step due to GC and better typing.
Python indeed does not feel much higher level to me than e.g. C#, the only reason I've ever really seen why people save lines of code is the lack of braces, which doesn't really matter IMO, and because there are so many libraries. A big reason why there are so many libraries? I guess because people think it's easy, nothing innate in the language, certainly not that it's easy to package stuff.