VNC stands for Virtual Network Computing. It is, in essence, a remote display system which allows you to view a computing 'desktop' environment not only on the machine where it is running, but from anywhere on the Internet and from a wide variety of machine architectures.
Many of us, for example, use a VNC viewer running on a PC on our desks to display our Unix environments which are running on a large server in the machine room downstairs.
For this simple mode of operation, you could achieve a similar effect by installing an X server on your PC. The important factors which distinguish VNC from other remote display systems such as X are as follows:
No state is stored at the viewer. This means you can leave your desk, go to another machine, whether next door or several hundred kilometers away, reconnect to your desktop from there and finish the sentence you were typing. Even the cursor will be in the same place. With a PC X server, if your PC crashes or is restarted, all the remote applications will die. With VNC they go on running.
It is small and simple. The Win32 viewer, for example, is about 150K in size and can be run directly from a floppy. There is no installation needed. It is truly platform-independent. A desktop running on a Linux machine may be displayed on a PC. Or a Solaris machine. Or any number of other architectures. The simplicity of the protocol makes it easy to port to new platforms. We have a Java viewer, which will run in any Java-capable browser. We have a Windows NT server, allowing you to view the desktop of a remote NT machine on any of these platforms using exactly the same viewer. (The NT server is not multi-user ). And other people have ported VNC to a wide variety of other platforms. Click the 'Contributed' button on the left for details.
It is sharable. One desktop can be displayed and used by several viewers at once, allowing CSCW-style applications.