97 points by geophph 3 days ago | 54 comments

I had heavily used PySimpleGUI in various work projects, and one day, when I had to run some older piece of code I had not run in a while, I get a notice that PySimpleGUI won't work, because was free, but nobody paid, and so, good luck! So I was piping mad, paid the 3-year or whatever the max license fee was, received a code, and THEN I was able to get my stuff to work, like it used to.

LESSON: N E V E R Use code that can "stop working" until you pay ransom. N E V E R.

At this point, it's irrelevant, because the LLMs can replace PySimpleGUI with PyQt etc so --- thanks but no thanks. I did like it because you could throw up something around a CLI and it looked at least presentable. Now, since 2025, nobody codes anymore, so ... seems to me, this PySimpleGUI 6 is just a bit of history.

> never use code that can stop working until you pay ransom

Funny because that describes pretty much exactly "cloud-first" software architecture, and people jumping on it in troves, unexplainably.

I suppose at some point enough of them will get burned, there will be a swing back and everything old will be new again, and so on and so on.

Given it was older code, were you not able to use an older version of pysimplegui that was freely available?

It was written in older version of PySimpleGUI -- it just stopped working! Pretty annoying.

The problem with old Python code is that you then have to hunt for exactly the right version of the right libraries that can work together when the stars are aligned.

Isn't that true of any packaging system? (npm, RubyGems, etc) Perhaps it's a bit easier, with the respective spec files, but it's still a bit of a hunt.

No. Decent packaging systems like used in the Java world have deterministic or mostly-deterministic dependency resolution; semi-decent packaging systems like the ones you mention have lockfiles. Pre-uv Python packaging is uniquely awful.

What do you prefer for lockfiles in the Java world? I’ve been trying to drag a couple of Maven teams into the 2010s after finding that they weren’t.

You don't need them. Maven has deterministic dependency resolution (unless you use version ranges, but don't do that), so you just write your dependencies. (The flipside is you may want to get in the habit of doing something like versions:use-latest-releases as a regular housekeeping task so that you pick up any security updates, but that tends to be less of an issue in Java-land for other reasons)

Depends on exactly how the project is managed. Older python tooling (`pip` module) doesn't have a native mechanism to differentiate between the spec (direct dependencies) and freeze (all dependencies, including transitive).

You didn't have a lockfile? Or a commit date you could use with --exclude-newer?

First they made it commercial. Then they realised there were not enough people prepared to pay for the project and shut down the project. But now it is back in free form?

Seems it. A nice gesture of sorts to make it available to everyone after the updates made during the commercial phase.

This project started when I started my Ph.D.. I had a few interactions with the author when I added UI to some programs I wanted to showcase as TA.

Every time I needed a GUI, I reached out to this library. Very beginner friendly. Good memories.

I understand that people have had bad experiences and in general I don't want to pay for software components either. But it's weird how much hate there is against developers sometimes just for even trying to make money from their libraries.

If we used it more than just "ok look it works, we'll standardize on this internally" we'd have been happy to buy it, as we all other open source that has a donation option. We were just getting our feet wet, tho, and that's where it seemed burdensome; heck, if it phoned home every time it was used, it would have noticed we only used it about 3 times!

NiceGUI is MIT licensed. Not perfect , but no bizarre shenanigans when it comes to releasing commercial software.

How has your experience with NiceGUI been like? I was thinking about giving it a try some day but didn't get the chance to do so.

It would be great to have a few screenshots on the readme.md or Doc pages to understand quickly what we‘re talking about.

https://www.pysimplegui.com/

Should be in the README.md

They kinda assume everyone knows it. Maybe the same thought process led to commercialization…

Maybe it's just because I'm more of a SwiftUI person, but in the example on the homepage, the event == 'Cancel' condition seems like a strange and fragile way to check if a certain button was pressed...

Great to see this back as Open Source (LGPL 3.0). However, it points out the continuous need for proper funding for Open Source. Tough in ZIRP times, exponentially more difficult in more difficult economic times.

[deleted]

Loaded question but why does Visual Basic 6.0 (both the IDE and the language) for modern languages / OSes doesn't exist anymore? I feel like it was way ahead of its time and there is no similar RAD and GUI design tool ever since

I was a VB6 user back in the 90s, I think there's a bunch of reasons:

- Microsoft killed it: "let's rewrite the entire thing as VB.NET and make it completely different"

- The UIs designed in the RAD weren't particularly responsive in the sense of "responsive design" - generally you couldn't resize a window and have all the elements resize correctly. When I learned Java Swing and elements were defined programmatically as percentages of their container that was kind of eye opening to me.

- The small-time apps that were being developed with VB6 in the 90s are basically all web apps now.

Delphi and Lazarus are still kicking, the latter is free and open source.

I know you asked for "the language", but Object Pascal really ain't that bad to get around. If you were proficient in VB6, you should be fine adapting. :-)

There have been and are many, many similar no code or low code tools. And actually Visual Basic 6 still works.

What changed was the level of popularity and acceptance of those tools.

