Live data from Hacker News

Show HN: Cross-platform desktop applications with PyQT

github.com

211–220 of 293 posts

Re: Show HN: Cross-platform desktop applications with PyQT

#211

Earlier quoted context omitted.

People like you hate the idea of using JavaScript to write desktop apps because you feel like the end result is too slow and inefficient. Web developers hate the idea of using C++ to write desktop apps because the language is brittle, outdated, and overly complex. We need a middle ground: a language with the syntax of a scripting language, like Python or JavaScript, that compiles down to native code, like C++ or Rust…

Rust might eventually get to that point, and C++ itself with QT is relatively easy if you stick to the basics. But in a way, anything trying to please both higher level and lower level developers is going to have to settle for some kind of middle ground. The best situation I can think right now, and the one I would adopt myself, is indeed PyQt. Mostly because Python makes it easy to drop the compute-heavy application…

Rust has been harder for me to pickup than C++.

I want to like it. The problem is that the one character symbolic syntax notation remain nonsensical and seem arbitrary to me.

Re: Show HN: Cross-platform desktop applications with PyQT

#212
post #156

Earlier quoted context omitted.

Speaking as a developer who primarily writes Python and secondarily C, Rust, C++, bash, and others as necessary, who has in fact worked on a large-scale C++ UI project in Qt on the Linux desktop running alongside PyGTK UIs, and who doesn't actively write JavaScript, I have to say that JavaScript is a really good choice of language, especially for UI, because it has a strong bias towards event-based programming and ca…

I agree with you. I can't think of a better language for writing GUI then Javascript right now, in particular because it has so many great toolkits and widget libraries. But what makes those apps resource hungry and sluggish is usually not the UI: it's the whole lot of applicationg logic that's buried into their cores using Javascript code for stuff the language was not designed for. I'm primarly a Python developer t…

Yes - and even when I was working on the Qt apps, I really wanted a shared non-Qt and preferably non-C++ library for application logic that was nicely portable between Qt on desktop, Python for the spots where we needed it, and Android (Java) and iOS (Objective-C).

I am reasonably excited about WebAssembly as a solution for this for web apps. (Although web apps also have a natural front-end/back-end separation, and people consider JS as just one of many potential options for a back-end language, which helps a lot here.) It does surprise me that there isn't good support for doing this with actual native code on Electron.

Re: Show HN: Cross-platform desktop applications with PyQT

#213
post #167

Unfortunatelly PyQt does not solve the problem of Javascript engineers who are not willing to learn a new programming language. That's the whole reason for the whole Javascript fadigue. Computer Science has had "had tools for the right jobs" for years, but now we have a large developer base that only knows Javascript and think it's some kind of holy grail of computing. Happened before with Java. Happened before with…

Why are JavaScript programmers even relevant? Do they, as a group, have some desirable skill other than "will code for food"? At least successful C++ programmers HAVE to be decent-ish. The language is unforgiving.

You're of course welcome to your opinions, but I strongly suspect that you need more experience as a developer to understand the answer to your question, if you don't have a sense of what things are demanding in JS and if you think that being able to write C++ is clearing some sort of high bar.

Re: Show HN: Cross-platform desktop applications with PyQT

#214

Unfortunatelly PyQt does not solve the problem of Javascript engineers who are not willing to learn a new programming language. That's the whole reason for the whole Javascript fadigue. Computer Science has had "had tools for the right jobs" for years, but now we have a large developer base that only knows Javascript and think it's some kind of holy grail of computing. Happened before with Java. Happened before with…

For GUIs in particular the problem is far from solved in the sense you've mentioned.

If you write your program in C/C++ we're good, though now you're using a clunkly language.

If you're using Java you have some decent GUI options, but it's a bit ugly. Still alright.

In almost any other languages you're in deep trouble. The prototypical example: building out interfaces in Python.

You have some GUI bindings to the cross platform libs, but many have really old and outdated docs. Or licensing issues. Or installation issues. It's super hard to ship a GUI for your Python app compared to anything else with the language

Ultimately almost all other languages are used for server software. Packaging and GUIs are super low on the list of priorities.

The only exception to this is JavaScript! JavaScript is so much about front-end stuff that legitimate effort is put into getting stuff working well and painlessly. Sure React didn't invent FRP, but the communities gone further with the concepts than any other community. Bar none.

So many people refuse to admit it, but the JavaScript community is the state of the art in GUI development. The biggest crutch bring the weak native support of course.

Re: Show HN: Cross-platform desktop applications with PyQT

#215

Earlier quoted context omitted.

