A few years ago, when I first started to use computers, my teacher told me that 60% of the world's code was written in C ++, and 30% was written in C, other languages share the remaining 10%. If you only need to know one language in the computer world, there is no doubt that C ++ is used. So I learned C and C ++. I remember that at that time, the challenge of Language lies in Object-Oriented or process-oriented. Over and over again, the teacher emphasized the benefits of object-oriented and the harm of process-oriented, and recalled the experiences of punching programming on tapes in their time, the machine language for bits is even worse. "Good advanced language !" That's what she said. I am complacent about the object-oriented C ++. The process-oriented C, "that is, a chicken ribs .".
However, the situation gradually changed. I remember the first time I heard about smalltalk, I was shocked: "Are there other object-oriented languages !" Then I realized that C ++ is not purely object-oriented language, and even despised by many object-oriented Advocates: "It's just a success in the mall ." Yes. In the language field, C ++ does not firmly support a certain idea. The attack is really not small. Although C ++ is still in use, there is no unconditional support. I used it, but I didn't find a proper alternative. (Why don't I use Smalltalk? I know the name. Until now, I am not very familiar with its syntax, and have never seen its compiler. In fact, I have never been an object-oriented loyal user. Smalltalk is just the culprit in breaking my c ++ perfect dream)
Then Delphi entered the perspective. "Delphi is good, it can be developed quickly, and a large number of controls can be used, perfect !" As a result, many began to use Delphi. I still have an unforgettable old feeling for C ++, and gradually become opposite to them (of course, only the opposite of my point of view, does not affect my feelings). I often have to fight a debate. I had to devalue Delphi as a "deliberate". What I often said at that time was, "can't Delphi compile Windows programs? Windows uses C/C ++ to compile the program ." But it seems that it is of little use. I like to continue using Delphi, and I don't like to continue using it. I have heard a lot from my opponent, such as Pascal's rigor, how many advantages a ticket inherits, and so on. The direct feeling for me is still the first one. It is faster to draw the interface and easier to use than VC. As a result, I have more practitioners than I know VC very well, and sometimes I secretly use Delphi because of the speed of pictures. Of course, I cannot let opponents know about it.
An interesting thing happened later. Our database teacher assigned a big job to write a database application, to practice the basic methods for designing databases, such as bcnf, foreign keys, and indexes. This teacher is a supporter of Sybase. We recommend that you use PowerBuilder to write databases with Sybase. This has been resisted by many people. Some people want to use VC + ACCESS and others want to use Delphi + oracle. The teacher left without a sound, and dropped a sentence, "Whatever you want ". So everyone is doing their own thing. At this moment, I am "mutating. In fact, although C ++ is good, I am not proficient in VC, let alone delphi. It is also because of some bad precognition. So I started to use PowerBuilder + Sybase. Some students have strong VC and many programming functions. Some of them have strong Delphi and have a very fancy UI. However, I am actually familiar with Pb, the database can only be designed better. Finally, my program was the least difficult to get. It was only because the database design documents had been written for a long time and more than 10 tables, I have been worried that my teacher will be angry when I see my simple interface. Finally, the teacher checked it that day. First, I showed him a piece of work made of VC + ACCESS, Which is countless times better than my own. Looking at the running program, I'm envious and worried. I just hope that I will not be scolded too much. Unexpectedly, the teacher just looked at the interface and shut it down. Then he opened the access file and browsed it a little. Then he started to explain: "Why is there no primary key in this table ?" "Is the dependency between the two tables incorrect ?" "Are these fields in a table redundant ?!" "This subquery is not necessary in the view, and the speed is much slower !!"...... As a result, the guy was so bloody that we all felt sorry for him and worried about him. Gradually, the teacher points to access. After some review, I know that the most commonly used access has so many disadvantages that it is a fake product in the eyes of professionals. All of us are ashamed to have used access. Fortunately, in the end, the teacher did not look at our work, but gave it to him. He took it back and read it slowly. I was glad to hear the words I said when I went away: "I will not go to the database through your program, but directly review its structure. After all, this is mainly not a programming job." It turned out that my relief was justified. All those who used Pb like me scored more than B, and those who used other development tools and databases scored a maximum of B, most of them are B-and C +. And I took. I think, no matter what other considerations the teacher may have, at least petabytes of students concentrate on the database design, and the program is simple and simple. However, if you use other development tools, you cannot grasp the key points.
The competition between VC and Delphi has gradually subsided. Later, I heard that Borland was acquired because it made a mistake on the C ++ builder product and lost the "C ++ war. In this way, there will be fewer people using Delphi, and VC will become more independent. I forgot whether it was before or after that. I also heard that Sybase and Microsoft jointly developed SQL Server. As a result, Microsoft reconstructed SQL server and then opened Sybase, the result replaces the latter's position in the database field. These are rumors, and I do not know whether it is true or false. However, Microsoft won IBM earlier, and I cannot help but believe it. I just lamented: "Thirty Years of Hedong, Thirty Years of Hexi ." Since then, I have never thought of using other languages.
The true understanding of C ++ begins with the design and evolution of C ++. History can educate people. Why is C compatible? Why are there virtual functions? Why are templates and Exception Handling supported? How many stories are hidden behind the so-called "dark corners" in the C ++ language? From the original ideal of a language, how difficult it is to implement it through the compiler at the end! I was deeply touched by the fact that the pioneers often put themselves away for a small, perhaps never used, or even heard of language characteristics, and is also deeply ashamed !! Yes. What are they doing when they are making selfless contributions to the C ++ language and her current and future users and beneficiaries! For the convenience of graphs, stream by stream? Thinking differently to achieve better performance? Why should I smile in the dark for a good back-to-Hill? Forget it. If all c ++ users are like this, then C ++ is not far from extinction. What kind of heartache should the pioneers do! In fact, I feel heartbroken without their heartache. Because of this heartache, I know that I really like C ++, and her position in my mind is irreplaceable.
Since then, I have gained a deeper understanding of C ++. Thinking in C ++, (more) Valid tive C ++, inside the C ++ object model, generic programming and the STL ,... this book makes me feel that I know little about C ++. At last, I gradually understood why my c ++ enlightenment teacher had to know only one language in the computer world! I don't even have full control over C ++. How can I go deep into other languages. Therefore, I did not take the initiative to think about Java, which gradually emerged against Microsoft, and C #, which gradually emerged to snatch the Java market. Of course, I know that every language has a story behind her. It is not as superficial as outsiders seem. Only people who really like it are qualified to understand what is truly valuable. But I don't need to figure them any more. It's enough to have C ++. However, there is no contact at all. Sometimes, I also write some java code because of work needs. I believe that the code I write will be eclipsed by some "Java experts. However, I will not claim to be a Java programmer-because the ability to write Java comes from C ++. J2EE? That's good, but I won't learn it; JVM? That's good, but I can read the source code at most once (but there is no time to read it so far, I would rather look at the source code of the Standard C ++ library, Ace library, or Unix/Linux/DoS ). As for C #, I installed vs2005 and installed C # together, but I never used vc8, And I never used C # at a time #. This is not a bad question. I am a C ++ programmer !!!
Maybe it is inappropriate for me to criticize C #: Simply put, I am not good enough; objectively speaking, I cannot be fair. I have only had some say when I criticize C ++ (after all, after using it for so long, the accumulated dissatisfaction is enough to break out once, so I am very critical, huh, huh ). However, if someone says that C ++ is about to be finished, my attitude will be left with a faint smile, except for my disapproval. Why should we be angry? In some cases, people may have his limitations. What he sees is what others want him to see. Furthermore, people will always have limitations. Although they can break through the old limitations, they will be unable to extricate themselves from the bigger and more concealed limitations. Just as the vendors who advocate Java and C # are using C/C ++ and secretly sneering, who knows if they will go bankrupt in the future? After all, Tiandao is impermanence and the Tiandao is magnificent, and the Yin people will be overcast in the future. Furthermore, it may be difficult for people to interact with each other. When you ignore him, he may also be ignoring you. But this may not be as important as you think. Today, a C ++ programmer and a C # programmer may never agree with each other. But ten years later, when both of them achieved their own achievements, when talking about the battle over the past decade, the rest may be a faint smile.
Well, I don't want to talk about it anymore. I just hope everyone can find their own path. After all, what others say can only be used as a reference, and walking by yourself is the most effective.