I'm not sure what that exactly means. Why do people use the term vacuum like this? Please advise.
3 Answers
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.
-
4"it would infer that a programmer is just programming by themselves." I would change that to mean that the programmer is programming "without outside influence". Generally meaning I create a program that I think is PERFECT!... Then the customer gets it, and due to no influence on their part -- with their perspective, needs, training, hardware, etc -- it doesn't meet the their needs or real world expectations.– WernerCDCommented Oct 25, 2011 at 14:22
-
As a programmer, I agree with @WernerCD. It usually implies a lack of input from others and/or no integration with existing systems. This answer is perfectly valid for general use of the phrase though. Commented Oct 25, 2011 at 15:29
-
"need more context to know whether or not this is suppose to be a positive attribute or a negative." As a programmer, and AFAIK, this is seen as a negative. You want to make programs that meet the users needs. Programming in a vacuum prevents that from happening consistently. Programming in a vacuum is different than programming without interruptions.– WernerCDCommented Oct 25, 2011 at 17:59
-
@WernerCD I agree it leans toward the negative, probably heavily, but since the OP didn't offer more information, I didn't want to just discount the possibility that it could be positive in an "out of the box", "think different" sort of way.– LarsTechCommented Oct 25, 2011 at 18:24
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.
-
1I think this answer is more correct than Lars's, which is not wrong. Your first example illustrates the most common use of this metaphorical in a vacuum - which is to point out that we don't do anything in a vacuum. All activities are interconnected. The second is the less common usage of reminding people that if you could do something completely alone, it wouldn't be much good because your resources would be inadequate. Commented Oct 24, 2011 at 23:53
-
1I agree with @FumbleFingers in preferring this answer; the OP is about usage for vacuum, not programming in a vacuum. For the latter, Lars is correct; in my experience, "programming in a vacuum" usually refers to "working without a specification or with insufficient input. Commented Oct 25, 2011 at 3:30
-
"A vacuum is often held up as a place where conditions are perfect and ideal, unlike the real world" - XKCD, as always, has a relevant comic. imgs.xkcd.com/comics/experiment.png– crasicCommented Oct 25, 2011 at 4:30
-
2@crasic - When linking to XKCD, it's better to link to the comic page rather than the image, since the link is shorter and you get the alt text - which is often funnier than the comic itself. *8') Commented Oct 25, 2011 at 12:24
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.
-
+1 this is the definition that I would have added. Programming in a vacuum also implies, to me at least, that the programmer is wilfully ignoring any improvements from the field. Commented Oct 26, 2011 at 21:14
-
Depends on if the programmer even has access to those communication channels. In certain corporate cultures, all input regarding code work goes through either the project manager or a liason. This has the advantage of allowing the manager to prioritize the work being requested, but if such prioritization is done by simply ignoring the lowest stuff, the programmers don't know those low-priority problems exist, and they can slip through the cracks.– KeithSCommented Oct 31, 2011 at 19:29