Fog Creek Software
Discussion Board

Why do programmers do this?

One of my biggest UI complaints -- programs that always start up at a fixed size regardless of screen resolution, and with no way to permanently configure them otherwise.

For example, the popular CD burning program Nero.  On my nice 19" LCD monitor at 1280x1024  the program comes up with everything all scrunched up on the left hand side of the screen and lots of empty real estate on the right side of the screen.  Every time I run the program, I have to manually drag stuff around -- make the directory tree wider so I can see all the sub-directories -- make all the columns wider so I can read long file names -- and so on ----

What's the deal here?  OK -- maybe there's still a lot of people out there using 13 inch monitors that I'm not aware of -- But why can't the program determine what screen resolution I'm using and automagically adjust the column widths to take advantage of available screen space?

Is it because:

  The programmers are too lazy
  It's too hard
  It can't be done
  It can be done but everyone else in the world is still using a tiny monitor so it's not worth the trouble.

Maytag Repairman
Saturday, July 26, 2003

The programmers aren't very good. You often get this with stuff developed by "multimedia" developers, for example.

Saturday, July 26, 2003

Imo, Nero was probably created by a bunch of programmers who simply don't have a lot of experience with GUI software development.

Multimedia developers typically do have a lot of GUI software development experience simply because it is a big part of what they do for a living.

Saturday, July 26, 2003

Resizing is hard, especially for Visual Basic applications which have hard-coded pixel coordinates for every control.  So many programs have VB front ends, and there's nothing wrong with that - it's cool to write some custom controls in C++, maybe a few DLLs for heavy lifting, and quickly assemble a GUI, that's just working smarter not harder.  Unfortunately, VB just TEMPTS people to make their apps fixed-size to avoid the trouble of handling resize events and just show the controls where they were placed in the form designer.

There are plenty of free resize managers for VB which don't do everything they should, and plenty of commercial resize managers which do a lot more, but it's still a matter of jamming an extra component into your project just to make it resize properly. 

Why doesn't Microsoft just include this as part of the language?  At least some simple proportional resizing which fires events to allow overriding when this would be undesirable, simple methods to store/retrieve a form's position and max/min state to registry at appropriate times with events fired to allow hooking and overriding when this would be undesirable.... it would make life easier on everyone who uses VB programs.

Maybe VB.NET has this, I don't know because I haven't used it, but I doubt it.  Somehow I don't think MSFT would do something this nice - they like to give people a bit of a challenge to make a professional-looking app.

Saturday, July 26, 2003

.NET has actually made this painless. It surprised me, too. The docking and anchoring stuff is great, especially after having to buy ResizeOCX for VB a while back after realizing what a pain it was to write the sizing code.


Saturday, July 26, 2003

Yes, a great Borland invention!

