When you are a dwarf in a Disney cartoon, your tools don't matter much since you are a cartoon character.
When you are getting paid 7-12K per month to be a programmer and your employer refuses to let you have a decent computer or display because of cost or some other silly reason you are working for Dopey.
I had lunch with a programmer friend who works for a US Defense contractor (you know, the people with the $500 toilet seats) but he cannot be given a PC with more than 8GB of ram. He's thinking of buying his own memory just so he can do his job, which involves building complex server and client side Java applications.
Maybe they should up the price of the toilet seats to $600.
One place I contracted recently will not purchase displays bigger than 17 inches for anyone including programmers. A server side programmer got a new laptop but they wouldn't buy an SSD bigger than 128GB so he has to delete things on a regular basis. I brought my own 24 inch display from home (I have 3).
Why do some companies think that paying a programmer (possibly a lot) means they have to scrimp on tools to make up for it? Or do people who are not in IT think that programming is no different than typing emails all day?
When I started at one job the ordering people lost the MacBook Pro order our manager had put in so I had to start working on the iPad app using an old white MacBook with something like an 11 inch screen for a couple weeks, which was painful and slow as I had to scroll the iPad simulator all day and it lost connection to the WiFi several times a day. It was hard to make much progress. Finally the manager had enough and just went out and bought a new MBP 15 and convinced the CTO to expense it (there was no actual policy for buying on your own card) so I could actually get things done. Eventually the order people admitted they lost the order and we got more a couple months later.
It just makes little sense to be cheap on the tools your employees use when the tools do matter. I know you could write code on a line editor on a 24x80 text display back in the "old days" but this isn't then. When I started in 1981 we had twice as many people as terminals and we had to share, so half of each day was spent writing code on paper. Yes, paper. I didn't have my own device until I moved to the "microcomputer" group a couple of years later and then I had all sorts of devices like a Lisa, a PC/XT, and an Apple II and III. But this isn't about what's good for your grandpappy who walked to/from work uphill both ways so it should be good enough for you.
Tools matter. Sure you can have too many (though maybe some of you won't agree at all); apparently every startup in SF has to offer three 30 inch displays and top of the line hardware or not be able to snag a janitor. Or so I've heard since I am not there. But if the programmer is making a material contribution to the betterment of your enterprise, why handicap them at all? I'm sure a Major League baseball hitter could do something with a broom handle but how would that make any sense?
I find having multiple displays is pretty handy, especially if you are build something with many parts. Even developing iOS apps in XCode can improve a lot with a bigger display, since Apple seems to think that cramming everything in one window is a good idea. Working for those two weeks with XCode on an 11 inch display was no fun at all. But if you have to monitor multiple apps, edit files, build, test, look up documentation, keep an eye on email and messages (and occasionally check up on Hacker News) not having to shuffle dozens windows around is handy.
Of course it's not only display space that is handy; if you are working on both client and server side software you need 16GM of ram today. I remember in 2003 working in a crazy project in Mexico, we had laptops that maxed out at 2GB, but the project required using DB2, Websphere running Commerce Server, an IDE, and a number of other tools which actually exceeded 2GB in working memory which was painful, since it swapped often. At least it was over in 3 months (a miserable failure).
Programming covers such an enormous range of technologies and types of work that one size can never fit all, but handicapping anyone makes so little sense. You can get reasonable prices for large displays, even Apple hardware is a drop in the bucket compared to the programmer salary. Sometimes people don't want to give programmers better hardware than non-programmers because they think it will create bad feelings. Personally I would rather improve everyone's work experience than to throttle the work of people who are getting paid a lot more. People always cost more than the desk, the chair and the computer.
Of course the same argument could hold for work spaces but that's another large can of worms (which some people may actually have to work in, minus the worms).
You could argue that programmers are all prima donnas who don't deserve any special tools but this is a programming blog and people who read it are programmers so you would be in the wrong place! Maybe there is some of that but what we do is complex and there is no point to making it more difficult, especially when the cost is entirely marginal.