20 comments

[ 3.0 ms ] story [ 55.4 ms ] thread
Its crazy to me how much more difficult its become to "whip up a quick GUI".

Back in the 90s, using fairly lackluster tools like Visual Basic / FoxPro / Delphi, you could design and create a basic GUI a few minutes. No one needed to install 2GB of dependencies to either create no run these programs.

Now, just getting an IDE setup to handle creating a "quick GUI" is a mission. I'm at a loss at why technology moved so backwards with regard to something as essential as this...

The short answer is, "the Web happened". The Web platform is a stack of approximately five[1] different programming languages (SQL/Python/Javascript/HTML/CSS). Each layer generates source code for an adjacent one, creating a level of cascading complexity which makes it impossible to create a workable a WYSIWYG GUI editor like (eg) Delphi's.

We cut the Gordian knot in Anvil (https://anvil.works) by replacing pretty much everything in that stack with one language (Python). You need to get rid of that complexity if you want to get anywhere close something like Delphi.

Anvil got pretty well reviewed on HN a few months back: https://news.ycombinator.com/item?id=15584124

--

[1] - You can quibble about the exact number of languages, but they all have syntax and they all have source code you need to edit and run to see a result. And a successful injection into any of them is usually game over.

I like Anvil, but the use case is different.

I sometimes have to write little enterprise apps to do little things around an ERP What I want is to do that little thing and build it into an installer that my IT team can just install.

Honestly, if you're looking for a local (Windows) executable, those old 90s tools (VB, Delphi, Xojo [aka RealBasic], even C#) are still great! They're just as good as they were in the 90s; it's just that demand has moved to the web (or mobile).

If what you want is a 90s-shaped experience (installable desktop app), then the best of 90s-era dev tools still kick ass. (It's sad that open source stuff hasn't caught up, but that's mostly because everyone's been focused on...the web.)

what's the best cross-platform solution of that bunch?
Lazarus is very similar to Delphi and is Open Source (L/GPL)

If you're looking for the '90s GUI experience, you likely cannot find better. It works on Windows, Linux and Mac and possibly the BSDs.

https://www.lazarus-ide.org/

Just imagine a Lazarus but for Python. It would be the worlds most popular application.
I don't really see it as a 90's shaped experience. Business applications (ERP in particular) are still very much based around a desktop client. In fact many of the attempts to move ERP to the browser have been significant compromises, or the web client becomes the cut down version.

Part of that is the eco-system of Windows. Most businesses are running Office, and the ERP's come with close integrations with Excel in particular. And before anybody says it, the web version of Excel and the Google equivalent are very significant compromises for power users like accounts staff. I think the desktop application remains the gold standard of enterprise software.

Most of the 90's stuff transitioned from VB to VB.NET and C#.NET and along the way lost some of their ease I feel. I couldn't code in any of those old favorites due to compliance issues demanding up-to-date software. So it is back to Visual Studio and WPF...

> fairly lackluster tools like Visual Basic / FoxPro / Delphi, you could design and create a basic GUI a few minutes.

Those techs were designed specifically to help users whip out a quick GUI, but aren't very good at anything else.

Qt is a cross-platform GUI toolkit developed for C++.

To make a reasonable comparison, compare the Qt examples with MFC, which is still a thing that creates jobs and careers.

I don't take op comments as a criticism of Qt. I think he was just lamenting that there isn't as easy a way to build a GUI app as there was in 1999! I agree, and have to say that a Delphi-for-Python would be hugely successful in the SME getting-things-done space. I wish I was skilled enough to write such a thing.
Sadly Win32/MFC has no support for hierarchical/structured layouts, only static widget positioning. As a result I refuse to write my own apps in Win32 GUI out of principle.
That is what WPF and UWP are for.
For just "gui-izing" a command line app written in Python, there's the package Gooey, which creates a Ui from an argparse object.
Doesn't Qt creator fill this need for Qt? (real question, I've never used it)
To me, Qt Creator seems more similar to Android Studio than Visual Studio. The GUI creator for VB was effectively MS Paint for widgets. QML has a layout system, data binding and loads of other great features that are a godsend for 'proper' apps, but are hard to avoid for the 'buttons, inputs and hot glue' approach I remember from my VB days. GNOME Builder seems to be one step closer to VB in that regard, but I've only done a bit of testing with it.
You don't have to use QML/QtQuick. Qt Creator inherited Qt Designer code so you can also use it for traditional interfaces.
>Once you’ve written an application with Python and Qt, you want to bring it into the hands of your users. This turns out to be surprisingly hard.

The biggest hurdle for me personally. I really wish the Python ecosystem would get a single, officially supported packaging toolchain that is as simple as the `go guild`in Go.

I am interested to have the auto update feature so I clicked the link of Omaha. I felt dizzy that it’s so complicated that the author (of the article, not of Omaha) is charging monthly subscription fee for helping you do it. No thank you, I’ll just check my remote URL and replace my exe.