John Topley (
Saturday, July 26, 2003

My Nero (v5) automatically scales the inner windows.

Saturday, July 26, 2003

Maytag Repairman

Yes, i willnot say that it is not hard, but every time when you want to change something programmers have to do that?
For such people there are many small companies, team and freelancers that develop software and you can make order and they will do that you want. You do not like color of icon go to them and all will be done as you want for your money, if you take application for free, be happy that you can use it for free.

If you use application as Nero, that was developed for many people, why do you think that it is not comfortable in use and has not good GUI, probably many people like it. Also you can try to use Roxio Easy CD Creator, it is more expencive but i like it more.

Also new OS appers very fast, and after XP is become popular, many software needs to remake for be look normal in it.

And why do you say about lazy programmers? In companies that work in software developing programmers have no word on decision of such things as resize depend on screen of user, they can only make suggestion.

Also there are many usefull things that can be integrated in application, but most of the users even will not see it, but programmers has to be paid for it, and user does not want to pay for it, because  does not see it.

Valentin Semak
Saturday, July 26, 2003

What other people like in Nero isn't really the point.
A commercial vendor should support something as simple as persistent window settings. Having to personalize a program each time you start it is a pain in the ass for frequent users, and given the fact that it's just a matter of storing the settings in the registry when you quit, and load 'em when you start.

Mickey Petersen
Saturday, July 26, 2003

it is because tons of people already use nero even though it doesn't resize.

Saturday, July 26, 2003

Questions like this illustrate why people put up with software quirks.  Nero is the best burning program I've used, so I don't mind putting up with weird UI stuff here.  It does the burning part well, and we just hope they fix the UI stuff in the future.

Another example: the integration of Microsoft Project into Outlook is completely horrible:

* You have to double-click the item in Outlook for the reply e-mail to populate.

* You can't resize the UI at all, which means I'm left scrolling left and right in a little spreadsheet grid where I can't see any of the titles because they're not locked in place.

* Hitting "Enter" sends the schedule update by default.  This is completely wrong, because I might be entering task hours into a spreadsheet box and hit enter twice by accident...the result is I send a half updated schedule.

Of course, it's the first release of the software and the only way I know of to do Microsoft Project in an enterprise we'll curse, throw things and send updates to people we don't mean to until the UI is improved.

Craig Thrall
Saturday, July 26, 2003

I still don't get MS' conception of "enterprise" - Project is only just starting to do multi-user, SourceSafe only works with shared folders, the Word sharing model is bizarre at best...

Are there no workgroups in MS larger than four?


Saturday, July 26, 2003

I don't know about you.. but Nero resizes for me.. okay.. let me qualify this. When you use the main MDI window's maximize.. all the little MDI subwindows resize to fit the screen.

If you want to bitch furthur, you might send your complaint to all of the major windowing managers for UN*Xes and Because no a f*cking program in the world resize like they should when you have dual monitors or one of those pretty plasmas. No algorithms out there will handle all situations.

There has to be a solution for this, but it will probably involve a lot of reprogramming (and GUI framework modifications) to satisfy EVERYONE. But by the time you have perfect resizing working all of us will be quite thoroughly sick of windows in general and will be thoroughly living in some half-ass implementation of Life Streams (standard cs program) or Augmented reality (mit oxygen program) which will hate at a later date.

Li-fan Chen
Saturday, July 26, 2003

Games are a totally different story. The visuals are tuned to a specific resolution and the expectation of full screen. I wouldn't generalize too much based on games.

Saturday, July 26, 2003

"The programmers are too lazy" is possible.  It's also possible that they are simply stupid or that management is stupid. 

It's literally a matter of minutes and a few lines of code to persist window positions.  A reusable anchoring component should take maybe an hour tops to whip together (assuming a long coffee break).

People actually buy components to do this stuff? 

Saturday, July 26, 2003

I've got the impression that people here are mixing some things up, and that there really are two topics being discussed:
1) The fact that some programs, such as Nero, start up with their predefined (and possibly badly chosen) window size, although they are resizable.
2) The fact that some programs are not resizable, or don't do a very good job of resizing themselves.

The solution to (1) is very easy, it only takes a couple of minutes to store/get the window size in/from the registry. As for (2), that's something different. It annoys me that a lot of dialog boxes in Windows applications are not resizable (e.g. the 'Advanced' tab in Internet Explorer's Internet Options. Fortunately the Open/Save File Dialog is resizable nowadays.
Most GUI applications in Unix, while having other quirks, have all of their windows resizable, and I think that's great.
I suppose it's because the most used Windos GUI libraries don't easily support resizing and automatic rescaling/moving of controls. Borland's VCL makes it a lot easier though, and so does wxWindows.

Roel Schroeven
Sunday, July 27, 2003

The resizing rule is very simple:

"If the window contains a control that has (or can have) a scrollbar, then the window must be made resizable"

Andrew Reid
Sunday, July 27, 2003

Here is a project all about this kind'a stuff:

James Ladd
Monday, July 28, 2003

"Resizing is hard, especially for Visual Basic applications "

No, resizing is mind bogglingly easy in VB (and any other windows language) and I have a single function that does it all.

Monday, July 28, 2003

The problem here is that Windows controls have their measures in pixels. It should have been "milimeters" or "picas."

Leonardo Herrera
Monday, July 28, 2003

"The programmers aren't very good. You often get this with stuff developed by "multimedia" developers, for example. "

Being a multimedia developer myself, I'd like to say that many are VERY good programmers, however, most multimedia developement tools don't have much in the way of resizeable-window stuff. You can write work arounds, but they're generally clunky and don't work as people would like them to anyways.

Monday, July 28, 2003

".NET has actually made this painless. It surprised me, too. The docking and anchoring stuff is great"

I remember being at a .net conference and docking was being touted as the greatest thing since sliced bread of VS.NET features.  The funny thing is that this feature has been
around in Borland Delphi since version 4.0 (they are now on 7.0).  Glad that VS.NET finally caught up ;)

Tuesday, July 29, 2003

*  Recent Topics

*  Fog Creek Home