-2

Somewhat inspired by an answer I gave about keyboard lights I now ask this: do computers actually need any sort of input (keyboard, mouse, touchpad, scanner, microphone, joystick, etcetera) or output (printer, display, speakers, etcetera)?

I recall an old axiom from C/C++ that states, roughly, that they don't expect any sort of input or output device being present in the machine (which is why, IMO, that there's no native and standard support for terminal interfaces).

But... what good is a computer if we can't get anything out of it? The whole point of computing was to feed data to a mechanism, that performed some actions, and then receive another set of data we could use.

A computer can, eventually, be left to it's own devices, but that way, we wouldn't get anything from it. I suppose a server rack could be considered a no input/output system, except that if it's a server, it communicates with a network so it does output something.

Some modern computers can't even work without a keyboard (I give the example of my own motherboard, that refuses to run without a keyboard).

I did try to search the Net for this, but most sites have only generalist tips or product recommendations. Either this question is as obvious as it is or it just hasn't been asked.


An update to the current status (essentially a sum-up of all things said):

  • The definition of input and output is crucial to the answering of this question. Assuming the broadest of terms (i.e. input as information coming in and output as information coming out) the following is true:

    • Although a computer doesn't need any input or output, it would be useless without them.
    • With this said, a computer may only need input and output for the time required to enter the commands/data and retrieve the processed data.
    • A computer, internally, needs to pass information between it's components (CPU, RAM, HDD, etcetera) in order for it to function (thanks given to keltari for pointing this out).
  • Assuming more strict definitions of input and output (as being only those from HID, for instance), then computers may not need any such device (e.g. a server rack or a remote computer) in a direct form.

1
  • 1
    A router is a computer, yet it has no “input/output” devices. It does have network ports which technically are input and output, but certainly no keyboards or monitors. You log in through a web interface, make your configurations (or not), and it runs silently on its own. Also, if you define I/O specifically as information, then at least one way that a computer could theoretically have no I/O yet still be useful would be by running a system at 100% load (e.g., Prime95) and using the hot CPU/GPU as a heater.
    – Synetech
    Jan 1, 2014 at 5:16

7 Answers 7

4

No, computers do not need an input or output device.
They are pretty useless without any output device though.

On the same note: neither do programming languages.
GCL (Guarded command language) does not even have a command to output anything.

2
  • I can say with some reservations that CL isn't a programming language; as Wikipedia said: It combines programming concepts in a compact way, before the program is written in some practical programming language.. Assuming I could read all values from memory, I wouldn't need an output (because that would be it). Sep 16, 2013 at 16:14
  • We used to get or programming classes in GCL. Never mind a computer. Get pen, paper and math. Write down precisely what the program has to do. Then derivative an algorithm using the math. Nett result: a GCL program which does what you want and which is proven to be bug free. Translation/porting to an actual language which works on a computer is non-essential. Computers are not needed during the first year of Computer Science. (Unlike math-1,2,3, graphs, algebra, etc etc).
    – Hennes
    Sep 16, 2013 at 16:18
4

I +1'ed Hennes answer, but I want to add it all depends on the definition of a input/output device. A mouse and a keyboard are input devices, but they fall into the category of human interface devices (HID). Computers can - and do - work without HIDs. Many servers operate without a keyboard, mouse, monitor, and other HIDs attached to them. They are not required for the computer to function.

However, almost every part of the computer is in some way an input/output device. The CPU, RAM, bus, hard drive, DVD drive, etc, takes some form of input and outputs data. Even the computer cases have thermometers that take input in the form of temperature and output that data to the computer. However, these I/Os are not visible to the user.

So it all comes down to how you define input/output.

1

Years ago, I created MicroPE x64 an extremely slimmed down PE. I actually removed support for most of the hardware including mice, CD-ROM, touchpads, etc. The only one I kept was keyboard support to enter commands into the command line. However, I wouldn't have needed keyboard support for that. I could have easily modded the system to run a batch after start up and do its tasks automatically without any user input or option of intervention. Of course, I would have had to create the batch first and enter meaningful commands, but still, with a sufficient level of automation the machine could virtually gone on forever once it has been set up.

I used this system to run command line compression software which took a long time to finish its task. Once it started, user input was neither necessary nor wanted, so probably this comes close to your concept. May be this gives you an idea of how such a limited system could be useful. I'm pretty sure there are a lot of programmatic goals that don't require multi-tasking and thus could go on forever without user input, such as calculating digits of PI, or contributing to one of the many folding projects.