I think it comes down to trends and programmers psychologically subconsciously not wanting to be mistaken for users.

Because unfortunately what subconsciously is accepted as programming must involve colorful cryptic text. And if you are just dragging things around and setting parameters, you are not doing that, and someone might accuse you of being a user.

Not saying it makes sense, but that seems to be the explanation.

But look at WordPress, VB.NET, n8n, LabView, Unreal Engine, Houdini, Unity, etc.

C# with WinForms and Visual Studio was a decent successor for a while, but for whatever reason microsoft decided to go all in on XAML and then a bunch of other half baked frameworks. I have no idea what to even use anymore if I wanted to make a native Windows app, it's a mess.

Have a look at https://anvil.works

You could try Lazarus + FreePascal or even Delphi

Today I wanted to build a simple ui that maps time across 3 time zones.

After spending some time thinking about using it across my Mac and Linux machines, I just had Claude write an html file.

Nice, simple runs everywhere.

Local HTML files with embedded JavaScript are fantastic for mini portable apps. You can even load/save files with some finesse.

Simon Willison has mentioned this (portable html / js apps) before and has a collection online

https://tools.simonwillison.net

I remember looking into GUI libraries for Python a while back and this one and qt came up.

However I ended up settling on making a Web UI served via FastAPI. I'm still happy about that decision but this one sounded really nice back then.

WebUI (assuming you're mean python-WebUI) doesn't actually include any UI. This is why PySimpleGUI is nice...you can make a button!

No, sorry, I wasn't referring to any library. I just meant a UI I made out of HTML, JavaScript and CSS.

I stopped using this when the dev did their rugpull and won't go back.

Hmm apart from distribution (which is a pain to set up) I still don't think you can beat QtWidgets and QtCreator for simplicity of getting a professional GUI. It has a form editor that actually works. I think maybe the only one I've ever used. Then you can pretty much just click on buttons and add event handlers. Very easy to get going and it scales very far.

There are a few downsides... there are better options than C++ these days (Rust most obviously), QtWidgets is in maintenance mode, it's a bit of a pain to make an installer from your app, and it doesn't really support modern styling.

But I'd still pick it over this in a heartbeat.

Yes, especially with AI unless the user has literally never programmed anything before, it seem actually easier to use Qt for something like this (honestly, it probably would be easier to just make a webapp if they have no experience)

LOL, I remember this one being a famous traitor to FOSS by starting out as a community project and then closing doors to make money from it. Guess they weren't able to make any money after all. Karma in action.

Or it's just another example of why FOSS fails - people (like you) expect free labor and never want to pay for it. They tried to make it a sustainable project, and it would probably have died even earlier if they didn't.

> For the last 5 years, PySimpleGUI offered free software with the hope of sustaining the project with donations. We appreciate the support we received, but the amount has been too small to support the project.

I don't think this is a complete characterization of what happened. From looking at a previous thread (https://news.ycombinator.com/item?id=39369353), the owner curiously did not allow outside contributions to his GPL project. This is odd, especially if it seems like he was complaining about having issues with maintenance of the project. Then, after he tried to switch the license, he deleted/obfuscated the repo history. Even though it is GPL, because he had the "foresight" of not allowing outside contributions, he was able to take this action unilaterally. I suspect that the owner had his mind on commercialization from the very beginning, and was using the whole FOSS bit as a way to get free publicity before rugpulling.

> They tried to make it a sustainable project

> with the hope of sustaining the project with donations.. the amount has been too small to support the project

So shut it down, lock the repo, invite new maintainers indefinitely. It's only non-sustainable for the price the author is asking. It'll still be FOSS even if no longer maintainer by the original author, whether a new maintainer steps in or not.

And if they want to fork it an create a commercial alt, no problem - anyone can!

The problem arises, IMHO, when they develop (accept contributions) or propagate (lock-in) a FOSS project in good-will, then somehow leverage their position as a FOSS maintainer transform it to non-FOSS.

And you say this as a prolific open source contributor I’m sure.

I think AI coding has made these "we dumb down a real UI framework for you" libraries obsolete. Anyone can get a GTK or QT app up and running now. This isn't a criticism, they were very useful to build GUIs in the past, but now they are just obsolete and more likely to introduce bugs or limitations you can't work around than to help much.

Is this a new form of gatekeeping?

I.e., "too human-friendly to survive in the presence of The Great AI™".

If so, where does that lead us?

That's an aggressively negative over-interpretation of OP. Clearly not what was meant.

These libraries are not more human friendly. Humans can write GTK or win32 or QT or Cocoa code just fine. GUI frameworks are very complex and often have very in depth setup code that is required. It requires a huge investment to get an app up and running with a GUI framework, and AI makes setting that up approachable when it was a real challenge before.

Have you ever written GUI code using one of the big GUI frameworks?

Taken to an extreme, what's stopping us from going back to C? The security issues will be found and resolved, performance will be great and it will compile on all platforms that ever existed.

> The security issues will be found and resolved

Will they though?

well I think C is just a bad Rust now so yes, I think everything is going to get rewritten in rust.

[dead]