Yeah, I wish you all the luck... but look at it from a new programmer perspective, or someone that wants to create an app for money, but doesn't know if it will work. On one hand you have the complex licensing thing (PyQt) where you are limited to desktop of Mac, Win, Linux. On the other you have a skill (JS dev) that is good for literally any screen, on any platform with almost zero complications for commercial apps…

You raise valid points. Of course, a web developer who has never used Python will be more comfortable with Electron. That may be a very good reason for her to prefer it. Regarding licensing, you can simply buy the commercial license only when you go public / begin making money. It's not that difficult I think. But as I said, you are correct in that Electron is easier to use for many people. I'm also the last person t…

[deleted]

Re: Show HN: Cross-platform desktop applications with PyQT

#216
post #32

Earlier quoted context omitted.

What do you mean? I've uninstalled the Slack desktop app and just use the website because the app is such a terrible experience.

Wow. You realize they share most of the same code, and are essentially feature identical? Seriously, open the desktop app, then open the web app. They're identical. Precisely because they chose to use a toolkit that let them easily handle cross platform issues with UI in a sane and repeatable manner.

The Electron and browser Slack apps are not /exactly/ the same on Windows. The Electron version of Slack swaps out the normal titlebar for a black bar and a hamburger menu. The point of a native app is to integrate with the native window manager, but Slack overrides the native styling. (Spotify does the same thing.) The browser version, by virtue of running in the web browser, is consistent with the rest of the system UI.

Re: Show HN: Cross-platform desktop applications with PyQT

#217
post #29

Earlier quoted context omitted.

> create a very good looking UIs I don't want a good looking UI, I want to have a fast and _usable_ UI! This fad in the UI and JS world that absolutely everything has to be "beautiful" needs to go away.

Maybe you don't want a good looking UI, but it's safe to say that at least 90% of users want a good looking UI. Good looking UI is a major part of user experience.

I want a good looking UI, I just find that electron doesn't deliver this. A good looking UI is one that blends in with the rest of the system, electron apps look like their being run in an emulator from another OS.

Re: Show HN: Cross-platform desktop applications with PyQT

#218

Earlier quoted context omitted.

Rust might eventually get to that point, and C++ itself with QT is relatively easy if you stick to the basics. But in a way, anything trying to please both higher level and lower level developers is going to have to settle for some kind of middle ground. The best situation I can think right now, and the one I would adopt myself, is indeed PyQt. Mostly because Python makes it easy to drop the compute-heavy application…

Rust has been harder for me to pickup than C++. I want to like it. The problem is that the one character symbolic syntax notation remain nonsensical and seem arbitrary to me.

What exactly do you mean by "one character symbolic syntax notation"? I can't think of anything in Rust matching that description that doesn't exist in C++ as well.

Re: Show HN: Cross-platform desktop applications with PyQT

#219
post #93

Earlier quoted context omitted.

For the last time, "existing design guidelines and patterns" is a myth. Even Apple only really hits that (and barely) on iOS; MacOS UI consistency is a mess. Furthermore, most people do not care about this, and the value of marketing with a sleek design vastly outweighs any benefit of conforming to system components UI. If literally every Electron app fixed memory issues and correctly placed OK/Cancel dialog buttons,…

"For the last time, "existing design guidelines and patterns" is a myth." No, they aren't. "MacOS UI consistency is a mess." Not really. Most small developer programs I use follow these. It makes it really easy to know what to do to accomplish something. "Furthermore, most people do not care about this" [Citation Needed]. I think most people would prefer to not have to learn a new UI from scratch everytime they want…

sigh

I'm not going to bother listing out the litany of odd UI issues present in macOS, because you can Google it and find this within a few seconds. It comes up every. single. macOS. release.

Nobody cares about learning a new UI because most of the tools they use are webapps nowadays anyway, which require this.

The value isn't yours, if that wasn't apparent. For the vast majority of people who use apps with easier to implement design/UI/UX features, it's easier for them to get things done. These apps wouldn't have caught on without that.

And lastly, you've opted to be incredibly pedantic in an attempt to be snarky (I'm guessing, otherwise I've no clue why you'd do this). Electron is more than memory issues and this isn't even a debate.

Re: Show HN: Cross-platform desktop applications with PyQT

#220

> "PyQt is dual licensed on all supported platforms under the GNU GPL v3 and the Riverbank Commercial License. Unlike Qt, PyQt is not available under the LGPL. You can purchase the commercial version of PyQt here. More information about licensing can be found in the License FAQ." Except this sucks if, you know, you want to make some money on your app... Kicking the tires for a potentially commercial app is a FULL sto…

[deleted]
Post reply on HN