[hcs-d] Making a GUI

Zak Stone zstone at gmail.com
Sun Dec 27 16:02:51 EST 2009


Whoops, just saw your latest message. My self-interested suggestion is
for you to try Qt through PyQt and write again later to let us all
know how it goes. = )

Zak


On Sun, Dec 27, 2009 at 10:59 AM, Zak Stone <zstone at gmail.com> wrote:
> Hi Naor,
>
> I'd like to build on what others have said so far and recommend the
> following decision process:
>
> 1. Clarify your overarching goal and understand the target audience.
> Are you learning to build interfaces for personal projects, or will
> others use your interfaces? If these interfaces are for others, are
> those others a few people you know or the public at large?
>
> 2. Think about how this GUI project fits into your broader development
> as a programmer. Are you more interested in working with higher-level
> languages or lower-level languages? Do you want to be a generalist or
> a specialist? Do you want to work in large organizations or small
> ones? Are you planning to write lots of interfaces or just a one-off
> now and then?
>
> 3. Given the answers to the first two questions, look at the available
> tools and decide which trade-offs are most palatable to you. Here's
> how I see a few of them:
>
> - Web applications can be useful without being very complicated, and
> people can access them from all platforms without installing anything.
> You can update the software every time the browser refreshes, and you
> have total control over the entire software stack behind the
> interface. The downside, however, is that web apps are still slow, you
> have to understand a variety of disparate technologies to patch them
> together, and the security model makes interaction with local files
> extremely awkward.
>
> - If you are concentrating on a single platform, there might be
> excellent tools for building interfaces on that specific platform.
> Both the iPhone and Android have development environments that are
> getting a lot of attention right now, and Mac OS X's Interface Builder
> makes building simple Mac interfaces relatively quick and easy. As
> Jeremy mentioned earlier, there must be similar tools for Windows. Of
> course, the downside here is that your audience will be limited to a
> single platform, and you will have to work out some kind of update
> system yourself. Easy in a research lab, hard in the world at large.
>
> - If you need the performance and local file access of desktop
> interfaces but want something to run across platforms, there are still
> a lot of choices. It has been a while since I have looked into this,
> and I keep hoping the One True Solution will emerge, but I'm not aware
> of it yet. As others have mentioned, you could use Java, but Java is
> incredibly verbose, and I have used both Swing and SWT and don't wish
> to return. You could use one of the fancy new Adobe products (Flex?
> AIR?), but they are proprietary, which will eventually cause trouble
> one way or another. Then there are all sorts of open-source GUI
> toolkits, each with its own precarious learning curve. If I had to
> pick one right now, blindly, I would choose Qt and use it from Python
> with PyQt. But that's just because Python is evolving into the most
> practical general-purpose high-level language in widespread use. ; - )
>
> Zak
>


More information about the hcs-discuss mailing list