How should we look at Tan haoqiang's "C program design"
Mr. Tan haoqiang's "C program design" is said to have released more than 10 million books. However, the voice of criticism and questioning on the Internet seems to be out of proportion to the sales volume. Many people think that Miss Tan's books are full of mistakes and there are countless harms. Some people even think that tan doesn't understand programming at all, and all kinds of questions and negative comments are endless.
I recently visited zhihu and saw an article. I ressed it unresponsibly and then expressed my views.
Author: Lin Jianjin (copyright of the article belongs to the author)
Some students cannot learn the C language, and blame them for "because the textbooks are written by Tan haoqiang". It is really funny.
Mr. Tan was born in 1934 and is now 80 years old. He graduated from the automatic control department of Tsinghua University in 1958 and was 24 years old. You need to know that C language was not yet born at that time. Computers were all mainframe computers, and they were both primitive and bulky. At that time, Tan haoqixue's automation control specialty was quite cutting-edge.From this point, we can say that he is a very intelligent person of his generation.
One of the important reasons that many people have criticized tan haoqiang's C program design is that it does not comply with C99 standards ". But we need to know that Dennis M. Ritchie launched the first C language version (TAN haoqiang was 38 years old) in 1972. At that time, C language was not mature. In fact, the first standardization of C language was not completed until 1989 (C89). Please note that at that time tan haoqiang was 55 years old!
55 years old. Have you retired?
More importantly, in the 1989 s, the development of the Internet was very elementary, not to mention in China, even globally. Therefore, the channel for obtaining information is extremely narrow. For example, you can understand that the World Wide Web protocol we used to browse the Web page was in 1989, tim Berners-Lee, then at the European particle physics lab, was invented with his colleagues.
That is to say, when tan haoqiang retired at the age of 55, C language has just completed the standardization of the first version, and the Internet in the whole world does not even support browsing through Browsers!
Ten years later, the C99 standard was finally available in 1999. However, because this standard is relatively new, most compilers do not yet support many of these features. Therefore, most of them follow the C89 feature.In this context, in the second year, Tan haoqiang's "C program design" was published, and Tan haoqiang was 66 years old.
Aside from the fact that tan was still writing at the age of 66, this book is actually readable, learnable, and valuable. However, the software industry is developing rapidly. If colleges continue to use this teaching material, it is out of date.
How is Tan haoqiang's C program design textbook? The current point of view is certainly not good.People who want to learn C language are not recommended to use their books. But this is mainly because of the rapid development of the software industry and the aging of his books.We can talk about books, but some of the students from the book accused tan haoqiang of "not understanding programming, low level" and so on, it is wrong.
Below are some of my comments and opinions.
First of all, 1) there are indeed many mistakes in Mr Tan's books. The main "mistakes" are due to the poor compliance with C99 standards (many Web posts have specially recorded errors in this book, you do not need to go to this detail table ). 2) since Mr. Tan had not (or may not) the concepts of object-oriented or software engineering in his book era, his book was criticized for its variable naming rules.
Moreover, as information is so developed, the knowledge threshold has been lowered by the power of modern technology. There are an endless number of books for the internal edition, and there are more choices for the readers, even the essence of choice. If his books are still on sale, I personally think this can only be an irresponsible action made by the publishing house to make money. It is also normal in the market economy. After all, "The world is everywhere, and the world is bustling ".
From the above perspective, Tan's book should indeed leave the stage of history, and many readers should not go to his book any more.
Second,I do not agree with the derogatory words on the Internet for Miss Tan.. I basically agree with Lin Jianjin. We should put the problem in a specific historical background and environment. If we push back the time for nearly 30 years, we should never erase the valuable and outstanding contributions of Miss Tan's work. The following section also references the comments of zhihu's netizens:
"Speaking of the product of the times out of the background of the times, the comments and conclusions obtained are not accurate. Assuming that we had regressed for 20 years and went back to the era when there was no network or even a copy of a foreign technical book, we went to the computer room of a university and asked a computer room to stare at the 286 screen, when I use Turbo C in a floppy disk to write and debug code, I think the answer may be more authentic."
I have deep feelings about this. I think Saint Seiya is definitely a classic. Then I asked a boy who was born in and loved Sun man how he thought "Saint Seiya. His answer is: (of course, he is talking about cartoons) when I open it, I find that the picture quality is too bad and I immediately turn it off. I can't accept it at all.
Now, a college student majoring in physics has mastered more physical knowledge than Newton. But can we despise this to say that Newton's level is too bad? Even a person with a wrong understanding in the past cannot deny his outstanding contribution due to some of his mistakes and paranoia? Bidaras completely denies the existence of irrational numbers. In the case of conto's theory of set, cloneick opposed conto's point of view. However, it is still a great mathematician in the history of mankind who holds high praise for bildagos and colenke. I believe that Mr. Tan has made significant contributions to popularizing computer programming and promoting computer education in China. As for the negative terms with slight personal attacks, we should accept them and learn to treat an old man in his 80 s with a modest and wide mind.
Summary:
Tan haoqiang's "C program design" is indeed out of date, but his contribution cannot be erased. His past work is still worthy of respect.