---------------------------------------------------------------------------------------
.
---------------------------------------------------------------------------------------
#prev next contents
IFRAME:
https://archive.org/includes/donate.php?as_page=1&platform=wb&referer=h
ttps%3A//web.archive.org/web/20230406050347/https%3A//publications.gbdi
rect.co.uk//c_book/preface/the_success_of_c.html
Wayback Machine
https://publications Go
113 captures
25 Jan 2004 - 02 Dec 2023
Dec APR Aug
Previous capture 06 Next capture
2022 2023 2024
success
fail
About this capture
COLLECTED BY
Collection: Wikipedia Eventstream
TIMESTAMPS
loading
The Wayback Machine -
https://web.archive.org/web/20230406050347/https://publications.gbdirec
t.co.uk/c_book/preface/the_success_of_c.html
GBdirect Homepage Search ____________ Go
Training | Contact
About Us | Training | Consultancy | Software | Publications |
Open Source | Support | Open Standards | FAQ | Jobs
Publications > The C Book > Preface > The Success of C
The Success of C
C is a remarkable language. Designed originally by one man, Dennis
Ritchie, working at AT&T Bell Laboratories in New Jersey, it has
increased in use until now it may well be one of the most
widely-written computer languages in the world. The success of C is due
to a number of factors, none of them key, but all of them important.
Perhaps the most significant of all is that C was developed by real
practioners of programming and was designed for practical day-to-day
use, not for show or for demonstration. Like any well-designed tool, it
falls easily to the hand and feels good to use. Instead of providing
constraints, checks and rigorous boundaries, it concentrates on
providing you with power and on not getting in your way.
Because of this, it's better for professionals than beginners. In the
early stages of learning to program you need a protective environment
that gives feedback on mistakes and helps you to get results
quickly--programs that run, even if they don't do what you meant. C is
not like that! A professional forester would use a chain-saw to cut
down trees quickly, aware of the dangers of touching the blade when the
machine is running; C programmers work in a similar way. Although
modern C compilers do provide a limited amount of feedback when they
notice something that is out of the ordinary, you almost always have
the option of forcing the compiler to do what you said you wanted and
to stop it from complaining. Provided that what you said you wanted was
what you really did want, then you'll get the result you expected.
Programming in C is like eating red meat and drinking strong rum except
your arteries and liver are more likely to survive it.
Not only is C popular and a powerful asset in the armoury of the
serious day-to-day programmer, there are other reasons for the success
of this language. It has always been associated with the UNIX operating
system and has benefited from the increasing popularity of that system.
Although it is not the obvious first choice for writing large
commercial data processing applications, C has the great advantage of
always being available on commercial UNIX implementations. UNIX is
written in C, so whenever UNIX is implemented on a new type of
hardware, getting a C compiler to work for that system is the first
task. As a result it is almost impossible to find a UNIX system without
support for C, so the software vendors who want to target the UNIX
marketplace find that C is the best bet if they want to get wide
coverage of the systems available. Realistically, C is the first choice
for portability of software in the UNIX environment.
C has also gained substantially in use and availability from the
explosive expansion of the Personal Computer market. C could almost
have been designed specifically for the development of software for the
PC--developers get not only the readability and productivity of a
high-level language, but also the power to get the most out of the PC
architecture without having to resort to the use of assembly code. C is
practically unique in its ability to span two levels of programming; as
well as providing high-level control of flow, data structures and
procedures--all of the stuff expected in a modern high-level
language--it also allows systems programmers to address machine words,
manipulate bits and get close to the underlying hardware if they want
to. That combination of features is very desirable in the competitive
PC software markeplace and an increasing number of software developers
have made C their primary language as a result.
Finally, the extensibility of C has contributed in no small way to its
popularity. Many other languages have failed to provide the file access
and general input-output features that are needed for
industrial-strength applications. Traditionally, in these languages I/O
is built-in and is actually understood by the compiler. A master-stroke
in the design of C (and interestingly, one of the strengths of the UNIX
system too) has been to take the view that if you don't know how to
provide a complete solution to a generic requirement, instead of
providing half a solution (which invariably pleases nobody), you should
allow the users to build their own. Software designers the world over
have something to learn from this! It's the approach that has been
taken by C, and not only for I/O. Through the use of library functions
you can extend the language in many ways to provide features that the
designers didn't think of. There's proof of this in the so-called
Standard I/O Library (stdio), which matured more slowly than the
language, but had become a sort of standard all of its own before the
Standard Committee give it official blessing. It proved that it is
possible to develop a model of file I/O and associated features that is
portable to many more systems than UNIX, which is where it was first
wrought. Despite the ability of C to provide access to low-level
hardware features, judicious style and the use of the stdio package
results in highly portable programs; many of which are to be found
running on top of operating systems that look very different from one
another. The nice thing about this library is that if you don't like
what it does, but you have the appropriate technical skills, you can
usually extend it to do what you do want, or bypass it altogether.
Previous section | Chapter contents | Next section
Publications
The C Book
Preface
About This Book
The Success of C
Standards
Hosted and Free-Standing Environments
Typographical conventions
Order of topics
Example programs
Higher authority
C standard
Introduction
Variables & arithmetic
Control flow
Functions
Arrays & pointers
Structures
Preprocessor
Specialized areas
Libraries
Complete Programs
Answers
Copyright
__________________________________________________________________
Contact Us
Printer-friendly version
The C Book
This book is published as a matter of historical interest. Please read
the copyright and disclaimer information.
GBdirect Ltd provides up-to-date training and consultancy in C,
Embedded C, C++ and a wide range of other subjects based on open
standards if you happen to be interested.
---------------------------------------------------------------------------------------