This Is What Happens When You Let Developers Create UI


To make a workable GUI frontend to wget I’d take the typical tasks (which are to quickly download one or more files whose URLs you know, and to recursively download a whole site) and put those options on the main page, then hide the rest in tabs or expanding panes or whatever.

Well said. Why not start by thinking about what a typical user would want to do? Or you could just put every command line switch on a massive dialog…


Foxyshadis, I feel you dogg.

What is scarier than the UI (shame on all the critics!) are the number of posts on such a topic as this (including mine). Is Jeff’s readership a “normal” cross-section of humanity?

The trivia of the web is downright frightening. If there was a post: “Gee, we lost a few more Constitutional rights today because we Americans, like, don’t care enough”, how many comments would be get?

The more I look at the UI the more I like it.


With respect…

Some software developers happen to be excellent designers as well. You can’t discriminate.

What you should have said was, “look at what THIS DEVELOPER did with UI…clearly HE cannot design as well as he can code”.


The wget command line interface is also an interface - and one that suffers from just the same problem as this GUI. Take a look at the man page for GNU ls to see even more option overload. If not for backwards compatibility, these could and should have been radically redesigned a long time ago. So it’s no excuse to say that this interface just mimics wget’s command line, when the design of that very command line is atrocious! Let’s face it: command line configuration doesn’t scale.


I have to agree with nobody? and say that the UI is simply a frontend to a very good commandline tool, and in that respect is actually quite good - it is a WYSIWYG interface to wget - no hidden options, no drilling down through menus etc. If you use wget you will appreciate how immediate everything is in that UI. If you don’t know wget this UI will look a bit busy but I would assume it is aimed at people who already use and understand wget.


hmm I can’t see the problem :stuck_out_tongue: well no it sucks that’s true but half of it’s ugliness comes from VB’s standard controls, the other little problem is that it assumes the user to be competent but that kind of thing happens to everyone in it’s first steps, I think everyone has the potential to become whatever it wants to, I’m basically a logical type of person (developer) but I’m trying to be more artistic and it’s hard yeah but it’s not impossible at all.

about this dialog, I should first change the way controls look, and then organize the options in tabs and lastly put all the tabs in a “advanced mode” checkbox and let the “simple mode” to be handled by a few presets.


If you dimwits actually learn how to interact with the commandline then you don’t need something like is displayed.


With respect…

Some software developers happen to be excellent designers as well. You can’t discriminate.

What you should have said was, “look at what THIS DEVELOPER did with UI…clearly HE cannot design as well as he can code”.

Aaah… but is he a developer that can design or a designer that can develop?


Part of the probelm is this is a quick GUI skin over a command line app. When I was in college in the 90’s my professors advocated that strategy for development. (Build a general purpose command line app then skin it with a gui).

It does provide an easy test harness in the command line tool. The only problem is you typically get a really horrible GUI that you don’t want to learn if you already know the command line app, and is unlearnable and unusable if you don’t.

I’m not sure why this was what was taught rather than an approach grounded in HCI. It might have been my school (MIT), or a general academic thing. Hopefully it has gotten better - does anyone know? It might also be a Unix thing with the command line is king mentality.


I’ve used an earlier version of that program, it’s what inspired me to actually learn wgets command line arguments.


You don’t mention that this is the author’s first Visual Basic program.
You make no comment on the friendliness or otherwise of the wget command line.
You make no comment about whether this GUI is more usable.
You give no credit to the author for trying.
You offer no alternatives.
Where is your (presumably excellent) work?
By the way, see that little “-” button to the right of the URL text box? That’s a minus sign. Guess what it does.

Have a think about what you are proposing the author do. Are you going to provide your design services to this person for free? What’s your timeframe?

Busy expert commentators - hate 'em.


wth, there is nothing wrong with that UI!


It’s mathematically “complete”


“If you can make something better and give it away, by all means have at it!”

Spot on.

As an occasional wget user who struggles to remember the plethora of wget command line options, I must thank you for bringing this useful GUI to my attention.


Looks ok to me.


lol @ button “Pro Mode”


Let me say, for someone who knows wget, this is not a horrible interface.

A tabbed interface sucks here because I have to click through each tab anyway to see how the defaults are set, or I have to internalize the defaults for the gui - more work for me.

There’s no need to search for anything here - all the options are right up front, no more ‘press F1 for help, search the index, come up empty and have to click all the damn tabs anyway’.

I might move some of these controls around a bit, to make them easier to target, but I like them all on one page like this. All I want the GUI for is so I don’t have to read the man pages. Again, that’s assuming I know what these options are for.

Now, if I didn’t know wget, or this app was supposed to be “wget for dummies” then yeah, sure, make a wizard, or tabs, or whatever so a n00b can learn it.

But put a user of this ugly gui would have a much easier time moving back and forth between gui and cli versions of wget than a user of a pretty, dumbed-down, colorful version would.


Argh! Argh! Argh!

Ok, programmers can produce awful UI, and usually do. Can’t argue there. But for the sweet hairy love of Jesus, don’t hand the job over to “graphic designers”. At least a programmer will produce a UI that someone can use, if only the programmer themself.

UI design is a specialty unto itself. It helps to have graphic design (and programming) skills, but that sure as doesn’t make graphic designers into UI designers. Please don’t contribute to the continuing mass delusion that they are.


Interface design is all about expectations. You need to give your users what they expect. That defines a “good” interface. Users complain more about how things should work and look, not so much that they don’t like what it does.

I will argue that the interface design should be figured out first before any development.

After all, to the user, the product is what they see and interact with. It doesn’t matter how great the engine is if the car doesn’t have the steering wheel in the right spot. Design what your users expect first, then code to meet that design.

Of course, I am a developer that designs and am surely guilty of some “poor” interfaces. Well…I like to think of myself as a designer that developers - but what have you…


There’s nothing wrong with this. Remember, this is a UI for wget! It actually has all those options and no UI is going to educate you on how to use them withing reading the manual.
The natural interface to a terminal is a keyboard. If you simplify down to one button, people might say “wow that’s simple” but they’re not going to get much work done.
I think I see some hasty condescension here and that’s the ugly thing on this page.


A few points that have been mentioned I’d like to echo and expand upon.

For small companies there is no ‘graphic designer’. Or more specifically, the ‘graphic designer’ is anyone who can use Paint Shop. I’ve also used a number of programs more than likely created by a whole team of graphic designers with simply terribly UIs. If you had that example UI designed by one of those you’d no doubt get a good looking interface that would be unusable in the required context.

Speaking of which…the context of the program is important. The above example in context of being a simple and quick UI to access a command line program is perfectly fine as it is in my eyes. That same UI as the options screen in a popular consumer level software product, howevver, is not fine. I know I’ve made similarily dense options screens but they were for a limited in-house audience or for a technically minded audience.

I do not apply the same level of interface esign to a quick ‘one-off’ utility used by a dozen people as I would a shrink wrapped software distributed to millions.