In any case such a system should have an output though. It's certainly not needed, unless software has been written to demand it, but then the usefulness of the system would probably equal nil.

One of the real life devices that probably comes close to this concept might be an airplane's black box which is basically like a computer doing nothing but recording sensor values. It doesn't rely on human input. I'm not even sure if it has an output.

5
  • Presumably it has an output of some sort or the data would not be retrievable.
    – terdon
    Sep 12, 2013 at 22:39
  • You expect the box still to work after a plane crash, having burned and possibly being submerged hundreds of meters under water? I don't think the device would be usable after a crash. Also, storing the data on easily readable storage media wouldn't require an output device. According to wikipedia such devices use magnetic tapes or electronic memory, both of which could be accessed externally without a necessary output from the blackbox itself. Sep 12, 2013 at 22:50
  • According to this some at least do indeed have an output. And yes, of course they sometimes survive crashes, they are specifically designed to do so and that is really the whole reason for their existence: to help explain crashes after the fact. They would not be very useful if they could not survive a crash. Kudos for the MicroPE by the way, sounds like a cool little machine :).
    – terdon
    Sep 12, 2013 at 22:58
  • Thanks. :) Cool link btw. It has more information than wikipedia. Nice. Sep 12, 2013 at 23:08
  • Nice reference about the MicroPE. Keeping that in mind whenever I require maximum RAM and NTFS access. At any rate you would need to access the files so it would output. Although a black box has no output, per se, as terdon said, the whole point is for it to survive and to "tell a tale" of how the plane crashed. Sep 16, 2013 at 16:11
1

Computers are systems designed to receive input, process it, and create output. Pretty much any system is like this, whether electrical systems, wastewater systems, etc.

For a computer to even run a program, it needs to communicate with ROM and RAM. One can consider this rather integral function an I/O operation - some CPUs really don't make a difference between addressing RAM and I/O from their point of view. So really for a CPU, the "most" essential part of a computer, to do its thing, I/O is a must.

I recall an old axiom from C/C++ that states, roughly, that they don't expect any sort of input or output device being present in the machine (which is why, IMO, that there's no native and standard support for terminal interfaces).

Inaccurate. They don't expect any sort of specific input or output device. Unless your program is meant to merely burn cycles or halt the system in an endless loop, it's eventually going to use functions meant to write to stdin or stdout. C/C++ just doesn't say/care what those devices are, but it does assume some facility exists. It's arguable to what extent the standard libraries are "part" of C/C++ but you aren't going to have a serious program without standard C/C++ libraries or other libraries that are the equivalent.

A computer can, eventually, be left to it's own devices, but that way, we wouldn't get anything from it. I suppose a server rack could be considered a no input/output system, except that if it's a server, it communicates with a network so it does output something.

Just because a system doesn't have a keyboard, mouse, or monitor does not mean it has no other I/O devices, as you realize. Your very first computers were batch processing machines that were programmed to a single task and did this task for each input (i.e. punched cards), and then stopped when the input ended. Things that aren't visible unless the machine can be taken apart can also be considered I/O devices, such as onboard flash.

Some modern computers can't even work without a keyboard (I give the example of my own motherboard, that refuses to run without a keyboard).

Your motherboard and all major operating systems will run fine without a keyboard (you can unplug it after the BIOS hands control to Windows and Windows won't care). It's your BIOS that is complaining. There may be a setting on your system to "Halt on Errors: All, But Keyboard" that you need to set.

1
  • Great post. Thanks for the motherboard advice, I'll look into that. Sep 16, 2013 at 21:18
0

works fine normally (you can disable the need for a keyboard in the bios) servers (as you said) are one example, besides the network,there is no input/output. of course when you stop even that, the pc is not worth much because you can't use it, but it does work

0

At some point during the construction, a programmer must input (even if only once) the program, otherwise the device will do nothing. Ergo, computers must have some sort of "input" capability, even if it happens before any instructions are executed.

It would be utterly pointless to create computers without means of feeding them instructions.

0

I have a computer in my closet that's been running for years with no input or output devices connected (technically speaking). It performs some server functionality and I remote into it occasionally.

So for your summary:

  • Although a computer doesn't need any input or output, it would be useless without them.
  • With this said, a computer may only need input and output for the time required to enter the commands/data and retrieve the processed data.

If you consider network input/output, then yes, useless. Otherwise, given my example above, the computer has no input or output and it's quite useful.

edit just saw your 4th paragraph, sorry.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .