What does "programming in a vacuum" mean?

I'm not sure what that exactly means. Why do people use the term vacuum like this? Please advise.


Solution 1:

Anything done "in a vacuum" means it was done with no interference, no influence, no disturbances. It is referring to the vacuum in space, where there is no air, no nothing.

For "programming in a vacuum", it would imply that a programmer is just programming by themselves. Probably need more context to know whether or not this is suppose to be a positive attribute or a negative. It could mean the programmer is doing things wrong because they aren't getting any outside help or instructions, or a good thing, because the programmer is not being disturbed and can concentrate on the job at hand.

Solution 2:

A vacuum is empty space; a void. A vacuum is often held up as a place where conditions are perfect and ideal, unlike the real world:

A perfect vacuum would be one with no particles in it at all, which is impossible to achieve in practice. Physicists often discuss ideal test results that would occur in a perfect vacuum, which they simply call "vacuum" or "free space", and use the term "partial vacuum" to refer to real vacuum.

The idea of doing an activity, such as programming, in a vacuum, can refer to the idea of doing it without a surrounding environment or without context and purpose. An author might use such a phrase to emphasize that this is unrealistic, as in this essay by Philip Guo:

The authors typically use 10-line toy examples to illustrate how language X ... can do something that language Y ... cannot do or can only do awkwardly, and then it's like BAM! A HA! Language X is far superior to language Y... I think that they all make one misguided implicit assumption: that we are all programming in a vacuum.

Or, an author can make the point that working without a surrounding environment, without peers, would be like being in a vacuum, as in this IBM article about peer code review:

defects found by others are a good sign that your more experienced peers are doing a good job in helping you become a better developer. You'll progress far faster than if you were programming in a vacuum, without detailed feedback.

Solution 3:

Programming "in a vacuum", similar to doing anything in said state, is a reference to attempting to perform that task without any outside information of any kind. It is indeed, as others have said, a reference to the vacuum of space, where there is very little if anything to influence the path of an object moving through it.

In programming, it is generally not a good thing. It means that the programmer is not receiving any feedback regarding what he is currently doing, and so, while his code may be well-designed and bug-free, It can still be wrong if it doesn't meet the client's needs. While it may be good for programmers to work in isolation, where communication between clients and programmers is controlled through intermediaries or liasons (thus removing a source of direct pressure on the programmers from clients who need it done yesterday for free), it is virtually impossible to produce a good product if there is no source of feedback into the development process whatsoever.