.Net Like Gui Builder for Python?

Chris Angelico rosuav at gmail.com
Sat Jul 26 11:05:21 CEST 2014

On Sat, Jul 26, 2014 at 5:19 PM, Martin S <shieldfire at gmail.com> wrote:
> From the newbie point of view, VS is the perfect tool to get people coding.
> All the way back to Visual Basic, Microsoft has consistently pushed the ease
> of creating applications for Windows as a point of adoption.

IMO it's an attractive nuisance at best. Make it easy to build
something simple and flawed, and people will build things that aren't
simple but are still flawed. Microsoft has done this to the world a
few times - how many people do you know who use Excel for jobs that
would be better served by a database? (Or by a script, even; CSV
import into one sheet, manual fixups as required, then CSV export from
another sheet that has a bunch of formula cells. I've seen that done.)
GUI builders, especially those with "hey look you don't even need to
write code" event handlers, are often like that. Sure, you can make a
simple "Hello, world" pretty easily. You can go one further and have a
slider and an entry field whose contents are synchronized. But for
building a large and complex application, they tend more to make the
job harder than easier; and for people who've learned on that system
and no other, it's "but this works - what, I have to learn a whole new
system now? That new system sucks".

It's the same with everything. I did my first music transposition and
composing with NoteWorthy Composer. It was alright, it got the job
done. But when I wanted to do anything more complex than the authors
planned for, I was stuck. Just adding additional verses to a hymn tune
(music score at the top of the page, four more verses underneath) was
impossible in NWC, so I ended up actually printing out the score, then
physically putting the sheet of paper back in, and printing the
additional verses from a word processor. With LilyPond, I can do
additional verses easily, because the authors planned for it; but more
importantly, I can also do things they didn't plan for, like putting
lyric line breaks into the MIDI file without disrupting the printed
score. (I had to write a little Scheme code to make that work.)

If it comes to that, in a way, programming is all like that. Imagine
buying a device and being allowed to run only the software that its
makers provide. [1] If they think of lots of things, then great! You
want to do something, and there's an app for that. But generally, a
device is sold to more people than built it, and most likely (I'm
definitely making assumptions here) the collective intelligence and
creativity of the buyers exceeds that of the designers. So a smart
designer will make it possible for the device to do more than he
planned, by making it programmable. Sure, it's a bit harder to use
than just "touch this and stuff happens", but instead of finite,
pre-coded functionality, you have infinite possibilities.

Since we're all here on python-list, I think we all appreciate the
value of being able to do what someone else didn't think of. I'm happy
to have the same power-at-the-cost-of-effort in GUI building, too.


[1] This scenario is purely hypothetical. Any similarity with real
products whose names begin with the mathematician's shorthand for the
square root of -1 is purely coincidental. Anyway, I'm exaggerating for
emphasis. Slightly.

More information about the Python-list mailing list