THE C PROGRAMMING LANGUAGE

Without C, where would we be? The beauty and simplicity of C gave birth to the golden age of software development. UNIX, Internet protocols, Java, and personal computer software, have mostly been written in C. Not C++, simple C. It's compact and easy to learn, yet powerful enough to write operating systems, and the vast majority of modern systems software. Languages like Perl and Java are made possible by interpreters which are written in C. Most of the chips on your computer boards, and perhaps in your car, were programmed in C. And if you use an application not written in C, it was probably developed by tools written in C.

Dennis Ritchie developed C on an early UNIX system in the 70's, at what was then Bell Laboratories. The proof of the pudding was rewriting UNIX in C. This was a watershed event in the evolution of software. Together, UNIX and C championed the idea that software does not have to be tied to a particular piece of hardware. Platform neutrality. Essential as well for the success of the Internet. It doesn't matter if you have a Mac, a PC running Windows, a Solaris system, or a router, the TCP/IP and related protocols written in C are what enable it to communicate on the Internet. And your Web browser, the server on the other side, all brought to you by C. Adaptability is a strong survival trait. For an interesting article about the history of C, see this article by Dennis Ritchie, The Development Of The C Language.

If you would like to learn C, or one of its derivatives, essential reading is the classic "The C Programming Language", by Kernighan and Ritchie. The second edition reflects the ANSI C standard (X3.159-1989). The first edition is my personal favorite, a collector's item. The ANSI C standard also defines the standard C library, and essential include files, which most applications will need. Additional features come from higher level libraries, and a number of standards define the interfaces for them. Unfortunately, GUI programming standardization never made it to the desktops of personal computer users. In this respect, Java has an advantage over C for developing cross platform GUI based programs, although I have yet to see one with the snappy feel of a native program.

A free C compiler is available from GNU, GCC (GNU Compiler Collection). A binary version is included in the Cygwin tools for Windows. These tools provide a UNIX-like shell environment for Windows based on bash, and includes many useful GNU utilities and libraries.

In closing, I present what is perhaps the world's oldest C program:

#include <stdio.h>

main()
{
    printf("hello, world\n");
}

Web Sites:
More Inside:
Other Tidbits:

Java Jazz Web Unix Help Etc.