Re: Pythonic cross-platform GUI desingers à la Interface Builder (Re: what gui designer is everyone using)

Dietmar Schwertberger maillist at schwertberger.de
Sun Jun 10 15:37:01 EDT 2012


(Sorry for posting without references to the previous messages, but it
  seems that many messages don't get through to the nntp server that I'm
  using.)

Chris Angelico wrote (in two posts):
 > There was a time when that was a highly advertisable feature - "build
 > XYZ applications without writing a single line of code!". I've seen it
 > in database front-end builders as well as GUI tools, same thing. But
 > those sorts of tools tend not to be what experts want to use. You end
 > up having to un-learn the "easy way" before you learn the "hard way"
 > that lets you do everything.
This time is not over.
Especially when you look at data acquisition and control applications
where tools like Labview are widely used.
Personally, I would not want to use such tools as I find it quite
complicated to implement any logic with a graphical editor.
But when you want to sell an alternative to such tools, then you
should not offer a tool which makes it almost impossible for a
typical engineer to create a simple GUI.

 > You refer to "non-programmers" and then point out that they would be
 > lost trying to add code. That's a natural consequence of not being a
 > programmer,
Sure, but with "non-programmers" I'm referring to typical engineers
who can implement some basic programs for measurement, control or
data processing.

 >  and of all languages to help someone bridge that gap and
 > start coding, I would say Python is, if not the absolute best,
 > certainly up there somewhere. Just as you wouldn't expect a music
100% agreed. It's the only programming language that I can recommend
to casual or even non-programmers, but only as long as he/she's not
interested in GUI programming.

 > authoring program to let someone publish score without knowing how to
 > compose music, you can't expect a GUI tool to relieve you of the need
 > to write code.
The audience of GUI editors is not the artist / professional...


 > WYSIWYG UI designers suffer badly from a need to guess _why_ the human
 > did what s/he did. Build your UI manually, and there's no guesswork -
 > you explicitly _tell_ the computer what to do and why.
True for non-trivial applications. I don't have many windows and dialogs
that could have been created using a GUI editor in my main wxPython
based application.
But even then: I've learned wxPython from looking at the code that
wxDesigner created. Of course, that was in 1999/2000 when no books on
such matters were available.


 > There's an assumption in most of the Windows world that everything
 > needs a GUI. For a simple data acquisition program, I wouldn't use one
 > - I'd have it run in a console. That's something that any programmer
 > should be able to create without studying complex manuals; all you
 > need to know is the basics of I/O and possibly argument parsing.
Yes, usually I'm using a console as most measurement programs are quite
straighforward and linear.
But I don't see a way to convince people to go back to the console.
They will always want to implement a basic GUI for one or the other
program and then they will end up frustrated...
(Or I have to implement the GUI for them, which is not an option.)


 > I've used Visual Basic. My first salaried work was on VB. Making it
 > easy to throw together a simple GUI doesn't mean a thing when you have
 > a large project to write - your business logic and UI design work will
I would never consider or recommend to write anything significant using
a GUI builder. Also, I would never recommend anyone to use VB at all.
But given the lack of alternatives, it still has a significant market
share.
(The fact that anyone can hack together a program in VB has the side-
effect that most programs are not very good...)

 > massively dwarf the effort of actually throwing widgets into a
 > hierarchy. So the only time it's going to be an issue is with trivial
 > programs; which means there isn't much to be saved. Just make your
 > trivial things run in a console, and then either use a GUI builder
 > (several have been mentioned) or hand-write your UI code.
Right, we're talking about non-trivial programs with almost trivial
user interfaces. But I don't see a Python GUI builder which a casual
user could use to add a GUI to the code.
(To be exact: it's easy to create a GUI with one or the other builder,
but non-trivial to connect it to the backend.)

 > Actually, there's a third option these days. Give it no console and no
 > GUI, make it respond to HTTP connections, and use a web browser as
 > your UI. :)
I don't think that this is easier for the casual user as multiple
languages and environments are involved.
But on the other hand there are some (mainly commercial) organizations
who believe that HTML5, CSS and Javascript are the future for GUI
programming.
Personally, I prefer Python with console, wx or Qt for local
applications and Python/HTTP/HTML/Javascript for multi-user
database applications.


Regards,

Dietmar




More information about the Python-list mailing list